From a8106b7ea254ec5237d24d6454d88750c01b988a Mon Sep 17 00:00:00 2001 From: Soren Ptak Date: Tue, 6 Sep 2022 12:01:43 -0700 Subject: [PATCH 01/25] LTS Version Change (#453) * Updating versions for LTS 2.0, added relevant PRs to the CHANGELOG * Fixed submodule issue, removed extra line from CHANGELOG.md * Added a coverity README.md * Fixing an incorrect link, adding a newline to end of README Co-authored-by: Soren Ptak --- CHANGELOG.md | 18 +++++ README.md | 10 +-- docs/doxygen/config.doxyfile | 2 +- manifest.yml | 2 +- source/include/ota.h | 2 +- source/include/ota_appversion32.h | 2 +- source/include/ota_base64_private.h | 2 +- source/include/ota_cbor_private.h | 2 +- source/include/ota_config_defaults.h | 2 +- source/include/ota_http_interface.h | 2 +- source/include/ota_http_private.h | 2 +- source/include/ota_interface_private.h | 2 +- source/include/ota_mqtt_interface.h | 2 +- source/include/ota_mqtt_private.h | 2 +- source/include/ota_os_interface.h | 2 +- source/include/ota_platform_interface.h | 2 +- source/include/ota_private.h | 2 +- source/ota.c | 2 +- source/ota_base64.c | 2 +- source/ota_cbor.c | 2 +- source/ota_http.c | 2 +- source/ota_interface.c | 2 +- source/ota_mqtt.c | 2 +- source/portable/os/ota_os_freertos.c | 2 +- source/portable/os/ota_os_freertos.h | 2 +- source/portable/os/ota_os_posix.c | 2 +- source/portable/os/ota_os_posix.h | 2 +- test/cbmc/include/stubs.h | 2 +- .../Free_FreeRTOS/Free_FreeRTOS_harness.c | 2 +- .../Malloc_FreeRTOS/Malloc_FreeRTOS_harness.c | 2 +- .../OTA_ActivateNewImage_harness.c | 2 +- ..._Decode_GetStreamResponseMessage_harness.c | 2 +- ...R_Encode_GetStreamRequestMessage_harness.c | 2 +- .../OTA_CheckForUpdate_harness.c | 2 +- .../OTA_Err_strerror_harness.c | 2 +- .../OTA_EventProcess_harness.c | 2 +- .../OTA_EventProcessingTask_harness.c | 2 +- .../OTA_GetImageState_harness.c | 2 +- .../OTA_GetState/OTA_GetState_harness.c | 2 +- .../OTA_GetStatistics_harness.c | 2 +- .../OTA_HTTP_strerror_harness.c | 2 +- test/cbmc/proofs/OTA_Init/OTA_Init_harness.c | 2 +- .../OTA_JobParse_strerror_harness.c | 2 +- .../OTA_MQTT_strerror_harness.c | 2 +- .../OTA_OsStatus_strerror_harness.c | 2 +- .../OTA_PalStatus_strerror_harness.c | 2 +- .../proofs/OTA_Resume/OTA_Resume_harness.c | 2 +- .../OTA_SetImageState_harness.c | 2 +- .../OTA_Shutdown/OTA_Shutdown_harness.c | 2 +- .../OTA_SignalEvent/OTA_SignalEvent_harness.c | 2 +- .../proofs/OTA_Suspend/OTA_Suspend_harness.c | 2 +- .../OtaDeinitEvent_FreeRTOS_harness.c | 2 +- .../OtaDeleteTimer_FreeRTOS_harness.c | 2 +- .../OtaInitEvent_FreeRTOS_harness.c | 2 +- .../OtaReceiveEvent_FreeRTOS_harness.c | 2 +- .../OtaSendEvent_FreeRTOS_harness.c | 2 +- .../OtaStartTimer_FreeRTOS_harness.c | 2 +- .../OtaStopTimer_FreeRTOS_harness.c | 2 +- .../Posix_OtaDeinitEvent_harness.c | 2 +- .../Posix_OtaDeleteTimer_harness.c | 2 +- .../Posix_OtaInitEvent_harness.c | 2 +- .../Posix_OtaReceiveEvent_harness.c | 2 +- .../Posix_OtaSendEvent_harness.c | 2 +- .../Posix_OtaStartTimer_harness.c | 2 +- .../Posix_OtaStopTimer_harness.c | 2 +- .../requestTimerCallback_harness.c | 2 +- .../selfTestTimerCallback_harness.c | 2 +- .../cbmc/proofs/STDC_FREE/STDC_Free_harness.c | 2 +- .../proofs/STDC_Malloc/STDC_Malloc_harness.c | 2 +- .../agentShutdownCleanup_harness.c | 2 +- .../base64Decode/base64Decode_harness.c | 2 +- .../buildStatusMessageReceiving_harness.c | 2 +- .../checkDataType/checkDataType_harness.c | 2 +- .../cleanupControl_Mqtt_harness.c | 2 +- .../cleanupData_Http_harness.c | 2 +- .../cleanupData_Mqtt_harness.c | 2 +- .../closeFileHandler_harness.c | 2 +- .../dataHandlerCleanup_harness.c | 2 +- .../decodeAndStoreDataBlock_harness.c | 2 +- .../decodeAndStoreKey_harness.c | 2 +- .../decodeBase64IndexBuffer_harness.c | 2 +- .../decodeFileBlock_Http_harness.c | 2 +- .../decodeFileBlock_Mqtt_harness.c | 2 +- .../executeHandler/executeHandler_harness.c | 2 +- .../extractAndStoreArray_harness.c | 2 +- .../extractParameter_harness.c | 2 +- .../freeFileContextMem_harness.c | 2 +- .../getFileContextFromJob_harness.c | 2 +- .../handleCustomJob/handleCustomJob_harness.c | 2 +- .../handleJobParsingError_harness.c | 2 +- .../handleSelfTestJobDoc_harness.c | 2 +- .../handleUnexpectedEvents_harness.c | 2 +- .../inSelfTestHandler_harness.c | 2 +- .../ingestDataBlock/ingestDataBlock_harness.c | 2 +- .../ingestDataBlockCleanup_harness.c | 2 +- .../initDocModel/initDocModel_harness.c | 2 +- .../initFileHandler/initFileHandler_harness.c | 2 +- .../initFileTransfer_Http_harness.c | 2 +- .../initFileTransfer_Mqtt_harness.c | 2 +- .../initializeAppBuffers_harness.c | 2 +- .../initializeLocalBuffers_harness.c | 2 +- .../jobNotificationHandler_harness.c | 2 +- test/cbmc/proofs/otaClose/otaClose_harness.c | 2 +- .../otaTimerCallback_harness.c | 2 +- .../parseJSONbyModel_harness.c | 2 +- .../proofs/parseJobDoc/parseJobDoc_harness.c | 2 +- .../platformInSelftest_harness.c | 2 +- .../preprocessBase64Index_harness.c | 2 +- .../processDataBlock_harness.c | 2 +- .../processDataHandler_harness.c | 2 +- .../processJobHandler_harness.c | 2 +- .../processNullFileContext_harness.c | 2 +- .../processValidFileContext_harness.c | 2 +- .../prvBuildStatusMessageFinish_harness.c | 2 +- .../prvBuildStatusMessageSelfTest_harness.c | 2 +- .../publishStatusMessage_harness.c | 2 +- .../receiveAndProcessOtaEvent_harness.c | 2 +- .../requestDataBlock_Http_harness.c | 2 +- .../requestDataHandler_harness.c | 2 +- .../requestFileBlock_Mqtt_harness.c | 2 +- .../requestJobHandler_harness.c | 2 +- .../requestJob_Mqtt/requestJob_Mqtt_harness.c | 2 +- .../requestTimerCallback_harness.c | 2 +- .../resetEventQueue/resetEventQueue_harness.c | 2 +- .../resumeHandler/resumeHandler_harness.c | 2 +- .../searchTransition_harness.c | 2 +- .../selfTestTimerCallback_harness.c | 2 +- .../setControlInterface_harness.c | 2 +- .../setDataInterface_harness.c | 2 +- .../setImageStateWithReason_harness.c | 2 +- .../shutdownHandler/shutdownHandler_harness.c | 2 +- .../startHandler/startHandler_harness.c | 2 +- .../stringBuilder/stringBuilder_harness.c | 2 +- .../stringBuilderUInt32Decimal_harness.c | 2 +- .../stringBuilderUInt32Hex_harness.c | 2 +- ...subscribeToJobNotificationTopics_harness.c | 2 +- .../suspendHandler/suspendHandler_harness.c | 2 +- .../unsubscribeFromDataStream_harness.c | 2 +- ...ubscribeFromJobNotificationTopic_harness.c | 2 +- .../updateBase64DecodingBuffer_harness.c | 2 +- .../updateJobStatusFromImageState_harness.c | 2 +- .../updateJobStatus_Mqtt_harness.c | 2 +- .../userAbortHandler_harness.c | 2 +- .../validateAndStartJob_harness.c | 2 +- .../validateDataBlock_harness.c | 2 +- .../validateJSON/validateJSON_harness.c | 2 +- .../validateUpdateVersion_harness.c | 2 +- .../verifyActiveJobStatus_harness.c | 2 +- .../verifyRequiredParamsExtracted_harness.c | 2 +- test/cbmc/source/stubs.c | 2 +- test/unit-test/ota_base64_utest.c | 2 +- test/unit-test/ota_cbor_utest.c | 2 +- test/unit-test/ota_config.h | 2 +- test/unit-test/ota_os_posix_utest.c | 2 +- test/unit-test/ota_utest.c | 2 +- test/unit-test/utest_helpers.c | 2 +- test/unit-test/utest_helpers.h | 2 +- tools/coverity/README.md | 79 +++++++++++++++++++ 158 files changed, 257 insertions(+), 160 deletions(-) create mode 100644 tools/coverity/README.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 546dccc41..aceecd15c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,22 @@ # Changelog for AWS IoT Over-the-air Update Library + +### v3.4.0 (August 2022) + - [#450](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/450) Remove assertion check to make out-of-order packet work + - [#449](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/449) MISRA C:2012 compliance updates + - [#443](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/443) Removal of const for pData + - [#441](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/441) Add user callable agent cycler + - [#440](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/440) Keep event/callback functions to avoid access NULL + - [#439](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/439) Self timer restart bug fix + - [#436](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/436) Update OtaPalWriteBlock_t comment with a note about returning from the function and exception condition. + - [#433](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/433) Replace mq_send/mq_receive with mq_timedsend/mq_timedreceive. + - [#432](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/432) Change default signature size to 384 to support RSA-3072 + - [#436](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/432) Fix the length judgement in custom job, and move OtaAppCallback to make sure job ID is valid. + - [#428](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/428) Ignore duplicate packet and wait for valid file blocks + - [#427](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/427) Add new event for application callback when no active jobs are available + - [#426](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/426) Send status update on first block received + - [#419](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/419) Move cleanup of job id to after OtaAppCallback + - [#413](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/413) Clear timers in shutdown and suspend + ### v3.3.0 (December 2021) - Added CBMC proofs of all public and private functions in the OTA library. - [#373](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/373) Updated compiler flag for tinycbor source files diff --git a/README.md b/README.md index da8901515..883837885 100644 --- a/README.md +++ b/README.md @@ -50,18 +50,18 @@ git submodule update --checkout --init --recursive test/unit-test/CMock ## Migration Guide -### How to migrate from v2.0.0 (Release Candidate) to v3.3.0 +### How to migrate from v2.0.0 (Release Candidate) to v3.4.0 -The following table lists equivalent API function signatures in v2.0.0 (Release Candidate) and v3.3.0 declared in [ota.h](source/include/ota.h) +The following table lists equivalent API function signatures in v2.0.0 (Release Candidate) and v3.4.0 declared in [ota.h](source/include/ota.h) -| v2.0.0 (Release Candidate) | v3.3.0 | Notes | +| v2.0.0 (Release Candidate) | v3.4.0 | Notes | | :-: | :-: | :-: | | `OtaState_t OTA_Shutdown( uint32_t ticksToWait );` | `OtaState_t OTA_Shutdown( uint32_t ticksToWait, uint8_t unsubscribeFlag );` | `unsubscribeFlag` indicates if unsubscribe operations should be performed from the job topics when shutdown is called. Set this as 1 to unsubscribe, 0 otherwise. | -### How to migrate from version 1.0.0 to version 3.3.0 for OTA applications +### How to migrate from version 1.0.0 to version 3.4.0 for OTA applications Refer to [OTA Migration document](https://docs.aws.amazon.com/freertos/latest/portingguide/porting-migration-ota.html) for the summary of updates to the API. -[Migration document for OTA PAL](https://docs.aws.amazon.com/freertos/latest/portingguide/porting-migration-ota-pal.html) also provides a summary of updates required for upgrading the OTA-PAL to work with v3.3.0 of the library. +[Migration document for OTA PAL](https://docs.aws.amazon.com/freertos/latest/portingguide/porting-migration-ota-pal.html) also provides a summary of updates required for upgrading the OTA-PAL to work with v3.4.0 of the library. ## Porting diff --git a/docs/doxygen/config.doxyfile b/docs/doxygen/config.doxyfile index b13280205..dcc54fd0c 100644 --- a/docs/doxygen/config.doxyfile +++ b/docs/doxygen/config.doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = "AWS IoT Over-the-air Update" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = v3.3.0 +PROJECT_NUMBER = v3.4.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/manifest.yml b/manifest.yml index 3457c186b..a3ebd7e74 100644 --- a/manifest.yml +++ b/manifest.yml @@ -1,5 +1,5 @@ name : "ota-for-aws-iot-embedded-sdk" -version: "v3.3.0" +version: "v3.4.0" description: "Client library for using the AWS Over-the-air Update service on embedded devices." license: "MIT" dependencies: diff --git a/source/include/ota.h b/source/include/ota.h index 978745c0c..05c8a7927 100644 --- a/source/include/ota.h +++ b/source/include/ota.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/include/ota_appversion32.h b/source/include/ota_appversion32.h index 8887b879c..f93ac26d8 100644 --- a/source/include/ota_appversion32.h +++ b/source/include/ota_appversion32.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/include/ota_base64_private.h b/source/include/ota_base64_private.h index e404f9cef..2a7e5b35b 100644 --- a/source/include/ota_base64_private.h +++ b/source/include/ota_base64_private.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/include/ota_cbor_private.h b/source/include/ota_cbor_private.h index 4a4de86b1..7ce19e91d 100644 --- a/source/include/ota_cbor_private.h +++ b/source/include/ota_cbor_private.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/include/ota_config_defaults.h b/source/include/ota_config_defaults.h index 45ff524d2..4fb14e504 100644 --- a/source/include/ota_config_defaults.h +++ b/source/include/ota_config_defaults.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/include/ota_http_interface.h b/source/include/ota_http_interface.h index 49f538a2a..042e2bd50 100644 --- a/source/include/ota_http_interface.h +++ b/source/include/ota_http_interface.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/include/ota_http_private.h b/source/include/ota_http_private.h index c320cf549..c49b8aeb8 100644 --- a/source/include/ota_http_private.h +++ b/source/include/ota_http_private.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/include/ota_interface_private.h b/source/include/ota_interface_private.h index 22de60a12..795cae90e 100644 --- a/source/include/ota_interface_private.h +++ b/source/include/ota_interface_private.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/include/ota_mqtt_interface.h b/source/include/ota_mqtt_interface.h index 3da63a0ad..a33e5c884 100644 --- a/source/include/ota_mqtt_interface.h +++ b/source/include/ota_mqtt_interface.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/include/ota_mqtt_private.h b/source/include/ota_mqtt_private.h index b38856824..ca61568e5 100644 --- a/source/include/ota_mqtt_private.h +++ b/source/include/ota_mqtt_private.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/include/ota_os_interface.h b/source/include/ota_os_interface.h index 1a4c2e298..dcd7ea9a5 100644 --- a/source/include/ota_os_interface.h +++ b/source/include/ota_os_interface.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/include/ota_platform_interface.h b/source/include/ota_platform_interface.h index cf63c3bca..01daf5143 100644 --- a/source/include/ota_platform_interface.h +++ b/source/include/ota_platform_interface.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/include/ota_private.h b/source/include/ota_private.h index c2147483d..cca503236 100644 --- a/source/include/ota_private.h +++ b/source/include/ota_private.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/ota.c b/source/ota.c index 57682b3ef..cd20fedd7 100644 --- a/source/ota.c +++ b/source/ota.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/ota_base64.c b/source/ota_base64.c index c09f75171..7c0b76b27 100644 --- a/source/ota_base64.c +++ b/source/ota_base64.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/ota_cbor.c b/source/ota_cbor.c index 6c7035853..3c80fb086 100644 --- a/source/ota_cbor.c +++ b/source/ota_cbor.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/ota_http.c b/source/ota_http.c index c249e0fe6..a210816d5 100644 --- a/source/ota_http.c +++ b/source/ota_http.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/ota_interface.c b/source/ota_interface.c index 765365ca2..e91594c2d 100644 --- a/source/ota_interface.c +++ b/source/ota_interface.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/ota_mqtt.c b/source/ota_mqtt.c index ff31bdc1c..44f7d0233 100644 --- a/source/ota_mqtt.c +++ b/source/ota_mqtt.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/portable/os/ota_os_freertos.c b/source/portable/os/ota_os_freertos.c index ddf3aa7e1..6dd94dc10 100644 --- a/source/portable/os/ota_os_freertos.c +++ b/source/portable/os/ota_os_freertos.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/portable/os/ota_os_freertos.h b/source/portable/os/ota_os_freertos.h index 872bea817..119706612 100644 --- a/source/portable/os/ota_os_freertos.h +++ b/source/portable/os/ota_os_freertos.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/portable/os/ota_os_posix.c b/source/portable/os/ota_os_posix.c index 928cda66c..a5bd45ae7 100644 --- a/source/portable/os/ota_os_posix.c +++ b/source/portable/os/ota_os_posix.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/source/portable/os/ota_os_posix.h b/source/portable/os/ota_os_posix.h index c5f0148ae..4a80bbae2 100644 --- a/source/portable/os/ota_os_posix.h +++ b/source/portable/os/ota_os_posix.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/include/stubs.h b/test/cbmc/include/stubs.h index 06ee6fb9a..c3a1b8c5b 100644 --- a/test/cbmc/include/stubs.h +++ b/test/cbmc/include/stubs.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/Free_FreeRTOS/Free_FreeRTOS_harness.c b/test/cbmc/proofs/Free_FreeRTOS/Free_FreeRTOS_harness.c index a3ed8ec92..95b92ec2c 100644 --- a/test/cbmc/proofs/Free_FreeRTOS/Free_FreeRTOS_harness.c +++ b/test/cbmc/proofs/Free_FreeRTOS/Free_FreeRTOS_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/Malloc_FreeRTOS/Malloc_FreeRTOS_harness.c b/test/cbmc/proofs/Malloc_FreeRTOS/Malloc_FreeRTOS_harness.c index 79e9213ff..0c6ea6792 100644 --- a/test/cbmc/proofs/Malloc_FreeRTOS/Malloc_FreeRTOS_harness.c +++ b/test/cbmc/proofs/Malloc_FreeRTOS/Malloc_FreeRTOS_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_ActivateNewImage/OTA_ActivateNewImage_harness.c b/test/cbmc/proofs/OTA_ActivateNewImage/OTA_ActivateNewImage_harness.c index 212b74f24..35b87a74c 100644 --- a/test/cbmc/proofs/OTA_ActivateNewImage/OTA_ActivateNewImage_harness.c +++ b/test/cbmc/proofs/OTA_ActivateNewImage/OTA_ActivateNewImage_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_CBOR_Decode_GetStreamResponseMessage/OTA_CBOR_Decode_GetStreamResponseMessage_harness.c b/test/cbmc/proofs/OTA_CBOR_Decode_GetStreamResponseMessage/OTA_CBOR_Decode_GetStreamResponseMessage_harness.c index 63096d097..f18196cd5 100644 --- a/test/cbmc/proofs/OTA_CBOR_Decode_GetStreamResponseMessage/OTA_CBOR_Decode_GetStreamResponseMessage_harness.c +++ b/test/cbmc/proofs/OTA_CBOR_Decode_GetStreamResponseMessage/OTA_CBOR_Decode_GetStreamResponseMessage_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_CBOR_Encode_GetStreamRequestMessage/OTA_CBOR_Encode_GetStreamRequestMessage_harness.c b/test/cbmc/proofs/OTA_CBOR_Encode_GetStreamRequestMessage/OTA_CBOR_Encode_GetStreamRequestMessage_harness.c index 9486cf453..c9d156b0c 100644 --- a/test/cbmc/proofs/OTA_CBOR_Encode_GetStreamRequestMessage/OTA_CBOR_Encode_GetStreamRequestMessage_harness.c +++ b/test/cbmc/proofs/OTA_CBOR_Encode_GetStreamRequestMessage/OTA_CBOR_Encode_GetStreamRequestMessage_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_CheckForUpdate/OTA_CheckForUpdate_harness.c b/test/cbmc/proofs/OTA_CheckForUpdate/OTA_CheckForUpdate_harness.c index 09e1d0482..42ffdf989 100644 --- a/test/cbmc/proofs/OTA_CheckForUpdate/OTA_CheckForUpdate_harness.c +++ b/test/cbmc/proofs/OTA_CheckForUpdate/OTA_CheckForUpdate_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_Err_strerror/OTA_Err_strerror_harness.c b/test/cbmc/proofs/OTA_Err_strerror/OTA_Err_strerror_harness.c index 2a5466625..f196c4303 100644 --- a/test/cbmc/proofs/OTA_Err_strerror/OTA_Err_strerror_harness.c +++ b/test/cbmc/proofs/OTA_Err_strerror/OTA_Err_strerror_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_EventProcess/OTA_EventProcess_harness.c b/test/cbmc/proofs/OTA_EventProcess/OTA_EventProcess_harness.c index a6933dd43..45faa14a3 100644 --- a/test/cbmc/proofs/OTA_EventProcess/OTA_EventProcess_harness.c +++ b/test/cbmc/proofs/OTA_EventProcess/OTA_EventProcess_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_EventProcessingTask/OTA_EventProcessingTask_harness.c b/test/cbmc/proofs/OTA_EventProcessingTask/OTA_EventProcessingTask_harness.c index f1c356b2b..1352488f7 100644 --- a/test/cbmc/proofs/OTA_EventProcessingTask/OTA_EventProcessingTask_harness.c +++ b/test/cbmc/proofs/OTA_EventProcessingTask/OTA_EventProcessingTask_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_GetImageState/OTA_GetImageState_harness.c b/test/cbmc/proofs/OTA_GetImageState/OTA_GetImageState_harness.c index 4c3a61ee7..d6d481cea 100644 --- a/test/cbmc/proofs/OTA_GetImageState/OTA_GetImageState_harness.c +++ b/test/cbmc/proofs/OTA_GetImageState/OTA_GetImageState_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_GetState/OTA_GetState_harness.c b/test/cbmc/proofs/OTA_GetState/OTA_GetState_harness.c index 330a82f09..8ea13235d 100644 --- a/test/cbmc/proofs/OTA_GetState/OTA_GetState_harness.c +++ b/test/cbmc/proofs/OTA_GetState/OTA_GetState_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_GetStatistics/OTA_GetStatistics_harness.c b/test/cbmc/proofs/OTA_GetStatistics/OTA_GetStatistics_harness.c index 50d3e8ff9..fc922b450 100644 --- a/test/cbmc/proofs/OTA_GetStatistics/OTA_GetStatistics_harness.c +++ b/test/cbmc/proofs/OTA_GetStatistics/OTA_GetStatistics_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_HTTP_strerror/OTA_HTTP_strerror_harness.c b/test/cbmc/proofs/OTA_HTTP_strerror/OTA_HTTP_strerror_harness.c index fbc9df90c..c2eb7fb94 100644 --- a/test/cbmc/proofs/OTA_HTTP_strerror/OTA_HTTP_strerror_harness.c +++ b/test/cbmc/proofs/OTA_HTTP_strerror/OTA_HTTP_strerror_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_Init/OTA_Init_harness.c b/test/cbmc/proofs/OTA_Init/OTA_Init_harness.c index f128f9160..3d8ff4162 100644 --- a/test/cbmc/proofs/OTA_Init/OTA_Init_harness.c +++ b/test/cbmc/proofs/OTA_Init/OTA_Init_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_JobParse_strerror/OTA_JobParse_strerror_harness.c b/test/cbmc/proofs/OTA_JobParse_strerror/OTA_JobParse_strerror_harness.c index e769eaaab..e6ba92d22 100644 --- a/test/cbmc/proofs/OTA_JobParse_strerror/OTA_JobParse_strerror_harness.c +++ b/test/cbmc/proofs/OTA_JobParse_strerror/OTA_JobParse_strerror_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_MQTT_strerror/OTA_MQTT_strerror_harness.c b/test/cbmc/proofs/OTA_MQTT_strerror/OTA_MQTT_strerror_harness.c index 8b190118a..c0871ee9d 100644 --- a/test/cbmc/proofs/OTA_MQTT_strerror/OTA_MQTT_strerror_harness.c +++ b/test/cbmc/proofs/OTA_MQTT_strerror/OTA_MQTT_strerror_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_OsStatus_strerror/OTA_OsStatus_strerror_harness.c b/test/cbmc/proofs/OTA_OsStatus_strerror/OTA_OsStatus_strerror_harness.c index 0490e9a8a..6a21be55b 100644 --- a/test/cbmc/proofs/OTA_OsStatus_strerror/OTA_OsStatus_strerror_harness.c +++ b/test/cbmc/proofs/OTA_OsStatus_strerror/OTA_OsStatus_strerror_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_PalStatus_strerror/OTA_PalStatus_strerror_harness.c b/test/cbmc/proofs/OTA_PalStatus_strerror/OTA_PalStatus_strerror_harness.c index 8d9ab1ece..a622d382c 100644 --- a/test/cbmc/proofs/OTA_PalStatus_strerror/OTA_PalStatus_strerror_harness.c +++ b/test/cbmc/proofs/OTA_PalStatus_strerror/OTA_PalStatus_strerror_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_Resume/OTA_Resume_harness.c b/test/cbmc/proofs/OTA_Resume/OTA_Resume_harness.c index 38b602ecf..592e3a4b8 100644 --- a/test/cbmc/proofs/OTA_Resume/OTA_Resume_harness.c +++ b/test/cbmc/proofs/OTA_Resume/OTA_Resume_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_SetImageState/OTA_SetImageState_harness.c b/test/cbmc/proofs/OTA_SetImageState/OTA_SetImageState_harness.c index bfa70fbec..7d0db694e 100644 --- a/test/cbmc/proofs/OTA_SetImageState/OTA_SetImageState_harness.c +++ b/test/cbmc/proofs/OTA_SetImageState/OTA_SetImageState_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_Shutdown/OTA_Shutdown_harness.c b/test/cbmc/proofs/OTA_Shutdown/OTA_Shutdown_harness.c index c7f89f66e..b79e891ec 100644 --- a/test/cbmc/proofs/OTA_Shutdown/OTA_Shutdown_harness.c +++ b/test/cbmc/proofs/OTA_Shutdown/OTA_Shutdown_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_SignalEvent/OTA_SignalEvent_harness.c b/test/cbmc/proofs/OTA_SignalEvent/OTA_SignalEvent_harness.c index bdf44eb96..f2dd1e2b4 100644 --- a/test/cbmc/proofs/OTA_SignalEvent/OTA_SignalEvent_harness.c +++ b/test/cbmc/proofs/OTA_SignalEvent/OTA_SignalEvent_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OTA_Suspend/OTA_Suspend_harness.c b/test/cbmc/proofs/OTA_Suspend/OTA_Suspend_harness.c index 13296776e..09534d91f 100644 --- a/test/cbmc/proofs/OTA_Suspend/OTA_Suspend_harness.c +++ b/test/cbmc/proofs/OTA_Suspend/OTA_Suspend_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OtaDeinitEvent_FreeRTOS/OtaDeinitEvent_FreeRTOS_harness.c b/test/cbmc/proofs/OtaDeinitEvent_FreeRTOS/OtaDeinitEvent_FreeRTOS_harness.c index a90e817e8..d3c0efe05 100644 --- a/test/cbmc/proofs/OtaDeinitEvent_FreeRTOS/OtaDeinitEvent_FreeRTOS_harness.c +++ b/test/cbmc/proofs/OtaDeinitEvent_FreeRTOS/OtaDeinitEvent_FreeRTOS_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OtaDeleteTimer_FreeRTOS/OtaDeleteTimer_FreeRTOS_harness.c b/test/cbmc/proofs/OtaDeleteTimer_FreeRTOS/OtaDeleteTimer_FreeRTOS_harness.c index 66fe71fe6..f0dccb237 100644 --- a/test/cbmc/proofs/OtaDeleteTimer_FreeRTOS/OtaDeleteTimer_FreeRTOS_harness.c +++ b/test/cbmc/proofs/OtaDeleteTimer_FreeRTOS/OtaDeleteTimer_FreeRTOS_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OtaInitEvent_FreeRTOS/OtaInitEvent_FreeRTOS_harness.c b/test/cbmc/proofs/OtaInitEvent_FreeRTOS/OtaInitEvent_FreeRTOS_harness.c index 5a721b3d6..0f3958e5d 100644 --- a/test/cbmc/proofs/OtaInitEvent_FreeRTOS/OtaInitEvent_FreeRTOS_harness.c +++ b/test/cbmc/proofs/OtaInitEvent_FreeRTOS/OtaInitEvent_FreeRTOS_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OtaReceiveEvent_FreeRTOS/OtaReceiveEvent_FreeRTOS_harness.c b/test/cbmc/proofs/OtaReceiveEvent_FreeRTOS/OtaReceiveEvent_FreeRTOS_harness.c index 6621ebda9..7bb81bb1b 100644 --- a/test/cbmc/proofs/OtaReceiveEvent_FreeRTOS/OtaReceiveEvent_FreeRTOS_harness.c +++ b/test/cbmc/proofs/OtaReceiveEvent_FreeRTOS/OtaReceiveEvent_FreeRTOS_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OtaSendEvent_FreeRTOS/OtaSendEvent_FreeRTOS_harness.c b/test/cbmc/proofs/OtaSendEvent_FreeRTOS/OtaSendEvent_FreeRTOS_harness.c index d32c6e07c..c81c34f3c 100644 --- a/test/cbmc/proofs/OtaSendEvent_FreeRTOS/OtaSendEvent_FreeRTOS_harness.c +++ b/test/cbmc/proofs/OtaSendEvent_FreeRTOS/OtaSendEvent_FreeRTOS_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OtaStartTimer_FreeRTOS/OtaStartTimer_FreeRTOS_harness.c b/test/cbmc/proofs/OtaStartTimer_FreeRTOS/OtaStartTimer_FreeRTOS_harness.c index 334f6b4ab..0bbcc4021 100644 --- a/test/cbmc/proofs/OtaStartTimer_FreeRTOS/OtaStartTimer_FreeRTOS_harness.c +++ b/test/cbmc/proofs/OtaStartTimer_FreeRTOS/OtaStartTimer_FreeRTOS_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/OtaStopTimer_FreeRTOS/OtaStopTimer_FreeRTOS_harness.c b/test/cbmc/proofs/OtaStopTimer_FreeRTOS/OtaStopTimer_FreeRTOS_harness.c index 2b1ab74d6..e569c6911 100644 --- a/test/cbmc/proofs/OtaStopTimer_FreeRTOS/OtaStopTimer_FreeRTOS_harness.c +++ b/test/cbmc/proofs/OtaStopTimer_FreeRTOS/OtaStopTimer_FreeRTOS_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/Posix_OtaDeinitEvent/Posix_OtaDeinitEvent_harness.c b/test/cbmc/proofs/Posix_OtaDeinitEvent/Posix_OtaDeinitEvent_harness.c index 1b780c74c..f9f14189a 100644 --- a/test/cbmc/proofs/Posix_OtaDeinitEvent/Posix_OtaDeinitEvent_harness.c +++ b/test/cbmc/proofs/Posix_OtaDeinitEvent/Posix_OtaDeinitEvent_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/Posix_OtaDeleteTimer/Posix_OtaDeleteTimer_harness.c b/test/cbmc/proofs/Posix_OtaDeleteTimer/Posix_OtaDeleteTimer_harness.c index dde498473..c947264a8 100644 --- a/test/cbmc/proofs/Posix_OtaDeleteTimer/Posix_OtaDeleteTimer_harness.c +++ b/test/cbmc/proofs/Posix_OtaDeleteTimer/Posix_OtaDeleteTimer_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/Posix_OtaInitEvent/Posix_OtaInitEvent_harness.c b/test/cbmc/proofs/Posix_OtaInitEvent/Posix_OtaInitEvent_harness.c index 9a28bcf38..753014a5c 100644 --- a/test/cbmc/proofs/Posix_OtaInitEvent/Posix_OtaInitEvent_harness.c +++ b/test/cbmc/proofs/Posix_OtaInitEvent/Posix_OtaInitEvent_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/Posix_OtaReceiveEvent/Posix_OtaReceiveEvent_harness.c b/test/cbmc/proofs/Posix_OtaReceiveEvent/Posix_OtaReceiveEvent_harness.c index 126b7117c..1e29527a4 100644 --- a/test/cbmc/proofs/Posix_OtaReceiveEvent/Posix_OtaReceiveEvent_harness.c +++ b/test/cbmc/proofs/Posix_OtaReceiveEvent/Posix_OtaReceiveEvent_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/Posix_OtaSendEvent/Posix_OtaSendEvent_harness.c b/test/cbmc/proofs/Posix_OtaSendEvent/Posix_OtaSendEvent_harness.c index 4ed04a7ff..58c123a14 100644 --- a/test/cbmc/proofs/Posix_OtaSendEvent/Posix_OtaSendEvent_harness.c +++ b/test/cbmc/proofs/Posix_OtaSendEvent/Posix_OtaSendEvent_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/Posix_OtaStartTimer/Posix_OtaStartTimer_harness.c b/test/cbmc/proofs/Posix_OtaStartTimer/Posix_OtaStartTimer_harness.c index 325448323..7a068cdb0 100644 --- a/test/cbmc/proofs/Posix_OtaStartTimer/Posix_OtaStartTimer_harness.c +++ b/test/cbmc/proofs/Posix_OtaStartTimer/Posix_OtaStartTimer_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/Posix_OtaStopTimer/Posix_OtaStopTimer_harness.c b/test/cbmc/proofs/Posix_OtaStopTimer/Posix_OtaStopTimer_harness.c index e01f6de37..12e7c4b3a 100644 --- a/test/cbmc/proofs/Posix_OtaStopTimer/Posix_OtaStopTimer_harness.c +++ b/test/cbmc/proofs/Posix_OtaStopTimer/Posix_OtaStopTimer_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/Posix_RequestTimerCallback/requestTimerCallback_harness.c b/test/cbmc/proofs/Posix_RequestTimerCallback/requestTimerCallback_harness.c index 5c29faa27..5b9ff7551 100644 --- a/test/cbmc/proofs/Posix_RequestTimerCallback/requestTimerCallback_harness.c +++ b/test/cbmc/proofs/Posix_RequestTimerCallback/requestTimerCallback_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/Posix_selfTestTimerCallback/selfTestTimerCallback_harness.c b/test/cbmc/proofs/Posix_selfTestTimerCallback/selfTestTimerCallback_harness.c index f1b33d329..fba26a840 100644 --- a/test/cbmc/proofs/Posix_selfTestTimerCallback/selfTestTimerCallback_harness.c +++ b/test/cbmc/proofs/Posix_selfTestTimerCallback/selfTestTimerCallback_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/STDC_FREE/STDC_Free_harness.c b/test/cbmc/proofs/STDC_FREE/STDC_Free_harness.c index 30f315286..3f01b3f29 100644 --- a/test/cbmc/proofs/STDC_FREE/STDC_Free_harness.c +++ b/test/cbmc/proofs/STDC_FREE/STDC_Free_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/STDC_Malloc/STDC_Malloc_harness.c b/test/cbmc/proofs/STDC_Malloc/STDC_Malloc_harness.c index 270f2b5eb..e18e8a073 100644 --- a/test/cbmc/proofs/STDC_Malloc/STDC_Malloc_harness.c +++ b/test/cbmc/proofs/STDC_Malloc/STDC_Malloc_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/agentShutdownCleanup/agentShutdownCleanup_harness.c b/test/cbmc/proofs/agentShutdownCleanup/agentShutdownCleanup_harness.c index 3ee5fddec..b3501c3b5 100644 --- a/test/cbmc/proofs/agentShutdownCleanup/agentShutdownCleanup_harness.c +++ b/test/cbmc/proofs/agentShutdownCleanup/agentShutdownCleanup_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/base64Decode/base64Decode_harness.c b/test/cbmc/proofs/base64Decode/base64Decode_harness.c index 136fdf6f1..352ebcc25 100644 --- a/test/cbmc/proofs/base64Decode/base64Decode_harness.c +++ b/test/cbmc/proofs/base64Decode/base64Decode_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/buildStatusMessageReceiving/buildStatusMessageReceiving_harness.c b/test/cbmc/proofs/buildStatusMessageReceiving/buildStatusMessageReceiving_harness.c index 7d8c1446b..22a65d363 100644 --- a/test/cbmc/proofs/buildStatusMessageReceiving/buildStatusMessageReceiving_harness.c +++ b/test/cbmc/proofs/buildStatusMessageReceiving/buildStatusMessageReceiving_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/checkDataType/checkDataType_harness.c b/test/cbmc/proofs/checkDataType/checkDataType_harness.c index 3b139cd8e..59a870cd3 100644 --- a/test/cbmc/proofs/checkDataType/checkDataType_harness.c +++ b/test/cbmc/proofs/checkDataType/checkDataType_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/cleanupControl_Mqtt/cleanupControl_Mqtt_harness.c b/test/cbmc/proofs/cleanupControl_Mqtt/cleanupControl_Mqtt_harness.c index 34e44810a..f860faa2c 100644 --- a/test/cbmc/proofs/cleanupControl_Mqtt/cleanupControl_Mqtt_harness.c +++ b/test/cbmc/proofs/cleanupControl_Mqtt/cleanupControl_Mqtt_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/cleanupData_Http/cleanupData_Http_harness.c b/test/cbmc/proofs/cleanupData_Http/cleanupData_Http_harness.c index a9d9635b7..034dfd937 100644 --- a/test/cbmc/proofs/cleanupData_Http/cleanupData_Http_harness.c +++ b/test/cbmc/proofs/cleanupData_Http/cleanupData_Http_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/cleanupData_Mqtt/cleanupData_Mqtt_harness.c b/test/cbmc/proofs/cleanupData_Mqtt/cleanupData_Mqtt_harness.c index 8e767f778..c20259436 100644 --- a/test/cbmc/proofs/cleanupData_Mqtt/cleanupData_Mqtt_harness.c +++ b/test/cbmc/proofs/cleanupData_Mqtt/cleanupData_Mqtt_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/closeFileHandler/closeFileHandler_harness.c b/test/cbmc/proofs/closeFileHandler/closeFileHandler_harness.c index 52a54f4c9..8750e186f 100644 --- a/test/cbmc/proofs/closeFileHandler/closeFileHandler_harness.c +++ b/test/cbmc/proofs/closeFileHandler/closeFileHandler_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/dataHandlerCleanup/dataHandlerCleanup_harness.c b/test/cbmc/proofs/dataHandlerCleanup/dataHandlerCleanup_harness.c index 9df1152aa..608c432c7 100644 --- a/test/cbmc/proofs/dataHandlerCleanup/dataHandlerCleanup_harness.c +++ b/test/cbmc/proofs/dataHandlerCleanup/dataHandlerCleanup_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/decodeAndStoreDataBlock/decodeAndStoreDataBlock_harness.c b/test/cbmc/proofs/decodeAndStoreDataBlock/decodeAndStoreDataBlock_harness.c index 2082f7bfc..45d5f22d2 100644 --- a/test/cbmc/proofs/decodeAndStoreDataBlock/decodeAndStoreDataBlock_harness.c +++ b/test/cbmc/proofs/decodeAndStoreDataBlock/decodeAndStoreDataBlock_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/decodeAndStoreKey/decodeAndStoreKey_harness.c b/test/cbmc/proofs/decodeAndStoreKey/decodeAndStoreKey_harness.c index ad83576e5..6363193c8 100644 --- a/test/cbmc/proofs/decodeAndStoreKey/decodeAndStoreKey_harness.c +++ b/test/cbmc/proofs/decodeAndStoreKey/decodeAndStoreKey_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/decodeBase64IndexBuffer/decodeBase64IndexBuffer_harness.c b/test/cbmc/proofs/decodeBase64IndexBuffer/decodeBase64IndexBuffer_harness.c index f1d341a0e..a8e8aa1bf 100644 --- a/test/cbmc/proofs/decodeBase64IndexBuffer/decodeBase64IndexBuffer_harness.c +++ b/test/cbmc/proofs/decodeBase64IndexBuffer/decodeBase64IndexBuffer_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/decodeFileBlock_Http/decodeFileBlock_Http_harness.c b/test/cbmc/proofs/decodeFileBlock_Http/decodeFileBlock_Http_harness.c index 45d6a64aa..4ccd7d3ab 100644 --- a/test/cbmc/proofs/decodeFileBlock_Http/decodeFileBlock_Http_harness.c +++ b/test/cbmc/proofs/decodeFileBlock_Http/decodeFileBlock_Http_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/decodeFileBlock_Mqtt/decodeFileBlock_Mqtt_harness.c b/test/cbmc/proofs/decodeFileBlock_Mqtt/decodeFileBlock_Mqtt_harness.c index 4991ea991..ab0f108be 100644 --- a/test/cbmc/proofs/decodeFileBlock_Mqtt/decodeFileBlock_Mqtt_harness.c +++ b/test/cbmc/proofs/decodeFileBlock_Mqtt/decodeFileBlock_Mqtt_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/executeHandler/executeHandler_harness.c b/test/cbmc/proofs/executeHandler/executeHandler_harness.c index d7d7e1ed3..3e37d50a0 100644 --- a/test/cbmc/proofs/executeHandler/executeHandler_harness.c +++ b/test/cbmc/proofs/executeHandler/executeHandler_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/extractAndStoreArray/extractAndStoreArray_harness.c b/test/cbmc/proofs/extractAndStoreArray/extractAndStoreArray_harness.c index 4eca0260f..6770fe114 100644 --- a/test/cbmc/proofs/extractAndStoreArray/extractAndStoreArray_harness.c +++ b/test/cbmc/proofs/extractAndStoreArray/extractAndStoreArray_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/extractParameter/extractParameter_harness.c b/test/cbmc/proofs/extractParameter/extractParameter_harness.c index bc01e918e..52a0b8ed0 100644 --- a/test/cbmc/proofs/extractParameter/extractParameter_harness.c +++ b/test/cbmc/proofs/extractParameter/extractParameter_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/freeFileContextMem/freeFileContextMem_harness.c b/test/cbmc/proofs/freeFileContextMem/freeFileContextMem_harness.c index b42a68aed..ba9ab800f 100644 --- a/test/cbmc/proofs/freeFileContextMem/freeFileContextMem_harness.c +++ b/test/cbmc/proofs/freeFileContextMem/freeFileContextMem_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/getFileContextFromJob/getFileContextFromJob_harness.c b/test/cbmc/proofs/getFileContextFromJob/getFileContextFromJob_harness.c index f5978004c..bb9afb6a8 100644 --- a/test/cbmc/proofs/getFileContextFromJob/getFileContextFromJob_harness.c +++ b/test/cbmc/proofs/getFileContextFromJob/getFileContextFromJob_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/handleCustomJob/handleCustomJob_harness.c b/test/cbmc/proofs/handleCustomJob/handleCustomJob_harness.c index a12ddd70b..da96dba97 100644 --- a/test/cbmc/proofs/handleCustomJob/handleCustomJob_harness.c +++ b/test/cbmc/proofs/handleCustomJob/handleCustomJob_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/handleJobParsingError/handleJobParsingError_harness.c b/test/cbmc/proofs/handleJobParsingError/handleJobParsingError_harness.c index 027053449..a4277d92f 100644 --- a/test/cbmc/proofs/handleJobParsingError/handleJobParsingError_harness.c +++ b/test/cbmc/proofs/handleJobParsingError/handleJobParsingError_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/handleSelfTestJobDoc/handleSelfTestJobDoc_harness.c b/test/cbmc/proofs/handleSelfTestJobDoc/handleSelfTestJobDoc_harness.c index 06f37931b..45380076a 100644 --- a/test/cbmc/proofs/handleSelfTestJobDoc/handleSelfTestJobDoc_harness.c +++ b/test/cbmc/proofs/handleSelfTestJobDoc/handleSelfTestJobDoc_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/handleUnexpectedEvents/handleUnexpectedEvents_harness.c b/test/cbmc/proofs/handleUnexpectedEvents/handleUnexpectedEvents_harness.c index 7149d6f5a..20adbfc20 100644 --- a/test/cbmc/proofs/handleUnexpectedEvents/handleUnexpectedEvents_harness.c +++ b/test/cbmc/proofs/handleUnexpectedEvents/handleUnexpectedEvents_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/inSelfTestHandler/inSelfTestHandler_harness.c b/test/cbmc/proofs/inSelfTestHandler/inSelfTestHandler_harness.c index 0b5b54e86..7be6deac2 100644 --- a/test/cbmc/proofs/inSelfTestHandler/inSelfTestHandler_harness.c +++ b/test/cbmc/proofs/inSelfTestHandler/inSelfTestHandler_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/ingestDataBlock/ingestDataBlock_harness.c b/test/cbmc/proofs/ingestDataBlock/ingestDataBlock_harness.c index 339390095..3adc0093e 100644 --- a/test/cbmc/proofs/ingestDataBlock/ingestDataBlock_harness.c +++ b/test/cbmc/proofs/ingestDataBlock/ingestDataBlock_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/ingestDataBlockCleanup/ingestDataBlockCleanup_harness.c b/test/cbmc/proofs/ingestDataBlockCleanup/ingestDataBlockCleanup_harness.c index 84d9e659a..92e635b8a 100644 --- a/test/cbmc/proofs/ingestDataBlockCleanup/ingestDataBlockCleanup_harness.c +++ b/test/cbmc/proofs/ingestDataBlockCleanup/ingestDataBlockCleanup_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/initDocModel/initDocModel_harness.c b/test/cbmc/proofs/initDocModel/initDocModel_harness.c index 310ea5304..32a5f3c4a 100644 --- a/test/cbmc/proofs/initDocModel/initDocModel_harness.c +++ b/test/cbmc/proofs/initDocModel/initDocModel_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/initFileHandler/initFileHandler_harness.c b/test/cbmc/proofs/initFileHandler/initFileHandler_harness.c index 0c10ca07c..2c9cba639 100644 --- a/test/cbmc/proofs/initFileHandler/initFileHandler_harness.c +++ b/test/cbmc/proofs/initFileHandler/initFileHandler_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/initFileTransfer_Http/initFileTransfer_Http_harness.c b/test/cbmc/proofs/initFileTransfer_Http/initFileTransfer_Http_harness.c index ceef3eec9..6510d2f41 100644 --- a/test/cbmc/proofs/initFileTransfer_Http/initFileTransfer_Http_harness.c +++ b/test/cbmc/proofs/initFileTransfer_Http/initFileTransfer_Http_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/initFileTransfer_Mqtt/initFileTransfer_Mqtt_harness.c b/test/cbmc/proofs/initFileTransfer_Mqtt/initFileTransfer_Mqtt_harness.c index 4b67343e4..0fbd7ef31 100644 --- a/test/cbmc/proofs/initFileTransfer_Mqtt/initFileTransfer_Mqtt_harness.c +++ b/test/cbmc/proofs/initFileTransfer_Mqtt/initFileTransfer_Mqtt_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/initializeAppBuffers/initializeAppBuffers_harness.c b/test/cbmc/proofs/initializeAppBuffers/initializeAppBuffers_harness.c index a1b588fc6..067eff6b2 100644 --- a/test/cbmc/proofs/initializeAppBuffers/initializeAppBuffers_harness.c +++ b/test/cbmc/proofs/initializeAppBuffers/initializeAppBuffers_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/initializeLocalBuffers/initializeLocalBuffers_harness.c b/test/cbmc/proofs/initializeLocalBuffers/initializeLocalBuffers_harness.c index 64c6393f6..8cc1a9e4f 100644 --- a/test/cbmc/proofs/initializeLocalBuffers/initializeLocalBuffers_harness.c +++ b/test/cbmc/proofs/initializeLocalBuffers/initializeLocalBuffers_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/jobNotificationHandler/jobNotificationHandler_harness.c b/test/cbmc/proofs/jobNotificationHandler/jobNotificationHandler_harness.c index 3f1f4dbc3..1336be470 100644 --- a/test/cbmc/proofs/jobNotificationHandler/jobNotificationHandler_harness.c +++ b/test/cbmc/proofs/jobNotificationHandler/jobNotificationHandler_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/otaClose/otaClose_harness.c b/test/cbmc/proofs/otaClose/otaClose_harness.c index 1e3c3a34e..90e7b9af4 100644 --- a/test/cbmc/proofs/otaClose/otaClose_harness.c +++ b/test/cbmc/proofs/otaClose/otaClose_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/otaTimerCallback/otaTimerCallback_harness.c b/test/cbmc/proofs/otaTimerCallback/otaTimerCallback_harness.c index 29d3b8ae9..86061b589 100644 --- a/test/cbmc/proofs/otaTimerCallback/otaTimerCallback_harness.c +++ b/test/cbmc/proofs/otaTimerCallback/otaTimerCallback_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/parseJSONbyModel/parseJSONbyModel_harness.c b/test/cbmc/proofs/parseJSONbyModel/parseJSONbyModel_harness.c index c8825602e..79c7ce97e 100644 --- a/test/cbmc/proofs/parseJSONbyModel/parseJSONbyModel_harness.c +++ b/test/cbmc/proofs/parseJSONbyModel/parseJSONbyModel_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/parseJobDoc/parseJobDoc_harness.c b/test/cbmc/proofs/parseJobDoc/parseJobDoc_harness.c index 909680cdf..5ba8e6f6a 100644 --- a/test/cbmc/proofs/parseJobDoc/parseJobDoc_harness.c +++ b/test/cbmc/proofs/parseJobDoc/parseJobDoc_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/platformInSelftest/platformInSelftest_harness.c b/test/cbmc/proofs/platformInSelftest/platformInSelftest_harness.c index d4dc1e5c0..4d121b721 100644 --- a/test/cbmc/proofs/platformInSelftest/platformInSelftest_harness.c +++ b/test/cbmc/proofs/platformInSelftest/platformInSelftest_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/preprocessBase64Index/preprocessBase64Index_harness.c b/test/cbmc/proofs/preprocessBase64Index/preprocessBase64Index_harness.c index 55fbb6252..b8cb7ca98 100644 --- a/test/cbmc/proofs/preprocessBase64Index/preprocessBase64Index_harness.c +++ b/test/cbmc/proofs/preprocessBase64Index/preprocessBase64Index_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/processDataBlock/processDataBlock_harness.c b/test/cbmc/proofs/processDataBlock/processDataBlock_harness.c index 6eb5077a3..5b05bfc24 100644 --- a/test/cbmc/proofs/processDataBlock/processDataBlock_harness.c +++ b/test/cbmc/proofs/processDataBlock/processDataBlock_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/processDataHandler/processDataHandler_harness.c b/test/cbmc/proofs/processDataHandler/processDataHandler_harness.c index 42089f2d5..ef003df11 100644 --- a/test/cbmc/proofs/processDataHandler/processDataHandler_harness.c +++ b/test/cbmc/proofs/processDataHandler/processDataHandler_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/processJobHandler/processJobHandler_harness.c b/test/cbmc/proofs/processJobHandler/processJobHandler_harness.c index 99da2ff64..e321c94e9 100644 --- a/test/cbmc/proofs/processJobHandler/processJobHandler_harness.c +++ b/test/cbmc/proofs/processJobHandler/processJobHandler_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/processNullFileContext/processNullFileContext_harness.c b/test/cbmc/proofs/processNullFileContext/processNullFileContext_harness.c index aada9c784..ad808e944 100644 --- a/test/cbmc/proofs/processNullFileContext/processNullFileContext_harness.c +++ b/test/cbmc/proofs/processNullFileContext/processNullFileContext_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/processValidFileContext/processValidFileContext_harness.c b/test/cbmc/proofs/processValidFileContext/processValidFileContext_harness.c index 44a5fb2b2..d3c5aacc2 100644 --- a/test/cbmc/proofs/processValidFileContext/processValidFileContext_harness.c +++ b/test/cbmc/proofs/processValidFileContext/processValidFileContext_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/prvBuildStatusMessageFinish/prvBuildStatusMessageFinish_harness.c b/test/cbmc/proofs/prvBuildStatusMessageFinish/prvBuildStatusMessageFinish_harness.c index c8de6d087..77cadc789 100644 --- a/test/cbmc/proofs/prvBuildStatusMessageFinish/prvBuildStatusMessageFinish_harness.c +++ b/test/cbmc/proofs/prvBuildStatusMessageFinish/prvBuildStatusMessageFinish_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/prvBuildStatusMessageSelfTest/prvBuildStatusMessageSelfTest_harness.c b/test/cbmc/proofs/prvBuildStatusMessageSelfTest/prvBuildStatusMessageSelfTest_harness.c index db23149ac..909e965ad 100644 --- a/test/cbmc/proofs/prvBuildStatusMessageSelfTest/prvBuildStatusMessageSelfTest_harness.c +++ b/test/cbmc/proofs/prvBuildStatusMessageSelfTest/prvBuildStatusMessageSelfTest_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/publishStatusMessage/publishStatusMessage_harness.c b/test/cbmc/proofs/publishStatusMessage/publishStatusMessage_harness.c index 371a65033..974dceca3 100644 --- a/test/cbmc/proofs/publishStatusMessage/publishStatusMessage_harness.c +++ b/test/cbmc/proofs/publishStatusMessage/publishStatusMessage_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/receiveAndProcessOtaEvent/receiveAndProcessOtaEvent_harness.c b/test/cbmc/proofs/receiveAndProcessOtaEvent/receiveAndProcessOtaEvent_harness.c index 764486555..e337cb62b 100644 --- a/test/cbmc/proofs/receiveAndProcessOtaEvent/receiveAndProcessOtaEvent_harness.c +++ b/test/cbmc/proofs/receiveAndProcessOtaEvent/receiveAndProcessOtaEvent_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/requestDataBlock_Http/requestDataBlock_Http_harness.c b/test/cbmc/proofs/requestDataBlock_Http/requestDataBlock_Http_harness.c index 4066e3568..52ab89883 100644 --- a/test/cbmc/proofs/requestDataBlock_Http/requestDataBlock_Http_harness.c +++ b/test/cbmc/proofs/requestDataBlock_Http/requestDataBlock_Http_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/requestDataHandler/requestDataHandler_harness.c b/test/cbmc/proofs/requestDataHandler/requestDataHandler_harness.c index a29a28d86..57bd69d31 100644 --- a/test/cbmc/proofs/requestDataHandler/requestDataHandler_harness.c +++ b/test/cbmc/proofs/requestDataHandler/requestDataHandler_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/requestFileBlock_Mqtt/requestFileBlock_Mqtt_harness.c b/test/cbmc/proofs/requestFileBlock_Mqtt/requestFileBlock_Mqtt_harness.c index 0215fea17..c711c943c 100644 --- a/test/cbmc/proofs/requestFileBlock_Mqtt/requestFileBlock_Mqtt_harness.c +++ b/test/cbmc/proofs/requestFileBlock_Mqtt/requestFileBlock_Mqtt_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/requestJobHandler/requestJobHandler_harness.c b/test/cbmc/proofs/requestJobHandler/requestJobHandler_harness.c index 15927b667..52c73e7c9 100644 --- a/test/cbmc/proofs/requestJobHandler/requestJobHandler_harness.c +++ b/test/cbmc/proofs/requestJobHandler/requestJobHandler_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c b/test/cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c index 8bc4fa010..f5223782e 100644 --- a/test/cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c +++ b/test/cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/requestTimerCallback/requestTimerCallback_harness.c b/test/cbmc/proofs/requestTimerCallback/requestTimerCallback_harness.c index a3fe145eb..9830dcf29 100644 --- a/test/cbmc/proofs/requestTimerCallback/requestTimerCallback_harness.c +++ b/test/cbmc/proofs/requestTimerCallback/requestTimerCallback_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/resetEventQueue/resetEventQueue_harness.c b/test/cbmc/proofs/resetEventQueue/resetEventQueue_harness.c index 1a44c480b..5c7cb46d8 100644 --- a/test/cbmc/proofs/resetEventQueue/resetEventQueue_harness.c +++ b/test/cbmc/proofs/resetEventQueue/resetEventQueue_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/resumeHandler/resumeHandler_harness.c b/test/cbmc/proofs/resumeHandler/resumeHandler_harness.c index c938d5eec..715d998e6 100644 --- a/test/cbmc/proofs/resumeHandler/resumeHandler_harness.c +++ b/test/cbmc/proofs/resumeHandler/resumeHandler_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/searchTransition/searchTransition_harness.c b/test/cbmc/proofs/searchTransition/searchTransition_harness.c index 3419a93d9..906ddce6e 100644 --- a/test/cbmc/proofs/searchTransition/searchTransition_harness.c +++ b/test/cbmc/proofs/searchTransition/searchTransition_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/selfTestTimerCallback/selfTestTimerCallback_harness.c b/test/cbmc/proofs/selfTestTimerCallback/selfTestTimerCallback_harness.c index de515faac..53812f106 100644 --- a/test/cbmc/proofs/selfTestTimerCallback/selfTestTimerCallback_harness.c +++ b/test/cbmc/proofs/selfTestTimerCallback/selfTestTimerCallback_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/setControlInterface/setControlInterface_harness.c b/test/cbmc/proofs/setControlInterface/setControlInterface_harness.c index 6cab7cf79..17b85dbd8 100644 --- a/test/cbmc/proofs/setControlInterface/setControlInterface_harness.c +++ b/test/cbmc/proofs/setControlInterface/setControlInterface_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/setDataInterface/setDataInterface_harness.c b/test/cbmc/proofs/setDataInterface/setDataInterface_harness.c index fd4f80b30..cd2730e9f 100644 --- a/test/cbmc/proofs/setDataInterface/setDataInterface_harness.c +++ b/test/cbmc/proofs/setDataInterface/setDataInterface_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/setImageStateWithReason/setImageStateWithReason_harness.c b/test/cbmc/proofs/setImageStateWithReason/setImageStateWithReason_harness.c index 0382c669f..c8de179be 100644 --- a/test/cbmc/proofs/setImageStateWithReason/setImageStateWithReason_harness.c +++ b/test/cbmc/proofs/setImageStateWithReason/setImageStateWithReason_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/shutdownHandler/shutdownHandler_harness.c b/test/cbmc/proofs/shutdownHandler/shutdownHandler_harness.c index bdc3db3b6..b18d47199 100644 --- a/test/cbmc/proofs/shutdownHandler/shutdownHandler_harness.c +++ b/test/cbmc/proofs/shutdownHandler/shutdownHandler_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/startHandler/startHandler_harness.c b/test/cbmc/proofs/startHandler/startHandler_harness.c index 6c4ebdb01..fb6d24280 100644 --- a/test/cbmc/proofs/startHandler/startHandler_harness.c +++ b/test/cbmc/proofs/startHandler/startHandler_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/stringBuilder/stringBuilder_harness.c b/test/cbmc/proofs/stringBuilder/stringBuilder_harness.c index 08b194153..e32d457c0 100644 --- a/test/cbmc/proofs/stringBuilder/stringBuilder_harness.c +++ b/test/cbmc/proofs/stringBuilder/stringBuilder_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/stringBuilderUInt32Decimal/stringBuilderUInt32Decimal_harness.c b/test/cbmc/proofs/stringBuilderUInt32Decimal/stringBuilderUInt32Decimal_harness.c index ce4bad2c3..5205e3f09 100644 --- a/test/cbmc/proofs/stringBuilderUInt32Decimal/stringBuilderUInt32Decimal_harness.c +++ b/test/cbmc/proofs/stringBuilderUInt32Decimal/stringBuilderUInt32Decimal_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/stringBuilderUInt32Hex/stringBuilderUInt32Hex_harness.c b/test/cbmc/proofs/stringBuilderUInt32Hex/stringBuilderUInt32Hex_harness.c index 00e5cbbb9..c351bf057 100644 --- a/test/cbmc/proofs/stringBuilderUInt32Hex/stringBuilderUInt32Hex_harness.c +++ b/test/cbmc/proofs/stringBuilderUInt32Hex/stringBuilderUInt32Hex_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/subscribeToJobNotificationTopics/subscribeToJobNotificationTopics_harness.c b/test/cbmc/proofs/subscribeToJobNotificationTopics/subscribeToJobNotificationTopics_harness.c index 777bcf216..2f2d8eba1 100644 --- a/test/cbmc/proofs/subscribeToJobNotificationTopics/subscribeToJobNotificationTopics_harness.c +++ b/test/cbmc/proofs/subscribeToJobNotificationTopics/subscribeToJobNotificationTopics_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/suspendHandler/suspendHandler_harness.c b/test/cbmc/proofs/suspendHandler/suspendHandler_harness.c index 6fbe65180..f5715d331 100644 --- a/test/cbmc/proofs/suspendHandler/suspendHandler_harness.c +++ b/test/cbmc/proofs/suspendHandler/suspendHandler_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/unsubscribeFromDataStream/unsubscribeFromDataStream_harness.c b/test/cbmc/proofs/unsubscribeFromDataStream/unsubscribeFromDataStream_harness.c index a09bc10ed..2b462bb1e 100644 --- a/test/cbmc/proofs/unsubscribeFromDataStream/unsubscribeFromDataStream_harness.c +++ b/test/cbmc/proofs/unsubscribeFromDataStream/unsubscribeFromDataStream_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/unsubscribeFromJobNotificationTopic/unsubscribeFromJobNotificationTopic_harness.c b/test/cbmc/proofs/unsubscribeFromJobNotificationTopic/unsubscribeFromJobNotificationTopic_harness.c index 18d5a92ef..069c0089c 100644 --- a/test/cbmc/proofs/unsubscribeFromJobNotificationTopic/unsubscribeFromJobNotificationTopic_harness.c +++ b/test/cbmc/proofs/unsubscribeFromJobNotificationTopic/unsubscribeFromJobNotificationTopic_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/updateBase64DecodingBuffer/updateBase64DecodingBuffer_harness.c b/test/cbmc/proofs/updateBase64DecodingBuffer/updateBase64DecodingBuffer_harness.c index 9341b2caf..302a961da 100644 --- a/test/cbmc/proofs/updateBase64DecodingBuffer/updateBase64DecodingBuffer_harness.c +++ b/test/cbmc/proofs/updateBase64DecodingBuffer/updateBase64DecodingBuffer_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/updateJobStatusFromImageState/updateJobStatusFromImageState_harness.c b/test/cbmc/proofs/updateJobStatusFromImageState/updateJobStatusFromImageState_harness.c index 29649b98e..aeb617709 100644 --- a/test/cbmc/proofs/updateJobStatusFromImageState/updateJobStatusFromImageState_harness.c +++ b/test/cbmc/proofs/updateJobStatusFromImageState/updateJobStatusFromImageState_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/updateJobStatus_Mqtt/updateJobStatus_Mqtt_harness.c b/test/cbmc/proofs/updateJobStatus_Mqtt/updateJobStatus_Mqtt_harness.c index 84b8f90e4..381f9ac05 100644 --- a/test/cbmc/proofs/updateJobStatus_Mqtt/updateJobStatus_Mqtt_harness.c +++ b/test/cbmc/proofs/updateJobStatus_Mqtt/updateJobStatus_Mqtt_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/userAbortHandler/userAbortHandler_harness.c b/test/cbmc/proofs/userAbortHandler/userAbortHandler_harness.c index 96261966a..92f7da192 100644 --- a/test/cbmc/proofs/userAbortHandler/userAbortHandler_harness.c +++ b/test/cbmc/proofs/userAbortHandler/userAbortHandler_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/validateAndStartJob/validateAndStartJob_harness.c b/test/cbmc/proofs/validateAndStartJob/validateAndStartJob_harness.c index ac7f12652..64d7f192d 100644 --- a/test/cbmc/proofs/validateAndStartJob/validateAndStartJob_harness.c +++ b/test/cbmc/proofs/validateAndStartJob/validateAndStartJob_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/validateDataBlock/validateDataBlock_harness.c b/test/cbmc/proofs/validateDataBlock/validateDataBlock_harness.c index f760d760e..5f53fe376 100644 --- a/test/cbmc/proofs/validateDataBlock/validateDataBlock_harness.c +++ b/test/cbmc/proofs/validateDataBlock/validateDataBlock_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/validateJSON/validateJSON_harness.c b/test/cbmc/proofs/validateJSON/validateJSON_harness.c index 45016096e..24f129ccc 100644 --- a/test/cbmc/proofs/validateJSON/validateJSON_harness.c +++ b/test/cbmc/proofs/validateJSON/validateJSON_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/validateUpdateVersion/validateUpdateVersion_harness.c b/test/cbmc/proofs/validateUpdateVersion/validateUpdateVersion_harness.c index 0664279d6..7cbd6444f 100644 --- a/test/cbmc/proofs/validateUpdateVersion/validateUpdateVersion_harness.c +++ b/test/cbmc/proofs/validateUpdateVersion/validateUpdateVersion_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/verifyActiveJobStatus/verifyActiveJobStatus_harness.c b/test/cbmc/proofs/verifyActiveJobStatus/verifyActiveJobStatus_harness.c index bb6e905ff..cdf16ff60 100644 --- a/test/cbmc/proofs/verifyActiveJobStatus/verifyActiveJobStatus_harness.c +++ b/test/cbmc/proofs/verifyActiveJobStatus/verifyActiveJobStatus_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/proofs/verifyRequiredParamsExtracted/verifyRequiredParamsExtracted_harness.c b/test/cbmc/proofs/verifyRequiredParamsExtracted/verifyRequiredParamsExtracted_harness.c index 37b6090f3..150dd3351 100644 --- a/test/cbmc/proofs/verifyRequiredParamsExtracted/verifyRequiredParamsExtracted_harness.c +++ b/test/cbmc/proofs/verifyRequiredParamsExtracted/verifyRequiredParamsExtracted_harness.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/cbmc/source/stubs.c b/test/cbmc/source/stubs.c index 2b9ef45b0..d181f1fd1 100644 --- a/test/cbmc/source/stubs.c +++ b/test/cbmc/source/stubs.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/unit-test/ota_base64_utest.c b/test/unit-test/ota_base64_utest.c index c638fb7fe..0251174e4 100644 --- a/test/unit-test/ota_base64_utest.c +++ b/test/unit-test/ota_base64_utest.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/unit-test/ota_cbor_utest.c b/test/unit-test/ota_cbor_utest.c index bec8030c3..7c58d1acf 100644 --- a/test/unit-test/ota_cbor_utest.c +++ b/test/unit-test/ota_cbor_utest.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/unit-test/ota_config.h b/test/unit-test/ota_config.h index b0b7bc531..68aab3106 100644 --- a/test/unit-test/ota_config.h +++ b/test/unit-test/ota_config.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/unit-test/ota_os_posix_utest.c b/test/unit-test/ota_os_posix_utest.c index 7e7d7f207..b4d6c3d56 100644 --- a/test/unit-test/ota_os_posix_utest.c +++ b/test/unit-test/ota_os_posix_utest.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/unit-test/ota_utest.c b/test/unit-test/ota_utest.c index 60a17bded..8daed73d7 100644 --- a/test/unit-test/ota_utest.c +++ b/test/unit-test/ota_utest.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/unit-test/utest_helpers.c b/test/unit-test/utest_helpers.c index 8a9e33dd0..77c13aa67 100644 --- a/test/unit-test/utest_helpers.c +++ b/test/unit-test/utest_helpers.c @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/test/unit-test/utest_helpers.h b/test/unit-test/utest_helpers.h index 8d349f57f..8f8fe7e3c 100644 --- a/test/unit-test/utest_helpers.h +++ b/test/unit-test/utest_helpers.h @@ -1,5 +1,5 @@ /* - * AWS IoT Over-the-air Update v3.3.0 + * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/tools/coverity/README.md b/tools/coverity/README.md new file mode 100644 index 000000000..3f3f1a6f7 --- /dev/null +++ b/tools/coverity/README.md @@ -0,0 +1,79 @@ +# Static code analysis for AWS IoT Over-the-air Update Library +This directory is made for the purpose of statically testing the MISRA C:2012 compliance of AWS IoT Over-the-air Update Library using +[Synopsys Coverity](https://www.synopsys.com/software-integrity/security-testing/static-analysis-sast.html) static analysis tool. +To that end, this directory provides a [configuration file](https://github.com/aws/ota-for-aws-iot-embedded-sdk/blob/main/tools/coverity/misra.config) to use when +building a binary for the tool to analyze. + +> **Note** +For generating the report as outlined below, we have used Coverity version 2018.09. + +For details regarding the suppressed violations in the report (which can be generated using the instructions described below), please +see the [MISRA.md](https://github.com/aws/ota-for-aws-iot-embedded-sdk/blob/main/MISRA.md) file. + +## Getting Started +### Prerequisites +You can run this on a platform supported by Coverity. The list and other details can be found [here](https://sig-docs.synopsys.com/polaris/topics/c_coverity-compatible-platforms.html). +To compile and run the Coverity target successfully, you must have the following: + +1. CMake version > 3.13.0 (You can check whether you have this by typing `cmake --version`) +2. GCC compiler + - You can see the downloading and installation instructions [here](https://gcc.gnu.org/install/). +3. Download the repo and include the submodules using the following commands. + - `git clone --recurse-submodules git@github.com:aws/ota-for-aws-iot-embedded-sdk.git ./ota-for-aws-iot-embedded-sdk` + - `cd ./ota-for-aws-iot-embedded-sdk` + - `git submodule update --checkout --init --recursive` + +### To build and run coverity: +Go to the root directory of the library and run the following commands in terminal: +1. Update the compiler configuration in Coverity + ~~~ + cov-configure --force --compiler cc --comptype gcc + ~~~ +2. Create the build files using CMake in a `build` directory + ~~~ + cmake -B build -S test + ~~~ +3. Go to the build directory and copy the coverity configuration file + ~~~ + cd build/ + ~~~ +4. Build the static analysis target + ~~~ + cov-build --emit-complementary-info --dir cov-out make coverity_analysis + ~~~ +5. Go to the Coverity output directory (`cov-out`) and begin Coverity static analysis + ~~~ + cd cov-out/ + cov-analyze --dir . --coding-standard-config ../../tools/coverity/misra.config --tu-pattern "file('.*/source/.*')" + ~~~ +6. Format the errors in HTML format so that it is more readable while removing the test and build directory from the report + ~~~ + cov-format-errors --dir . --file "*/source" --exclude-files '(/build/|/test/)' --html-output html-out; + ~~~ +7. Format the errors in JSON format to perform a jq query to get a simplified list of any exceptions. + NOTE: A blank output means there are no defects that aren't being suppressed by the config or inline comments. + ~~~ + cov-format-errors --dir . --file "*/source" --exclude-files '(/build/|/test/)' --json-output-v2 defects.json; + echo -e "\n-------------------------Non-Suppresed Deviations, if any, Listed Below-------------------------\n"; + jq '.issues[] | .events[] | .eventTag ' defects.json | sort | uniq -c | sort -nr; + echo -e "\n-------------------------Non-Suppresed Deviations, if any, Listed Above-------------------------\n"; + ~~~ + +For your convenience the commands above are below to be copy/pasted into a UNIX command friendly terminal. + ~~~ + cov-configure --force --compiler cc --comptype gcc; + cmake -B build -S test; + cd build/; + cov-build --emit-complementary-info --dir cov-out make coverity_analysis; + cd cov-out/ + cov-analyze --dir . --coding-standard-config ../../tools/coverity/misra.config --tu-pattern "file('.*/source/.*')"; + cov-format-errors --dir . --file "*/source" --exclude-files '(/build/|/test/)' --html-output html-out; + cov-format-errors --dir . --file "*/source" --exclude-files '(/build/|/test/)' --json-output-v2 defects.json; + echo -e "\n-------------------------Non-Suppresed Deviations, if any, Listed Below-------------------------\n"; + jq '.issues[] | .events[] | .eventTag ' defects.json | sort | uniq -c | sort -nr; + echo -e "\n-------------------------Non-Suppresed Deviations, if any, Listed Above-------------------------\n"; + cd ../../; + ~~~ + +You should now have the HTML formatted violations list in a directory named `build/cov-out/html-output`. +With the current configuration and the provided project, you should not see any deviations. From fb4aece8c7ee4211b17ee48196222c04795b7a51 Mon Sep 17 00:00:00 2001 From: Soren Ptak Date: Fri, 14 Oct 2022 10:27:03 -0700 Subject: [PATCH 02/25] LTS 2.0 Launch (#454) * Fixing some small MISRA related issues, and then getting everything ready for LTS 2.0 * Adding SPDX License * Added the LTS version of coreJSON to v3.2.0 Co-authored-by: Soren Ptak --- .github/workflows/release.yml | 2 +- CHANGELOG.md | 2 +- README.md | 2 ++ manifest.yml | 2 +- source/dependency/coreJSON | 2 +- source/include/ota.h | 2 ++ source/include/ota_appversion32.h | 2 ++ source/include/ota_base64_private.h | 2 ++ source/include/ota_cbor_private.h | 2 ++ source/include/ota_config_defaults.h | 2 ++ source/include/ota_http_interface.h | 2 ++ source/include/ota_http_private.h | 2 ++ source/include/ota_interface_private.h | 2 ++ source/include/ota_mqtt_interface.h | 2 ++ source/include/ota_mqtt_private.h | 2 ++ source/include/ota_os_interface.h | 2 ++ source/include/ota_platform_interface.h | 2 ++ source/include/ota_private.h | 2 ++ source/ota.c | 6 ++++++ source/ota_base64.c | 2 ++ source/ota_cbor.c | 2 ++ source/ota_http.c | 2 ++ source/ota_interface.c | 2 ++ source/ota_mqtt.c | 2 ++ source/portable/os/ota_os_freertos.c | 2 ++ source/portable/os/ota_os_freertos.h | 2 ++ source/portable/os/ota_os_posix.c | 2 ++ source/portable/os/ota_os_posix.h | 2 ++ test/cbmc/include/FreeRTOSConfig.h | 2 ++ test/cbmc/include/stubs.h | 2 ++ test/cbmc/proofs/Free_FreeRTOS/Free_FreeRTOS_harness.c | 2 ++ .../cbmc/proofs/Malloc_FreeRTOS/Malloc_FreeRTOS_harness.c | 2 ++ .../OTA_ActivateNewImage/OTA_ActivateNewImage_harness.c | 2 ++ .../OTA_CBOR_Decode_GetStreamResponseMessage_harness.c | 2 ++ .../OTA_CBOR_Encode_GetStreamRequestMessage_harness.c | 2 ++ .../OTA_CheckForUpdate/OTA_CheckForUpdate_harness.c | 2 ++ .../proofs/OTA_Err_strerror/OTA_Err_strerror_harness.c | 2 ++ .../proofs/OTA_EventProcess/OTA_EventProcess_harness.c | 2 ++ .../OTA_EventProcessingTask_harness.c | 2 ++ .../proofs/OTA_GetImageState/OTA_GetImageState_harness.c | 2 ++ test/cbmc/proofs/OTA_GetState/OTA_GetState_harness.c | 2 ++ .../proofs/OTA_GetStatistics/OTA_GetStatistics_harness.c | 2 ++ .../proofs/OTA_HTTP_strerror/OTA_HTTP_strerror_harness.c | 2 ++ test/cbmc/proofs/OTA_Init/OTA_Init_harness.c | 2 ++ .../OTA_JobParse_strerror/OTA_JobParse_strerror_harness.c | 2 ++ .../proofs/OTA_MQTT_strerror/OTA_MQTT_strerror_harness.c | 2 ++ .../OTA_OsStatus_strerror/OTA_OsStatus_strerror_harness.c | 2 ++ .../OTA_PalStatus_strerror_harness.c | 2 ++ test/cbmc/proofs/OTA_Resume/OTA_Resume_harness.c | 2 ++ .../proofs/OTA_SetImageState/OTA_SetImageState_harness.c | 2 ++ test/cbmc/proofs/OTA_Shutdown/OTA_Shutdown_harness.c | 2 ++ .../cbmc/proofs/OTA_SignalEvent/OTA_SignalEvent_harness.c | 2 ++ test/cbmc/proofs/OTA_Suspend/OTA_Suspend_harness.c | 2 ++ .../OtaDeinitEvent_FreeRTOS_harness.c | 2 ++ .../OtaDeleteTimer_FreeRTOS_harness.c | 2 ++ .../OtaInitEvent_FreeRTOS/OtaInitEvent_FreeRTOS_harness.c | 2 ++ .../OtaReceiveEvent_FreeRTOS_harness.c | 2 ++ .../OtaSendEvent_FreeRTOS/OtaSendEvent_FreeRTOS_harness.c | 2 ++ .../OtaStartTimer_FreeRTOS_harness.c | 2 ++ .../OtaStopTimer_FreeRTOS/OtaStopTimer_FreeRTOS_harness.c | 2 ++ .../Posix_OtaDeinitEvent/Posix_OtaDeinitEvent_harness.c | 2 ++ .../Posix_OtaDeleteTimer/Posix_OtaDeleteTimer_harness.c | 2 ++ .../Posix_OtaInitEvent/Posix_OtaInitEvent_harness.c | 2 ++ .../Posix_OtaReceiveEvent/Posix_OtaReceiveEvent_harness.c | 2 ++ .../Posix_OtaSendEvent/Posix_OtaSendEvent_harness.c | 2 ++ .../Posix_OtaStartTimer/Posix_OtaStartTimer_harness.c | 2 ++ .../Posix_OtaStopTimer/Posix_OtaStopTimer_harness.c | 2 ++ .../requestTimerCallback_harness.c | 2 ++ .../selfTestTimerCallback_harness.c | 2 ++ test/cbmc/proofs/STDC_FREE/STDC_Free_harness.c | 2 ++ test/cbmc/proofs/STDC_Malloc/STDC_Malloc_harness.c | 2 ++ .../agentShutdownCleanup/agentShutdownCleanup_harness.c | 2 ++ test/cbmc/proofs/base64Decode/base64Decode_harness.c | 2 ++ .../buildStatusMessageReceiving_harness.c | 2 ++ test/cbmc/proofs/checkDataType/checkDataType_harness.c | 2 ++ .../cleanupControl_Mqtt/cleanupControl_Mqtt_harness.c | 2 ++ .../proofs/cleanupData_Http/cleanupData_Http_harness.c | 2 ++ .../proofs/cleanupData_Mqtt/cleanupData_Mqtt_harness.c | 2 ++ .../proofs/closeFileHandler/closeFileHandler_harness.c | 2 ++ .../dataHandlerCleanup/dataHandlerCleanup_harness.c | 2 ++ .../decodeAndStoreDataBlock_harness.c | 2 ++ .../proofs/decodeAndStoreKey/decodeAndStoreKey_harness.c | 2 ++ .../decodeBase64IndexBuffer_harness.c | 2 ++ .../decodeFileBlock_Http/decodeFileBlock_Http_harness.c | 2 ++ .../decodeFileBlock_Mqtt/decodeFileBlock_Mqtt_harness.c | 2 ++ test/cbmc/proofs/executeHandler/executeHandler_harness.c | 2 ++ .../extractAndStoreArray/extractAndStoreArray_harness.c | 2 ++ .../proofs/extractParameter/extractParameter_harness.c | 2 ++ .../freeFileContextMem/freeFileContextMem_harness.c | 2 ++ .../getFileContextFromJob/getFileContextFromJob_harness.c | 2 ++ .../cbmc/proofs/handleCustomJob/handleCustomJob_harness.c | 2 ++ .../handleJobParsingError/handleJobParsingError_harness.c | 2 ++ .../handleSelfTestJobDoc/handleSelfTestJobDoc_harness.c | 2 ++ .../handleUnexpectedEvents_harness.c | 2 ++ .../proofs/inSelfTestHandler/inSelfTestHandler_harness.c | 2 ++ .../cbmc/proofs/ingestDataBlock/ingestDataBlock_harness.c | 2 ++ .../ingestDataBlockCleanup_harness.c | 2 ++ test/cbmc/proofs/initDocModel/initDocModel_harness.c | 2 ++ .../cbmc/proofs/initFileHandler/initFileHandler_harness.c | 2 ++ .../initFileTransfer_Http/initFileTransfer_Http_harness.c | 2 ++ .../initFileTransfer_Mqtt/initFileTransfer_Mqtt_harness.c | 2 ++ .../initializeAppBuffers/initializeAppBuffers_harness.c | 2 ++ .../initializeLocalBuffers_harness.c | 2 ++ .../jobNotificationHandler_harness.c | 2 ++ test/cbmc/proofs/otaClose/otaClose_harness.c | 2 ++ .../proofs/otaTimerCallback/otaTimerCallback_harness.c | 2 ++ .../proofs/parseJSONbyModel/parseJSONbyModel_harness.c | 2 ++ test/cbmc/proofs/parseJobDoc/parseJobDoc_harness.c | 2 ++ .../platformInSelftest/platformInSelftest_harness.c | 2 ++ .../preprocessBase64Index/preprocessBase64Index_harness.c | 2 ++ .../proofs/processDataBlock/processDataBlock_harness.c | 2 ++ .../processDataHandler/processDataHandler_harness.c | 2 ++ .../proofs/processJobHandler/processJobHandler_harness.c | 2 ++ .../processNullFileContext_harness.c | 2 ++ .../processValidFileContext_harness.c | 2 ++ .../prvBuildStatusMessageFinish_harness.c | 2 ++ .../prvBuildStatusMessageSelfTest_harness.c | 2 ++ .../publishStatusMessage/publishStatusMessage_harness.c | 2 ++ .../receiveAndProcessOtaEvent_harness.c | 2 ++ .../requestDataBlock_Http/requestDataBlock_Http_harness.c | 2 ++ .../requestDataHandler/requestDataHandler_harness.c | 2 ++ .../requestFileBlock_Mqtt/requestFileBlock_Mqtt_harness.c | 2 ++ .../proofs/requestJobHandler/requestJobHandler_harness.c | 2 ++ .../cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c | 2 ++ .../requestTimerCallback/requestTimerCallback_harness.c | 2 ++ .../cbmc/proofs/resetEventQueue/resetEventQueue_harness.c | 2 ++ test/cbmc/proofs/resumeHandler/resumeHandler_harness.c | 2 ++ .../proofs/searchTransition/searchTransition_harness.c | 2 ++ .../selfTestTimerCallback/selfTestTimerCallback_harness.c | 2 ++ .../setControlInterface/setControlInterface_harness.c | 2 ++ .../proofs/setDataInterface/setDataInterface_harness.c | 2 ++ .../setImageStateWithReason_harness.c | 2 ++ .../cbmc/proofs/shutdownHandler/shutdownHandler_harness.c | 2 ++ test/cbmc/proofs/startHandler/startHandler_harness.c | 2 ++ test/cbmc/proofs/stringBuilder/stringBuilder_harness.c | 2 ++ .../stringBuilderUInt32Decimal_harness.c | 2 ++ .../stringBuilderUInt32Hex_harness.c | 2 ++ .../subscribeToJobNotificationTopics_harness.c | 2 ++ test/cbmc/proofs/suspendHandler/suspendHandler_harness.c | 2 ++ .../unsubscribeFromDataStream_harness.c | 2 ++ .../unsubscribeFromJobNotificationTopic_harness.c | 2 ++ .../updateBase64DecodingBuffer_harness.c | 2 ++ .../updateJobStatusFromImageState_harness.c | 2 ++ .../updateJobStatus_Mqtt/updateJobStatus_Mqtt_harness.c | 2 ++ .../proofs/userAbortHandler/userAbortHandler_harness.c | 2 ++ .../validateAndStartJob/validateAndStartJob_harness.c | 2 ++ .../proofs/validateDataBlock/validateDataBlock_harness.c | 2 ++ test/cbmc/proofs/validateJSON/validateJSON_harness.c | 2 ++ .../validateUpdateVersion/validateUpdateVersion_harness.c | 2 ++ .../verifyActiveJobStatus/verifyActiveJobStatus_harness.c | 2 ++ .../verifyRequiredParamsExtracted_harness.c | 2 ++ test/cbmc/source/stubs.c | 2 ++ test/unit-test/ota_base64_utest.c | 2 ++ test/unit-test/ota_cbor_utest.c | 2 ++ test/unit-test/ota_config.h | 2 ++ test/unit-test/ota_os_posix_utest.c | 2 ++ test/unit-test/ota_utest.c | 2 ++ test/unit-test/utest_helpers.c | 2 ++ test/unit-test/utest_helpers.h | 2 ++ tools/coverity/README.md | 8 ++++---- tools/coverity/misra.config | 8 ++++++++ tools/lexicon.txt | 1 + 162 files changed, 331 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 43265cc54..f40764161 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,7 @@ on: required: true jobs: - generate-sbom-and-tag-commit: + tag-commit: name: Tag commit runs-on: ubuntu-latest steps: diff --git a/CHANGELOG.md b/CHANGELOG.md index aceecd15c..b93e28571 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog for AWS IoT Over-the-air Update Library -### v3.4.0 (August 2022) +### v3.4.0 (October 2022) - [#450](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/450) Remove assertion check to make out-of-order packet work - [#449](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/449) MISRA C:2012 compliance updates - [#443](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/443) Removal of const for pData diff --git a/README.md b/README.md index 883837885..0d588f52f 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ This library has gone through code quality checks including verification that no See memory requirements for this library [here](./docs/doxygen/include/size_table.md). +**AWS IoT Over-the-air Update Library v3.4.0 [source code](https://github.com/aws/ota-for-aws-iot-embedded-sdk/tree/v3.4.0/source) is part of the [FreeRTOS 202210.00 LTS](https://github.com/FreeRTOS/FreeRTOS-LTS/tree/202210.00-LTS) release.** + **AWS IoT Over-the-air Update Library v3.3.0 [source code](https://github.com/aws/ota-for-aws-iot-embedded-sdk/tree/v3.3.0/source) is part of the [FreeRTOS 202012.01 LTS](https://github.com/FreeRTOS/FreeRTOS-LTS/tree/202012.01-LTS) release.** ## AWS IoT Over-the-air Updates Config File diff --git a/manifest.yml b/manifest.yml index a3ebd7e74..4d2224bf9 100644 --- a/manifest.yml +++ b/manifest.yml @@ -4,7 +4,7 @@ description: "Client library for using the AWS Over-the-air Update service on em license: "MIT" dependencies: - name : "coreJSON" - version: "v3.0.2" + version: "v3.2.0" license: "MIT" repository: type: "git" diff --git a/source/dependency/coreJSON b/source/dependency/coreJSON index caf540ccd..5b31f4c37 160000 --- a/source/dependency/coreJSON +++ b/source/dependency/coreJSON @@ -1 +1 @@ -Subproject commit caf540ccdb98e8f96a6f557075cb607288384938 +Subproject commit 5b31f4c37a034911a4992fd415f8177a75014946 diff --git a/source/include/ota.h b/source/include/ota.h index 05c8a7927..cf4f7b36d 100644 --- a/source/include/ota.h +++ b/source/include/ota.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/include/ota_appversion32.h b/source/include/ota_appversion32.h index f93ac26d8..61ee83bbc 100644 --- a/source/include/ota_appversion32.h +++ b/source/include/ota_appversion32.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/include/ota_base64_private.h b/source/include/ota_base64_private.h index 2a7e5b35b..790c29e29 100644 --- a/source/include/ota_base64_private.h +++ b/source/include/ota_base64_private.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/include/ota_cbor_private.h b/source/include/ota_cbor_private.h index 7ce19e91d..17c9c6636 100644 --- a/source/include/ota_cbor_private.h +++ b/source/include/ota_cbor_private.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/include/ota_config_defaults.h b/source/include/ota_config_defaults.h index 4fb14e504..6579c9bc0 100644 --- a/source/include/ota_config_defaults.h +++ b/source/include/ota_config_defaults.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/include/ota_http_interface.h b/source/include/ota_http_interface.h index 042e2bd50..ed5c0d6ce 100644 --- a/source/include/ota_http_interface.h +++ b/source/include/ota_http_interface.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/include/ota_http_private.h b/source/include/ota_http_private.h index c49b8aeb8..57466bc71 100644 --- a/source/include/ota_http_private.h +++ b/source/include/ota_http_private.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/include/ota_interface_private.h b/source/include/ota_interface_private.h index 795cae90e..fcffcb4a6 100644 --- a/source/include/ota_interface_private.h +++ b/source/include/ota_interface_private.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/include/ota_mqtt_interface.h b/source/include/ota_mqtt_interface.h index a33e5c884..d40319ace 100644 --- a/source/include/ota_mqtt_interface.h +++ b/source/include/ota_mqtt_interface.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/include/ota_mqtt_private.h b/source/include/ota_mqtt_private.h index ca61568e5..2e6118ffa 100644 --- a/source/include/ota_mqtt_private.h +++ b/source/include/ota_mqtt_private.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/include/ota_os_interface.h b/source/include/ota_os_interface.h index dcd7ea9a5..c9e8e4f42 100644 --- a/source/include/ota_os_interface.h +++ b/source/include/ota_os_interface.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/include/ota_platform_interface.h b/source/include/ota_platform_interface.h index 01daf5143..a00c60311 100644 --- a/source/include/ota_platform_interface.h +++ b/source/include/ota_platform_interface.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/include/ota_private.h b/source/include/ota_private.h index cca503236..27cf93a5c 100644 --- a/source/include/ota_private.h +++ b/source/include/ota_private.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/ota.c b/source/ota.c index cd20fedd7..083587971 100644 --- a/source/ota.c +++ b/source/ota.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to @@ -2456,6 +2458,10 @@ static OtaFileContext_t * getFileContextFromJob( const char * pRawMsg, else { assert( pUpdateFile->pRxBlockBitmap != NULL ); + + /* This value is checked for NULL using an assert. When building coverity_analysis + * asserts are disabled, leading to a violation. */ + /* coverity[var_deref_model] */ ( void ) memset( pUpdateFile->pRxBlockBitmap, 0, pUpdateFile->blockBitmapMaxSize ); } diff --git a/source/ota_base64.c b/source/ota_base64.c index 7c0b76b27..98f088174 100644 --- a/source/ota_base64.c +++ b/source/ota_base64.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/ota_cbor.c b/source/ota_cbor.c index 3c80fb086..754adb748 100644 --- a/source/ota_cbor.c +++ b/source/ota_cbor.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/ota_http.c b/source/ota_http.c index a210816d5..75f929003 100644 --- a/source/ota_http.c +++ b/source/ota_http.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/ota_interface.c b/source/ota_interface.c index e91594c2d..a71045723 100644 --- a/source/ota_interface.c +++ b/source/ota_interface.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/ota_mqtt.c b/source/ota_mqtt.c index 44f7d0233..8894003d8 100644 --- a/source/ota_mqtt.c +++ b/source/ota_mqtt.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/portable/os/ota_os_freertos.c b/source/portable/os/ota_os_freertos.c index 6dd94dc10..baf902bb3 100644 --- a/source/portable/os/ota_os_freertos.c +++ b/source/portable/os/ota_os_freertos.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/portable/os/ota_os_freertos.h b/source/portable/os/ota_os_freertos.h index 119706612..6a3be47f8 100644 --- a/source/portable/os/ota_os_freertos.h +++ b/source/portable/os/ota_os_freertos.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/portable/os/ota_os_posix.c b/source/portable/os/ota_os_posix.c index a5bd45ae7..53680c3af 100644 --- a/source/portable/os/ota_os_posix.c +++ b/source/portable/os/ota_os_posix.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/source/portable/os/ota_os_posix.h b/source/portable/os/ota_os_posix.h index 4a80bbae2..20524ebb7 100644 --- a/source/portable/os/ota_os_posix.h +++ b/source/portable/os/ota_os_posix.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/include/FreeRTOSConfig.h b/test/cbmc/include/FreeRTOSConfig.h index 1aac02972..7e5ff2049 100644 --- a/test/cbmc/include/FreeRTOSConfig.h +++ b/test/cbmc/include/FreeRTOSConfig.h @@ -2,6 +2,8 @@ * FreeRTOS Kernel V10.0.1 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/include/stubs.h b/test/cbmc/include/stubs.h index c3a1b8c5b..a8417a0b5 100644 --- a/test/cbmc/include/stubs.h +++ b/test/cbmc/include/stubs.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/Free_FreeRTOS/Free_FreeRTOS_harness.c b/test/cbmc/proofs/Free_FreeRTOS/Free_FreeRTOS_harness.c index 95b92ec2c..aba734b2e 100644 --- a/test/cbmc/proofs/Free_FreeRTOS/Free_FreeRTOS_harness.c +++ b/test/cbmc/proofs/Free_FreeRTOS/Free_FreeRTOS_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/Malloc_FreeRTOS/Malloc_FreeRTOS_harness.c b/test/cbmc/proofs/Malloc_FreeRTOS/Malloc_FreeRTOS_harness.c index 0c6ea6792..0ae505c85 100644 --- a/test/cbmc/proofs/Malloc_FreeRTOS/Malloc_FreeRTOS_harness.c +++ b/test/cbmc/proofs/Malloc_FreeRTOS/Malloc_FreeRTOS_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_ActivateNewImage/OTA_ActivateNewImage_harness.c b/test/cbmc/proofs/OTA_ActivateNewImage/OTA_ActivateNewImage_harness.c index 35b87a74c..fe3fa0278 100644 --- a/test/cbmc/proofs/OTA_ActivateNewImage/OTA_ActivateNewImage_harness.c +++ b/test/cbmc/proofs/OTA_ActivateNewImage/OTA_ActivateNewImage_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_CBOR_Decode_GetStreamResponseMessage/OTA_CBOR_Decode_GetStreamResponseMessage_harness.c b/test/cbmc/proofs/OTA_CBOR_Decode_GetStreamResponseMessage/OTA_CBOR_Decode_GetStreamResponseMessage_harness.c index f18196cd5..a26657dc7 100644 --- a/test/cbmc/proofs/OTA_CBOR_Decode_GetStreamResponseMessage/OTA_CBOR_Decode_GetStreamResponseMessage_harness.c +++ b/test/cbmc/proofs/OTA_CBOR_Decode_GetStreamResponseMessage/OTA_CBOR_Decode_GetStreamResponseMessage_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_CBOR_Encode_GetStreamRequestMessage/OTA_CBOR_Encode_GetStreamRequestMessage_harness.c b/test/cbmc/proofs/OTA_CBOR_Encode_GetStreamRequestMessage/OTA_CBOR_Encode_GetStreamRequestMessage_harness.c index c9d156b0c..0a3b1d04f 100644 --- a/test/cbmc/proofs/OTA_CBOR_Encode_GetStreamRequestMessage/OTA_CBOR_Encode_GetStreamRequestMessage_harness.c +++ b/test/cbmc/proofs/OTA_CBOR_Encode_GetStreamRequestMessage/OTA_CBOR_Encode_GetStreamRequestMessage_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_CheckForUpdate/OTA_CheckForUpdate_harness.c b/test/cbmc/proofs/OTA_CheckForUpdate/OTA_CheckForUpdate_harness.c index 42ffdf989..89d41252a 100644 --- a/test/cbmc/proofs/OTA_CheckForUpdate/OTA_CheckForUpdate_harness.c +++ b/test/cbmc/proofs/OTA_CheckForUpdate/OTA_CheckForUpdate_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_Err_strerror/OTA_Err_strerror_harness.c b/test/cbmc/proofs/OTA_Err_strerror/OTA_Err_strerror_harness.c index f196c4303..5b51da14d 100644 --- a/test/cbmc/proofs/OTA_Err_strerror/OTA_Err_strerror_harness.c +++ b/test/cbmc/proofs/OTA_Err_strerror/OTA_Err_strerror_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_EventProcess/OTA_EventProcess_harness.c b/test/cbmc/proofs/OTA_EventProcess/OTA_EventProcess_harness.c index 45faa14a3..0abc0ac78 100644 --- a/test/cbmc/proofs/OTA_EventProcess/OTA_EventProcess_harness.c +++ b/test/cbmc/proofs/OTA_EventProcess/OTA_EventProcess_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_EventProcessingTask/OTA_EventProcessingTask_harness.c b/test/cbmc/proofs/OTA_EventProcessingTask/OTA_EventProcessingTask_harness.c index 1352488f7..41b25d8c2 100644 --- a/test/cbmc/proofs/OTA_EventProcessingTask/OTA_EventProcessingTask_harness.c +++ b/test/cbmc/proofs/OTA_EventProcessingTask/OTA_EventProcessingTask_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_GetImageState/OTA_GetImageState_harness.c b/test/cbmc/proofs/OTA_GetImageState/OTA_GetImageState_harness.c index d6d481cea..7410e8f54 100644 --- a/test/cbmc/proofs/OTA_GetImageState/OTA_GetImageState_harness.c +++ b/test/cbmc/proofs/OTA_GetImageState/OTA_GetImageState_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_GetState/OTA_GetState_harness.c b/test/cbmc/proofs/OTA_GetState/OTA_GetState_harness.c index 8ea13235d..b945c0f24 100644 --- a/test/cbmc/proofs/OTA_GetState/OTA_GetState_harness.c +++ b/test/cbmc/proofs/OTA_GetState/OTA_GetState_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_GetStatistics/OTA_GetStatistics_harness.c b/test/cbmc/proofs/OTA_GetStatistics/OTA_GetStatistics_harness.c index fc922b450..462ee1a84 100644 --- a/test/cbmc/proofs/OTA_GetStatistics/OTA_GetStatistics_harness.c +++ b/test/cbmc/proofs/OTA_GetStatistics/OTA_GetStatistics_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_HTTP_strerror/OTA_HTTP_strerror_harness.c b/test/cbmc/proofs/OTA_HTTP_strerror/OTA_HTTP_strerror_harness.c index c2eb7fb94..6a21c7bb5 100644 --- a/test/cbmc/proofs/OTA_HTTP_strerror/OTA_HTTP_strerror_harness.c +++ b/test/cbmc/proofs/OTA_HTTP_strerror/OTA_HTTP_strerror_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_Init/OTA_Init_harness.c b/test/cbmc/proofs/OTA_Init/OTA_Init_harness.c index 3d8ff4162..75f7d41a2 100644 --- a/test/cbmc/proofs/OTA_Init/OTA_Init_harness.c +++ b/test/cbmc/proofs/OTA_Init/OTA_Init_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_JobParse_strerror/OTA_JobParse_strerror_harness.c b/test/cbmc/proofs/OTA_JobParse_strerror/OTA_JobParse_strerror_harness.c index e6ba92d22..aadde6a41 100644 --- a/test/cbmc/proofs/OTA_JobParse_strerror/OTA_JobParse_strerror_harness.c +++ b/test/cbmc/proofs/OTA_JobParse_strerror/OTA_JobParse_strerror_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_MQTT_strerror/OTA_MQTT_strerror_harness.c b/test/cbmc/proofs/OTA_MQTT_strerror/OTA_MQTT_strerror_harness.c index c0871ee9d..53b46582a 100644 --- a/test/cbmc/proofs/OTA_MQTT_strerror/OTA_MQTT_strerror_harness.c +++ b/test/cbmc/proofs/OTA_MQTT_strerror/OTA_MQTT_strerror_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_OsStatus_strerror/OTA_OsStatus_strerror_harness.c b/test/cbmc/proofs/OTA_OsStatus_strerror/OTA_OsStatus_strerror_harness.c index 6a21be55b..aaa80e8cf 100644 --- a/test/cbmc/proofs/OTA_OsStatus_strerror/OTA_OsStatus_strerror_harness.c +++ b/test/cbmc/proofs/OTA_OsStatus_strerror/OTA_OsStatus_strerror_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_PalStatus_strerror/OTA_PalStatus_strerror_harness.c b/test/cbmc/proofs/OTA_PalStatus_strerror/OTA_PalStatus_strerror_harness.c index a622d382c..9a6fa7d3a 100644 --- a/test/cbmc/proofs/OTA_PalStatus_strerror/OTA_PalStatus_strerror_harness.c +++ b/test/cbmc/proofs/OTA_PalStatus_strerror/OTA_PalStatus_strerror_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_Resume/OTA_Resume_harness.c b/test/cbmc/proofs/OTA_Resume/OTA_Resume_harness.c index 592e3a4b8..57e4aa0a4 100644 --- a/test/cbmc/proofs/OTA_Resume/OTA_Resume_harness.c +++ b/test/cbmc/proofs/OTA_Resume/OTA_Resume_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_SetImageState/OTA_SetImageState_harness.c b/test/cbmc/proofs/OTA_SetImageState/OTA_SetImageState_harness.c index 7d0db694e..229e74a88 100644 --- a/test/cbmc/proofs/OTA_SetImageState/OTA_SetImageState_harness.c +++ b/test/cbmc/proofs/OTA_SetImageState/OTA_SetImageState_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_Shutdown/OTA_Shutdown_harness.c b/test/cbmc/proofs/OTA_Shutdown/OTA_Shutdown_harness.c index b79e891ec..3106b44ca 100644 --- a/test/cbmc/proofs/OTA_Shutdown/OTA_Shutdown_harness.c +++ b/test/cbmc/proofs/OTA_Shutdown/OTA_Shutdown_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_SignalEvent/OTA_SignalEvent_harness.c b/test/cbmc/proofs/OTA_SignalEvent/OTA_SignalEvent_harness.c index f2dd1e2b4..af92529d2 100644 --- a/test/cbmc/proofs/OTA_SignalEvent/OTA_SignalEvent_harness.c +++ b/test/cbmc/proofs/OTA_SignalEvent/OTA_SignalEvent_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OTA_Suspend/OTA_Suspend_harness.c b/test/cbmc/proofs/OTA_Suspend/OTA_Suspend_harness.c index 09534d91f..fb676fe8f 100644 --- a/test/cbmc/proofs/OTA_Suspend/OTA_Suspend_harness.c +++ b/test/cbmc/proofs/OTA_Suspend/OTA_Suspend_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OtaDeinitEvent_FreeRTOS/OtaDeinitEvent_FreeRTOS_harness.c b/test/cbmc/proofs/OtaDeinitEvent_FreeRTOS/OtaDeinitEvent_FreeRTOS_harness.c index d3c0efe05..87b5e4976 100644 --- a/test/cbmc/proofs/OtaDeinitEvent_FreeRTOS/OtaDeinitEvent_FreeRTOS_harness.c +++ b/test/cbmc/proofs/OtaDeinitEvent_FreeRTOS/OtaDeinitEvent_FreeRTOS_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OtaDeleteTimer_FreeRTOS/OtaDeleteTimer_FreeRTOS_harness.c b/test/cbmc/proofs/OtaDeleteTimer_FreeRTOS/OtaDeleteTimer_FreeRTOS_harness.c index f0dccb237..809f19db0 100644 --- a/test/cbmc/proofs/OtaDeleteTimer_FreeRTOS/OtaDeleteTimer_FreeRTOS_harness.c +++ b/test/cbmc/proofs/OtaDeleteTimer_FreeRTOS/OtaDeleteTimer_FreeRTOS_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OtaInitEvent_FreeRTOS/OtaInitEvent_FreeRTOS_harness.c b/test/cbmc/proofs/OtaInitEvent_FreeRTOS/OtaInitEvent_FreeRTOS_harness.c index 0f3958e5d..79d3ee799 100644 --- a/test/cbmc/proofs/OtaInitEvent_FreeRTOS/OtaInitEvent_FreeRTOS_harness.c +++ b/test/cbmc/proofs/OtaInitEvent_FreeRTOS/OtaInitEvent_FreeRTOS_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OtaReceiveEvent_FreeRTOS/OtaReceiveEvent_FreeRTOS_harness.c b/test/cbmc/proofs/OtaReceiveEvent_FreeRTOS/OtaReceiveEvent_FreeRTOS_harness.c index 7bb81bb1b..71b3c2e38 100644 --- a/test/cbmc/proofs/OtaReceiveEvent_FreeRTOS/OtaReceiveEvent_FreeRTOS_harness.c +++ b/test/cbmc/proofs/OtaReceiveEvent_FreeRTOS/OtaReceiveEvent_FreeRTOS_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OtaSendEvent_FreeRTOS/OtaSendEvent_FreeRTOS_harness.c b/test/cbmc/proofs/OtaSendEvent_FreeRTOS/OtaSendEvent_FreeRTOS_harness.c index c81c34f3c..c4e2f619f 100644 --- a/test/cbmc/proofs/OtaSendEvent_FreeRTOS/OtaSendEvent_FreeRTOS_harness.c +++ b/test/cbmc/proofs/OtaSendEvent_FreeRTOS/OtaSendEvent_FreeRTOS_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OtaStartTimer_FreeRTOS/OtaStartTimer_FreeRTOS_harness.c b/test/cbmc/proofs/OtaStartTimer_FreeRTOS/OtaStartTimer_FreeRTOS_harness.c index 0bbcc4021..71dcc26c1 100644 --- a/test/cbmc/proofs/OtaStartTimer_FreeRTOS/OtaStartTimer_FreeRTOS_harness.c +++ b/test/cbmc/proofs/OtaStartTimer_FreeRTOS/OtaStartTimer_FreeRTOS_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/OtaStopTimer_FreeRTOS/OtaStopTimer_FreeRTOS_harness.c b/test/cbmc/proofs/OtaStopTimer_FreeRTOS/OtaStopTimer_FreeRTOS_harness.c index e569c6911..0438f2f39 100644 --- a/test/cbmc/proofs/OtaStopTimer_FreeRTOS/OtaStopTimer_FreeRTOS_harness.c +++ b/test/cbmc/proofs/OtaStopTimer_FreeRTOS/OtaStopTimer_FreeRTOS_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/Posix_OtaDeinitEvent/Posix_OtaDeinitEvent_harness.c b/test/cbmc/proofs/Posix_OtaDeinitEvent/Posix_OtaDeinitEvent_harness.c index f9f14189a..2f085de71 100644 --- a/test/cbmc/proofs/Posix_OtaDeinitEvent/Posix_OtaDeinitEvent_harness.c +++ b/test/cbmc/proofs/Posix_OtaDeinitEvent/Posix_OtaDeinitEvent_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/Posix_OtaDeleteTimer/Posix_OtaDeleteTimer_harness.c b/test/cbmc/proofs/Posix_OtaDeleteTimer/Posix_OtaDeleteTimer_harness.c index c947264a8..2bea2c3b0 100644 --- a/test/cbmc/proofs/Posix_OtaDeleteTimer/Posix_OtaDeleteTimer_harness.c +++ b/test/cbmc/proofs/Posix_OtaDeleteTimer/Posix_OtaDeleteTimer_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/Posix_OtaInitEvent/Posix_OtaInitEvent_harness.c b/test/cbmc/proofs/Posix_OtaInitEvent/Posix_OtaInitEvent_harness.c index 753014a5c..d141a4dbf 100644 --- a/test/cbmc/proofs/Posix_OtaInitEvent/Posix_OtaInitEvent_harness.c +++ b/test/cbmc/proofs/Posix_OtaInitEvent/Posix_OtaInitEvent_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/Posix_OtaReceiveEvent/Posix_OtaReceiveEvent_harness.c b/test/cbmc/proofs/Posix_OtaReceiveEvent/Posix_OtaReceiveEvent_harness.c index 1e29527a4..3b5352c94 100644 --- a/test/cbmc/proofs/Posix_OtaReceiveEvent/Posix_OtaReceiveEvent_harness.c +++ b/test/cbmc/proofs/Posix_OtaReceiveEvent/Posix_OtaReceiveEvent_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/Posix_OtaSendEvent/Posix_OtaSendEvent_harness.c b/test/cbmc/proofs/Posix_OtaSendEvent/Posix_OtaSendEvent_harness.c index 58c123a14..2f81f3e46 100644 --- a/test/cbmc/proofs/Posix_OtaSendEvent/Posix_OtaSendEvent_harness.c +++ b/test/cbmc/proofs/Posix_OtaSendEvent/Posix_OtaSendEvent_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/Posix_OtaStartTimer/Posix_OtaStartTimer_harness.c b/test/cbmc/proofs/Posix_OtaStartTimer/Posix_OtaStartTimer_harness.c index 7a068cdb0..502351226 100644 --- a/test/cbmc/proofs/Posix_OtaStartTimer/Posix_OtaStartTimer_harness.c +++ b/test/cbmc/proofs/Posix_OtaStartTimer/Posix_OtaStartTimer_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/Posix_OtaStopTimer/Posix_OtaStopTimer_harness.c b/test/cbmc/proofs/Posix_OtaStopTimer/Posix_OtaStopTimer_harness.c index 12e7c4b3a..a975fe0f7 100644 --- a/test/cbmc/proofs/Posix_OtaStopTimer/Posix_OtaStopTimer_harness.c +++ b/test/cbmc/proofs/Posix_OtaStopTimer/Posix_OtaStopTimer_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/Posix_RequestTimerCallback/requestTimerCallback_harness.c b/test/cbmc/proofs/Posix_RequestTimerCallback/requestTimerCallback_harness.c index 5b9ff7551..c8b512c4a 100644 --- a/test/cbmc/proofs/Posix_RequestTimerCallback/requestTimerCallback_harness.c +++ b/test/cbmc/proofs/Posix_RequestTimerCallback/requestTimerCallback_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/Posix_selfTestTimerCallback/selfTestTimerCallback_harness.c b/test/cbmc/proofs/Posix_selfTestTimerCallback/selfTestTimerCallback_harness.c index fba26a840..0bbca60e2 100644 --- a/test/cbmc/proofs/Posix_selfTestTimerCallback/selfTestTimerCallback_harness.c +++ b/test/cbmc/proofs/Posix_selfTestTimerCallback/selfTestTimerCallback_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/STDC_FREE/STDC_Free_harness.c b/test/cbmc/proofs/STDC_FREE/STDC_Free_harness.c index 3f01b3f29..9bf5238ea 100644 --- a/test/cbmc/proofs/STDC_FREE/STDC_Free_harness.c +++ b/test/cbmc/proofs/STDC_FREE/STDC_Free_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/STDC_Malloc/STDC_Malloc_harness.c b/test/cbmc/proofs/STDC_Malloc/STDC_Malloc_harness.c index e18e8a073..2e08e65a8 100644 --- a/test/cbmc/proofs/STDC_Malloc/STDC_Malloc_harness.c +++ b/test/cbmc/proofs/STDC_Malloc/STDC_Malloc_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/agentShutdownCleanup/agentShutdownCleanup_harness.c b/test/cbmc/proofs/agentShutdownCleanup/agentShutdownCleanup_harness.c index b3501c3b5..94d2dfbf1 100644 --- a/test/cbmc/proofs/agentShutdownCleanup/agentShutdownCleanup_harness.c +++ b/test/cbmc/proofs/agentShutdownCleanup/agentShutdownCleanup_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/base64Decode/base64Decode_harness.c b/test/cbmc/proofs/base64Decode/base64Decode_harness.c index 352ebcc25..6e6c635fc 100644 --- a/test/cbmc/proofs/base64Decode/base64Decode_harness.c +++ b/test/cbmc/proofs/base64Decode/base64Decode_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/buildStatusMessageReceiving/buildStatusMessageReceiving_harness.c b/test/cbmc/proofs/buildStatusMessageReceiving/buildStatusMessageReceiving_harness.c index 22a65d363..29dc89798 100644 --- a/test/cbmc/proofs/buildStatusMessageReceiving/buildStatusMessageReceiving_harness.c +++ b/test/cbmc/proofs/buildStatusMessageReceiving/buildStatusMessageReceiving_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/checkDataType/checkDataType_harness.c b/test/cbmc/proofs/checkDataType/checkDataType_harness.c index 59a870cd3..f26d90482 100644 --- a/test/cbmc/proofs/checkDataType/checkDataType_harness.c +++ b/test/cbmc/proofs/checkDataType/checkDataType_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/cleanupControl_Mqtt/cleanupControl_Mqtt_harness.c b/test/cbmc/proofs/cleanupControl_Mqtt/cleanupControl_Mqtt_harness.c index f860faa2c..d5eaf3099 100644 --- a/test/cbmc/proofs/cleanupControl_Mqtt/cleanupControl_Mqtt_harness.c +++ b/test/cbmc/proofs/cleanupControl_Mqtt/cleanupControl_Mqtt_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/cleanupData_Http/cleanupData_Http_harness.c b/test/cbmc/proofs/cleanupData_Http/cleanupData_Http_harness.c index 034dfd937..9e534431e 100644 --- a/test/cbmc/proofs/cleanupData_Http/cleanupData_Http_harness.c +++ b/test/cbmc/proofs/cleanupData_Http/cleanupData_Http_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/cleanupData_Mqtt/cleanupData_Mqtt_harness.c b/test/cbmc/proofs/cleanupData_Mqtt/cleanupData_Mqtt_harness.c index c20259436..1f48d0635 100644 --- a/test/cbmc/proofs/cleanupData_Mqtt/cleanupData_Mqtt_harness.c +++ b/test/cbmc/proofs/cleanupData_Mqtt/cleanupData_Mqtt_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/closeFileHandler/closeFileHandler_harness.c b/test/cbmc/proofs/closeFileHandler/closeFileHandler_harness.c index 8750e186f..9f9d9a15f 100644 --- a/test/cbmc/proofs/closeFileHandler/closeFileHandler_harness.c +++ b/test/cbmc/proofs/closeFileHandler/closeFileHandler_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/dataHandlerCleanup/dataHandlerCleanup_harness.c b/test/cbmc/proofs/dataHandlerCleanup/dataHandlerCleanup_harness.c index 608c432c7..a943527be 100644 --- a/test/cbmc/proofs/dataHandlerCleanup/dataHandlerCleanup_harness.c +++ b/test/cbmc/proofs/dataHandlerCleanup/dataHandlerCleanup_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/decodeAndStoreDataBlock/decodeAndStoreDataBlock_harness.c b/test/cbmc/proofs/decodeAndStoreDataBlock/decodeAndStoreDataBlock_harness.c index 45d5f22d2..40da13a4e 100644 --- a/test/cbmc/proofs/decodeAndStoreDataBlock/decodeAndStoreDataBlock_harness.c +++ b/test/cbmc/proofs/decodeAndStoreDataBlock/decodeAndStoreDataBlock_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/decodeAndStoreKey/decodeAndStoreKey_harness.c b/test/cbmc/proofs/decodeAndStoreKey/decodeAndStoreKey_harness.c index 6363193c8..489667e53 100644 --- a/test/cbmc/proofs/decodeAndStoreKey/decodeAndStoreKey_harness.c +++ b/test/cbmc/proofs/decodeAndStoreKey/decodeAndStoreKey_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/decodeBase64IndexBuffer/decodeBase64IndexBuffer_harness.c b/test/cbmc/proofs/decodeBase64IndexBuffer/decodeBase64IndexBuffer_harness.c index a8e8aa1bf..978c6e119 100644 --- a/test/cbmc/proofs/decodeBase64IndexBuffer/decodeBase64IndexBuffer_harness.c +++ b/test/cbmc/proofs/decodeBase64IndexBuffer/decodeBase64IndexBuffer_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/decodeFileBlock_Http/decodeFileBlock_Http_harness.c b/test/cbmc/proofs/decodeFileBlock_Http/decodeFileBlock_Http_harness.c index 4ccd7d3ab..d997e4bbf 100644 --- a/test/cbmc/proofs/decodeFileBlock_Http/decodeFileBlock_Http_harness.c +++ b/test/cbmc/proofs/decodeFileBlock_Http/decodeFileBlock_Http_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/decodeFileBlock_Mqtt/decodeFileBlock_Mqtt_harness.c b/test/cbmc/proofs/decodeFileBlock_Mqtt/decodeFileBlock_Mqtt_harness.c index ab0f108be..8e5763474 100644 --- a/test/cbmc/proofs/decodeFileBlock_Mqtt/decodeFileBlock_Mqtt_harness.c +++ b/test/cbmc/proofs/decodeFileBlock_Mqtt/decodeFileBlock_Mqtt_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/executeHandler/executeHandler_harness.c b/test/cbmc/proofs/executeHandler/executeHandler_harness.c index 3e37d50a0..791d1f75f 100644 --- a/test/cbmc/proofs/executeHandler/executeHandler_harness.c +++ b/test/cbmc/proofs/executeHandler/executeHandler_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/extractAndStoreArray/extractAndStoreArray_harness.c b/test/cbmc/proofs/extractAndStoreArray/extractAndStoreArray_harness.c index 6770fe114..a6f654413 100644 --- a/test/cbmc/proofs/extractAndStoreArray/extractAndStoreArray_harness.c +++ b/test/cbmc/proofs/extractAndStoreArray/extractAndStoreArray_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/extractParameter/extractParameter_harness.c b/test/cbmc/proofs/extractParameter/extractParameter_harness.c index 52a0b8ed0..bb7674c2f 100644 --- a/test/cbmc/proofs/extractParameter/extractParameter_harness.c +++ b/test/cbmc/proofs/extractParameter/extractParameter_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/freeFileContextMem/freeFileContextMem_harness.c b/test/cbmc/proofs/freeFileContextMem/freeFileContextMem_harness.c index ba9ab800f..9feb5ad11 100644 --- a/test/cbmc/proofs/freeFileContextMem/freeFileContextMem_harness.c +++ b/test/cbmc/proofs/freeFileContextMem/freeFileContextMem_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/getFileContextFromJob/getFileContextFromJob_harness.c b/test/cbmc/proofs/getFileContextFromJob/getFileContextFromJob_harness.c index bb9afb6a8..caa1b1bed 100644 --- a/test/cbmc/proofs/getFileContextFromJob/getFileContextFromJob_harness.c +++ b/test/cbmc/proofs/getFileContextFromJob/getFileContextFromJob_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/handleCustomJob/handleCustomJob_harness.c b/test/cbmc/proofs/handleCustomJob/handleCustomJob_harness.c index da96dba97..f4415a9df 100644 --- a/test/cbmc/proofs/handleCustomJob/handleCustomJob_harness.c +++ b/test/cbmc/proofs/handleCustomJob/handleCustomJob_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/handleJobParsingError/handleJobParsingError_harness.c b/test/cbmc/proofs/handleJobParsingError/handleJobParsingError_harness.c index a4277d92f..edbf619bc 100644 --- a/test/cbmc/proofs/handleJobParsingError/handleJobParsingError_harness.c +++ b/test/cbmc/proofs/handleJobParsingError/handleJobParsingError_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/handleSelfTestJobDoc/handleSelfTestJobDoc_harness.c b/test/cbmc/proofs/handleSelfTestJobDoc/handleSelfTestJobDoc_harness.c index 45380076a..e2c26e9cd 100644 --- a/test/cbmc/proofs/handleSelfTestJobDoc/handleSelfTestJobDoc_harness.c +++ b/test/cbmc/proofs/handleSelfTestJobDoc/handleSelfTestJobDoc_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/handleUnexpectedEvents/handleUnexpectedEvents_harness.c b/test/cbmc/proofs/handleUnexpectedEvents/handleUnexpectedEvents_harness.c index 20adbfc20..98e9733f6 100644 --- a/test/cbmc/proofs/handleUnexpectedEvents/handleUnexpectedEvents_harness.c +++ b/test/cbmc/proofs/handleUnexpectedEvents/handleUnexpectedEvents_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/inSelfTestHandler/inSelfTestHandler_harness.c b/test/cbmc/proofs/inSelfTestHandler/inSelfTestHandler_harness.c index 7be6deac2..811e5deef 100644 --- a/test/cbmc/proofs/inSelfTestHandler/inSelfTestHandler_harness.c +++ b/test/cbmc/proofs/inSelfTestHandler/inSelfTestHandler_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/ingestDataBlock/ingestDataBlock_harness.c b/test/cbmc/proofs/ingestDataBlock/ingestDataBlock_harness.c index 3adc0093e..eb0f5b51a 100644 --- a/test/cbmc/proofs/ingestDataBlock/ingestDataBlock_harness.c +++ b/test/cbmc/proofs/ingestDataBlock/ingestDataBlock_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/ingestDataBlockCleanup/ingestDataBlockCleanup_harness.c b/test/cbmc/proofs/ingestDataBlockCleanup/ingestDataBlockCleanup_harness.c index 92e635b8a..c15b72d5b 100644 --- a/test/cbmc/proofs/ingestDataBlockCleanup/ingestDataBlockCleanup_harness.c +++ b/test/cbmc/proofs/ingestDataBlockCleanup/ingestDataBlockCleanup_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/initDocModel/initDocModel_harness.c b/test/cbmc/proofs/initDocModel/initDocModel_harness.c index 32a5f3c4a..d9a881e68 100644 --- a/test/cbmc/proofs/initDocModel/initDocModel_harness.c +++ b/test/cbmc/proofs/initDocModel/initDocModel_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/initFileHandler/initFileHandler_harness.c b/test/cbmc/proofs/initFileHandler/initFileHandler_harness.c index 2c9cba639..c238d7efc 100644 --- a/test/cbmc/proofs/initFileHandler/initFileHandler_harness.c +++ b/test/cbmc/proofs/initFileHandler/initFileHandler_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/initFileTransfer_Http/initFileTransfer_Http_harness.c b/test/cbmc/proofs/initFileTransfer_Http/initFileTransfer_Http_harness.c index 6510d2f41..56a1cf953 100644 --- a/test/cbmc/proofs/initFileTransfer_Http/initFileTransfer_Http_harness.c +++ b/test/cbmc/proofs/initFileTransfer_Http/initFileTransfer_Http_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/initFileTransfer_Mqtt/initFileTransfer_Mqtt_harness.c b/test/cbmc/proofs/initFileTransfer_Mqtt/initFileTransfer_Mqtt_harness.c index 0fbd7ef31..b59f3ee6f 100644 --- a/test/cbmc/proofs/initFileTransfer_Mqtt/initFileTransfer_Mqtt_harness.c +++ b/test/cbmc/proofs/initFileTransfer_Mqtt/initFileTransfer_Mqtt_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/initializeAppBuffers/initializeAppBuffers_harness.c b/test/cbmc/proofs/initializeAppBuffers/initializeAppBuffers_harness.c index 067eff6b2..7d7438da7 100644 --- a/test/cbmc/proofs/initializeAppBuffers/initializeAppBuffers_harness.c +++ b/test/cbmc/proofs/initializeAppBuffers/initializeAppBuffers_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/initializeLocalBuffers/initializeLocalBuffers_harness.c b/test/cbmc/proofs/initializeLocalBuffers/initializeLocalBuffers_harness.c index 8cc1a9e4f..46e140c7d 100644 --- a/test/cbmc/proofs/initializeLocalBuffers/initializeLocalBuffers_harness.c +++ b/test/cbmc/proofs/initializeLocalBuffers/initializeLocalBuffers_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/jobNotificationHandler/jobNotificationHandler_harness.c b/test/cbmc/proofs/jobNotificationHandler/jobNotificationHandler_harness.c index 1336be470..44f5142df 100644 --- a/test/cbmc/proofs/jobNotificationHandler/jobNotificationHandler_harness.c +++ b/test/cbmc/proofs/jobNotificationHandler/jobNotificationHandler_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/otaClose/otaClose_harness.c b/test/cbmc/proofs/otaClose/otaClose_harness.c index 90e7b9af4..8f7b33637 100644 --- a/test/cbmc/proofs/otaClose/otaClose_harness.c +++ b/test/cbmc/proofs/otaClose/otaClose_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/otaTimerCallback/otaTimerCallback_harness.c b/test/cbmc/proofs/otaTimerCallback/otaTimerCallback_harness.c index 86061b589..f8ab2b867 100644 --- a/test/cbmc/proofs/otaTimerCallback/otaTimerCallback_harness.c +++ b/test/cbmc/proofs/otaTimerCallback/otaTimerCallback_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/parseJSONbyModel/parseJSONbyModel_harness.c b/test/cbmc/proofs/parseJSONbyModel/parseJSONbyModel_harness.c index 79c7ce97e..1d2b239cc 100644 --- a/test/cbmc/proofs/parseJSONbyModel/parseJSONbyModel_harness.c +++ b/test/cbmc/proofs/parseJSONbyModel/parseJSONbyModel_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/parseJobDoc/parseJobDoc_harness.c b/test/cbmc/proofs/parseJobDoc/parseJobDoc_harness.c index 5ba8e6f6a..445d913bb 100644 --- a/test/cbmc/proofs/parseJobDoc/parseJobDoc_harness.c +++ b/test/cbmc/proofs/parseJobDoc/parseJobDoc_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/platformInSelftest/platformInSelftest_harness.c b/test/cbmc/proofs/platformInSelftest/platformInSelftest_harness.c index 4d121b721..73c46f82b 100644 --- a/test/cbmc/proofs/platformInSelftest/platformInSelftest_harness.c +++ b/test/cbmc/proofs/platformInSelftest/platformInSelftest_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/preprocessBase64Index/preprocessBase64Index_harness.c b/test/cbmc/proofs/preprocessBase64Index/preprocessBase64Index_harness.c index b8cb7ca98..d98d6efad 100644 --- a/test/cbmc/proofs/preprocessBase64Index/preprocessBase64Index_harness.c +++ b/test/cbmc/proofs/preprocessBase64Index/preprocessBase64Index_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/processDataBlock/processDataBlock_harness.c b/test/cbmc/proofs/processDataBlock/processDataBlock_harness.c index 5b05bfc24..22754bec8 100644 --- a/test/cbmc/proofs/processDataBlock/processDataBlock_harness.c +++ b/test/cbmc/proofs/processDataBlock/processDataBlock_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/processDataHandler/processDataHandler_harness.c b/test/cbmc/proofs/processDataHandler/processDataHandler_harness.c index ef003df11..b19f46fed 100644 --- a/test/cbmc/proofs/processDataHandler/processDataHandler_harness.c +++ b/test/cbmc/proofs/processDataHandler/processDataHandler_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/processJobHandler/processJobHandler_harness.c b/test/cbmc/proofs/processJobHandler/processJobHandler_harness.c index e321c94e9..eedd5c57d 100644 --- a/test/cbmc/proofs/processJobHandler/processJobHandler_harness.c +++ b/test/cbmc/proofs/processJobHandler/processJobHandler_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/processNullFileContext/processNullFileContext_harness.c b/test/cbmc/proofs/processNullFileContext/processNullFileContext_harness.c index ad808e944..f047946c0 100644 --- a/test/cbmc/proofs/processNullFileContext/processNullFileContext_harness.c +++ b/test/cbmc/proofs/processNullFileContext/processNullFileContext_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/processValidFileContext/processValidFileContext_harness.c b/test/cbmc/proofs/processValidFileContext/processValidFileContext_harness.c index d3c5aacc2..6adddea03 100644 --- a/test/cbmc/proofs/processValidFileContext/processValidFileContext_harness.c +++ b/test/cbmc/proofs/processValidFileContext/processValidFileContext_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/prvBuildStatusMessageFinish/prvBuildStatusMessageFinish_harness.c b/test/cbmc/proofs/prvBuildStatusMessageFinish/prvBuildStatusMessageFinish_harness.c index 77cadc789..264437249 100644 --- a/test/cbmc/proofs/prvBuildStatusMessageFinish/prvBuildStatusMessageFinish_harness.c +++ b/test/cbmc/proofs/prvBuildStatusMessageFinish/prvBuildStatusMessageFinish_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/prvBuildStatusMessageSelfTest/prvBuildStatusMessageSelfTest_harness.c b/test/cbmc/proofs/prvBuildStatusMessageSelfTest/prvBuildStatusMessageSelfTest_harness.c index 909e965ad..039bbd9fe 100644 --- a/test/cbmc/proofs/prvBuildStatusMessageSelfTest/prvBuildStatusMessageSelfTest_harness.c +++ b/test/cbmc/proofs/prvBuildStatusMessageSelfTest/prvBuildStatusMessageSelfTest_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/publishStatusMessage/publishStatusMessage_harness.c b/test/cbmc/proofs/publishStatusMessage/publishStatusMessage_harness.c index 974dceca3..2f3ad00be 100644 --- a/test/cbmc/proofs/publishStatusMessage/publishStatusMessage_harness.c +++ b/test/cbmc/proofs/publishStatusMessage/publishStatusMessage_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/receiveAndProcessOtaEvent/receiveAndProcessOtaEvent_harness.c b/test/cbmc/proofs/receiveAndProcessOtaEvent/receiveAndProcessOtaEvent_harness.c index e337cb62b..cae5e5470 100644 --- a/test/cbmc/proofs/receiveAndProcessOtaEvent/receiveAndProcessOtaEvent_harness.c +++ b/test/cbmc/proofs/receiveAndProcessOtaEvent/receiveAndProcessOtaEvent_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/requestDataBlock_Http/requestDataBlock_Http_harness.c b/test/cbmc/proofs/requestDataBlock_Http/requestDataBlock_Http_harness.c index 52ab89883..0b3680128 100644 --- a/test/cbmc/proofs/requestDataBlock_Http/requestDataBlock_Http_harness.c +++ b/test/cbmc/proofs/requestDataBlock_Http/requestDataBlock_Http_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/requestDataHandler/requestDataHandler_harness.c b/test/cbmc/proofs/requestDataHandler/requestDataHandler_harness.c index 57bd69d31..c4e69526f 100644 --- a/test/cbmc/proofs/requestDataHandler/requestDataHandler_harness.c +++ b/test/cbmc/proofs/requestDataHandler/requestDataHandler_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/requestFileBlock_Mqtt/requestFileBlock_Mqtt_harness.c b/test/cbmc/proofs/requestFileBlock_Mqtt/requestFileBlock_Mqtt_harness.c index c711c943c..847c32d43 100644 --- a/test/cbmc/proofs/requestFileBlock_Mqtt/requestFileBlock_Mqtt_harness.c +++ b/test/cbmc/proofs/requestFileBlock_Mqtt/requestFileBlock_Mqtt_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/requestJobHandler/requestJobHandler_harness.c b/test/cbmc/proofs/requestJobHandler/requestJobHandler_harness.c index 52c73e7c9..ab8c284f4 100644 --- a/test/cbmc/proofs/requestJobHandler/requestJobHandler_harness.c +++ b/test/cbmc/proofs/requestJobHandler/requestJobHandler_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c b/test/cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c index f5223782e..a6a1fe28f 100644 --- a/test/cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c +++ b/test/cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/requestTimerCallback/requestTimerCallback_harness.c b/test/cbmc/proofs/requestTimerCallback/requestTimerCallback_harness.c index 9830dcf29..c35cc9bfd 100644 --- a/test/cbmc/proofs/requestTimerCallback/requestTimerCallback_harness.c +++ b/test/cbmc/proofs/requestTimerCallback/requestTimerCallback_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/resetEventQueue/resetEventQueue_harness.c b/test/cbmc/proofs/resetEventQueue/resetEventQueue_harness.c index 5c7cb46d8..611047ca6 100644 --- a/test/cbmc/proofs/resetEventQueue/resetEventQueue_harness.c +++ b/test/cbmc/proofs/resetEventQueue/resetEventQueue_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/resumeHandler/resumeHandler_harness.c b/test/cbmc/proofs/resumeHandler/resumeHandler_harness.c index 715d998e6..162b98b19 100644 --- a/test/cbmc/proofs/resumeHandler/resumeHandler_harness.c +++ b/test/cbmc/proofs/resumeHandler/resumeHandler_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/searchTransition/searchTransition_harness.c b/test/cbmc/proofs/searchTransition/searchTransition_harness.c index 906ddce6e..926e8595a 100644 --- a/test/cbmc/proofs/searchTransition/searchTransition_harness.c +++ b/test/cbmc/proofs/searchTransition/searchTransition_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/selfTestTimerCallback/selfTestTimerCallback_harness.c b/test/cbmc/proofs/selfTestTimerCallback/selfTestTimerCallback_harness.c index 53812f106..c1f6277c1 100644 --- a/test/cbmc/proofs/selfTestTimerCallback/selfTestTimerCallback_harness.c +++ b/test/cbmc/proofs/selfTestTimerCallback/selfTestTimerCallback_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/setControlInterface/setControlInterface_harness.c b/test/cbmc/proofs/setControlInterface/setControlInterface_harness.c index 17b85dbd8..184fa43e2 100644 --- a/test/cbmc/proofs/setControlInterface/setControlInterface_harness.c +++ b/test/cbmc/proofs/setControlInterface/setControlInterface_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/setDataInterface/setDataInterface_harness.c b/test/cbmc/proofs/setDataInterface/setDataInterface_harness.c index cd2730e9f..96fe5cafb 100644 --- a/test/cbmc/proofs/setDataInterface/setDataInterface_harness.c +++ b/test/cbmc/proofs/setDataInterface/setDataInterface_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/setImageStateWithReason/setImageStateWithReason_harness.c b/test/cbmc/proofs/setImageStateWithReason/setImageStateWithReason_harness.c index c8de179be..88aaaa282 100644 --- a/test/cbmc/proofs/setImageStateWithReason/setImageStateWithReason_harness.c +++ b/test/cbmc/proofs/setImageStateWithReason/setImageStateWithReason_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/shutdownHandler/shutdownHandler_harness.c b/test/cbmc/proofs/shutdownHandler/shutdownHandler_harness.c index b18d47199..b55d18a77 100644 --- a/test/cbmc/proofs/shutdownHandler/shutdownHandler_harness.c +++ b/test/cbmc/proofs/shutdownHandler/shutdownHandler_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/startHandler/startHandler_harness.c b/test/cbmc/proofs/startHandler/startHandler_harness.c index fb6d24280..e73aa11f6 100644 --- a/test/cbmc/proofs/startHandler/startHandler_harness.c +++ b/test/cbmc/proofs/startHandler/startHandler_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/stringBuilder/stringBuilder_harness.c b/test/cbmc/proofs/stringBuilder/stringBuilder_harness.c index e32d457c0..e3cb000b3 100644 --- a/test/cbmc/proofs/stringBuilder/stringBuilder_harness.c +++ b/test/cbmc/proofs/stringBuilder/stringBuilder_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/stringBuilderUInt32Decimal/stringBuilderUInt32Decimal_harness.c b/test/cbmc/proofs/stringBuilderUInt32Decimal/stringBuilderUInt32Decimal_harness.c index 5205e3f09..964a4181c 100644 --- a/test/cbmc/proofs/stringBuilderUInt32Decimal/stringBuilderUInt32Decimal_harness.c +++ b/test/cbmc/proofs/stringBuilderUInt32Decimal/stringBuilderUInt32Decimal_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/stringBuilderUInt32Hex/stringBuilderUInt32Hex_harness.c b/test/cbmc/proofs/stringBuilderUInt32Hex/stringBuilderUInt32Hex_harness.c index c351bf057..fabc8e0eb 100644 --- a/test/cbmc/proofs/stringBuilderUInt32Hex/stringBuilderUInt32Hex_harness.c +++ b/test/cbmc/proofs/stringBuilderUInt32Hex/stringBuilderUInt32Hex_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/subscribeToJobNotificationTopics/subscribeToJobNotificationTopics_harness.c b/test/cbmc/proofs/subscribeToJobNotificationTopics/subscribeToJobNotificationTopics_harness.c index 2f2d8eba1..6faadccce 100644 --- a/test/cbmc/proofs/subscribeToJobNotificationTopics/subscribeToJobNotificationTopics_harness.c +++ b/test/cbmc/proofs/subscribeToJobNotificationTopics/subscribeToJobNotificationTopics_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/suspendHandler/suspendHandler_harness.c b/test/cbmc/proofs/suspendHandler/suspendHandler_harness.c index f5715d331..0457d94c4 100644 --- a/test/cbmc/proofs/suspendHandler/suspendHandler_harness.c +++ b/test/cbmc/proofs/suspendHandler/suspendHandler_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/unsubscribeFromDataStream/unsubscribeFromDataStream_harness.c b/test/cbmc/proofs/unsubscribeFromDataStream/unsubscribeFromDataStream_harness.c index 2b462bb1e..de564d7e1 100644 --- a/test/cbmc/proofs/unsubscribeFromDataStream/unsubscribeFromDataStream_harness.c +++ b/test/cbmc/proofs/unsubscribeFromDataStream/unsubscribeFromDataStream_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/unsubscribeFromJobNotificationTopic/unsubscribeFromJobNotificationTopic_harness.c b/test/cbmc/proofs/unsubscribeFromJobNotificationTopic/unsubscribeFromJobNotificationTopic_harness.c index 069c0089c..d6288b745 100644 --- a/test/cbmc/proofs/unsubscribeFromJobNotificationTopic/unsubscribeFromJobNotificationTopic_harness.c +++ b/test/cbmc/proofs/unsubscribeFromJobNotificationTopic/unsubscribeFromJobNotificationTopic_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/updateBase64DecodingBuffer/updateBase64DecodingBuffer_harness.c b/test/cbmc/proofs/updateBase64DecodingBuffer/updateBase64DecodingBuffer_harness.c index 302a961da..df91791ba 100644 --- a/test/cbmc/proofs/updateBase64DecodingBuffer/updateBase64DecodingBuffer_harness.c +++ b/test/cbmc/proofs/updateBase64DecodingBuffer/updateBase64DecodingBuffer_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/updateJobStatusFromImageState/updateJobStatusFromImageState_harness.c b/test/cbmc/proofs/updateJobStatusFromImageState/updateJobStatusFromImageState_harness.c index aeb617709..86298b209 100644 --- a/test/cbmc/proofs/updateJobStatusFromImageState/updateJobStatusFromImageState_harness.c +++ b/test/cbmc/proofs/updateJobStatusFromImageState/updateJobStatusFromImageState_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/updateJobStatus_Mqtt/updateJobStatus_Mqtt_harness.c b/test/cbmc/proofs/updateJobStatus_Mqtt/updateJobStatus_Mqtt_harness.c index 381f9ac05..282018a7a 100644 --- a/test/cbmc/proofs/updateJobStatus_Mqtt/updateJobStatus_Mqtt_harness.c +++ b/test/cbmc/proofs/updateJobStatus_Mqtt/updateJobStatus_Mqtt_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/userAbortHandler/userAbortHandler_harness.c b/test/cbmc/proofs/userAbortHandler/userAbortHandler_harness.c index 92f7da192..ac1e0d85c 100644 --- a/test/cbmc/proofs/userAbortHandler/userAbortHandler_harness.c +++ b/test/cbmc/proofs/userAbortHandler/userAbortHandler_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/validateAndStartJob/validateAndStartJob_harness.c b/test/cbmc/proofs/validateAndStartJob/validateAndStartJob_harness.c index 64d7f192d..ce95e53ac 100644 --- a/test/cbmc/proofs/validateAndStartJob/validateAndStartJob_harness.c +++ b/test/cbmc/proofs/validateAndStartJob/validateAndStartJob_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/validateDataBlock/validateDataBlock_harness.c b/test/cbmc/proofs/validateDataBlock/validateDataBlock_harness.c index 5f53fe376..516fa14b2 100644 --- a/test/cbmc/proofs/validateDataBlock/validateDataBlock_harness.c +++ b/test/cbmc/proofs/validateDataBlock/validateDataBlock_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/validateJSON/validateJSON_harness.c b/test/cbmc/proofs/validateJSON/validateJSON_harness.c index 24f129ccc..36fc244dd 100644 --- a/test/cbmc/proofs/validateJSON/validateJSON_harness.c +++ b/test/cbmc/proofs/validateJSON/validateJSON_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/validateUpdateVersion/validateUpdateVersion_harness.c b/test/cbmc/proofs/validateUpdateVersion/validateUpdateVersion_harness.c index 7cbd6444f..3c70fd3f9 100644 --- a/test/cbmc/proofs/validateUpdateVersion/validateUpdateVersion_harness.c +++ b/test/cbmc/proofs/validateUpdateVersion/validateUpdateVersion_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/verifyActiveJobStatus/verifyActiveJobStatus_harness.c b/test/cbmc/proofs/verifyActiveJobStatus/verifyActiveJobStatus_harness.c index cdf16ff60..895add72c 100644 --- a/test/cbmc/proofs/verifyActiveJobStatus/verifyActiveJobStatus_harness.c +++ b/test/cbmc/proofs/verifyActiveJobStatus/verifyActiveJobStatus_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/proofs/verifyRequiredParamsExtracted/verifyRequiredParamsExtracted_harness.c b/test/cbmc/proofs/verifyRequiredParamsExtracted/verifyRequiredParamsExtracted_harness.c index 150dd3351..7d2bda392 100644 --- a/test/cbmc/proofs/verifyRequiredParamsExtracted/verifyRequiredParamsExtracted_harness.c +++ b/test/cbmc/proofs/verifyRequiredParamsExtracted/verifyRequiredParamsExtracted_harness.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/cbmc/source/stubs.c b/test/cbmc/source/stubs.c index d181f1fd1..979bfd4dc 100644 --- a/test/cbmc/source/stubs.c +++ b/test/cbmc/source/stubs.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/unit-test/ota_base64_utest.c b/test/unit-test/ota_base64_utest.c index 0251174e4..a65f774c8 100644 --- a/test/unit-test/ota_base64_utest.c +++ b/test/unit-test/ota_base64_utest.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/unit-test/ota_cbor_utest.c b/test/unit-test/ota_cbor_utest.c index 7c58d1acf..0dd6d572c 100644 --- a/test/unit-test/ota_cbor_utest.c +++ b/test/unit-test/ota_cbor_utest.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/unit-test/ota_config.h b/test/unit-test/ota_config.h index 68aab3106..d8d04bb4f 100644 --- a/test/unit-test/ota_config.h +++ b/test/unit-test/ota_config.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/unit-test/ota_os_posix_utest.c b/test/unit-test/ota_os_posix_utest.c index b4d6c3d56..0093fe596 100644 --- a/test/unit-test/ota_os_posix_utest.c +++ b/test/unit-test/ota_os_posix_utest.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/unit-test/ota_utest.c b/test/unit-test/ota_utest.c index 8daed73d7..a8b1e846e 100644 --- a/test/unit-test/ota_utest.c +++ b/test/unit-test/ota_utest.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/unit-test/utest_helpers.c b/test/unit-test/utest_helpers.c index 77c13aa67..c01a734df 100644 --- a/test/unit-test/utest_helpers.c +++ b/test/unit-test/utest_helpers.c @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/test/unit-test/utest_helpers.h b/test/unit-test/utest_helpers.h index 8f8fe7e3c..f43aeb82b 100644 --- a/test/unit-test/utest_helpers.h +++ b/test/unit-test/utest_helpers.h @@ -2,6 +2,8 @@ * AWS IoT Over-the-air Update v3.4.0 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * + * SPDX-License-Identifier: MIT + * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to diff --git a/tools/coverity/README.md b/tools/coverity/README.md index 3f3f1a6f7..b1426d95a 100644 --- a/tools/coverity/README.md +++ b/tools/coverity/README.md @@ -48,12 +48,12 @@ Go to the root directory of the library and run the following commands in termin ~~~ 6. Format the errors in HTML format so that it is more readable while removing the test and build directory from the report ~~~ - cov-format-errors --dir . --file "*/source" --exclude-files '(/build/|/test/)' --html-output html-out; + cov-format-errors --dir . --file "source" --exclude-files '(/build/|/test/|/dependency/|/portable/)' --html-output html-out; ~~~ 7. Format the errors in JSON format to perform a jq query to get a simplified list of any exceptions. NOTE: A blank output means there are no defects that aren't being suppressed by the config or inline comments. ~~~ - cov-format-errors --dir . --file "*/source" --exclude-files '(/build/|/test/)' --json-output-v2 defects.json; + cov-format-errors --dir . --file "source" --exclude-files '(/build/|/test/|/dependency/|/portable/)' --json-output-v2 defects.json; echo -e "\n-------------------------Non-Suppresed Deviations, if any, Listed Below-------------------------\n"; jq '.issues[] | .events[] | .eventTag ' defects.json | sort | uniq -c | sort -nr; echo -e "\n-------------------------Non-Suppresed Deviations, if any, Listed Above-------------------------\n"; @@ -67,8 +67,8 @@ For your convenience the commands above are below to be copy/pasted into a UNIX cov-build --emit-complementary-info --dir cov-out make coverity_analysis; cd cov-out/ cov-analyze --dir . --coding-standard-config ../../tools/coverity/misra.config --tu-pattern "file('.*/source/.*')"; - cov-format-errors --dir . --file "*/source" --exclude-files '(/build/|/test/)' --html-output html-out; - cov-format-errors --dir . --file "*/source" --exclude-files '(/build/|/test/)' --json-output-v2 defects.json; + cov-format-errors --dir . --file "source" --exclude-files '(/build/|/test/|/dependency/|/portable/)' --html-output html-out; + cov-format-errors --dir . --file "source" --exclude-files '(/build/|/test/|/dependency/|/portable/)' --json-output-v2 defects.json; echo -e "\n-------------------------Non-Suppresed Deviations, if any, Listed Below-------------------------\n"; jq '.issues[] | .events[] | .eventTag ' defects.json | sort | uniq -c | sort -nr; echo -e "\n-------------------------Non-Suppresed Deviations, if any, Listed Above-------------------------\n"; diff --git a/tools/coverity/misra.config b/tools/coverity/misra.config index e82cefd1d..da136542b 100644 --- a/tools/coverity/misra.config +++ b/tools/coverity/misra.config @@ -30,6 +30,10 @@ deviation: "Rule 3.1", reason: "Allow nested comments. Documentation blocks contain comments for example code." }, + { + deviation: "Rule 8.6", + reason: "There is only one occurance of this violation, the MISRA.md file contains more information about it. Inline suppression is not removing the violation, due to this we have added it to the global overide list." + }, { deviation: "Rule 8.7", reason: "API functions are not used by the library; however, they must be externally visible in order to be used by an application." @@ -38,6 +42,10 @@ deviation: "Rule 8.9", reason: "For ease, configuration parameters are defined at a global scope even when used only once." }, + { + deviation: "Rule 8.13", + reason: "There is only one occurance of this violation, the MISRA.md file contains more information about it. Inline suppression is not removing the violation, due to this we have added it to the global overide list." + }, { deviation: "Rule 11.5", reason: "Allow casts from void *. Contexts are passed as void * and must be cast to the correct data type before use." diff --git a/tools/lexicon.txt b/tools/lexicon.txt index e9fc37bd5..7df18d099 100644 --- a/tools/lexicon.txt +++ b/tools/lexicon.txt @@ -327,6 +327,7 @@ messagesize mfln min misra +mit mockoseventsendthenstop modelparams modelparamtype From 08513838f37199ca3eb6d4abec0d8948c5b88abf Mon Sep 17 00:00:00 2001 From: Archit Gupta <71798289+archigup@users.noreply.github.com> Date: Tue, 18 Oct 2022 14:31:01 -0700 Subject: [PATCH 03/25] Fix tinyCBOR submodule to match manifest (#458) Fixes #457 on main. --- source/dependency/3rdparty/tinycbor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/dependency/3rdparty/tinycbor b/source/dependency/3rdparty/tinycbor index 9924cfed3..11590e470 160000 --- a/source/dependency/3rdparty/tinycbor +++ b/source/dependency/3rdparty/tinycbor @@ -1 +1 @@ -Subproject commit 9924cfed3b95ad6de299ae675064430fdb886216 +Subproject commit 11590e470dfc1a144eb5665655c7ff6627b8e0f6 From 60f12386ceecc7dfe9929ad14a8f6f7724c9b272 Mon Sep 17 00:00:00 2001 From: Bence Balogh Date: Mon, 31 Oct 2022 06:30:01 +0100 Subject: [PATCH 04/25] Make appFirmwareVersion const configurable (#451) * Make appFirmwareVersion const configurable The const qualifier is not working with the OTA PSA API, because the version is stored in the secure element and it can be only retrived during runtime. Change-Id: I0b538021c6aeb018597a4dda287141a409a94bae * Change appFirmwareVersion const macro's name Added the OTA prefix to the USE_NONCONST_APPVERSION define. Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com> * Add default value for USE_NONCONST_APPVERSION The default value is '0', as when it's not justified, it's better to use the const qualifier. Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com> Co-authored-by: alfred gedeon <28123637+alfred2g@users.noreply.github.com> --- source/include/ota_appversion32.h | 6 +++++- source/include/ota_config_defaults.h | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/source/include/ota_appversion32.h b/source/include/ota_appversion32.h index 61ee83bbc..30b6f3283 100644 --- a/source/include/ota_appversion32.h +++ b/source/include/ota_appversion32.h @@ -75,7 +75,11 @@ typedef struct } u; /*!< @brief Version based on configuration in big endian or little endian. */ } AppVersion32_t; -extern const AppVersion32_t appFirmwareVersion; /*!< @brief Making the version number available globally through external linkage. */ +#if ( defined( OTA_USE_NONCONST_APPVERSION ) && ( OTA_USE_NONCONST_APPVERSION == 1 ) ) + extern AppVersion32_t appFirmwareVersion; /*!< @brief Making the version number available globally through external linkage, without const qualifier. */ +#else + extern const AppVersion32_t appFirmwareVersion; /*!< @brief Making the version number available globally through external linkage, with const qualifier. */ +#endif /* *INDENT-OFF* */ #ifdef __cplusplus diff --git a/source/include/ota_config_defaults.h b/source/include/ota_config_defaults.h index 6579c9bc0..6d7e23b93 100644 --- a/source/include/ota_config_defaults.h +++ b/source/include/ota_config_defaults.h @@ -304,6 +304,21 @@ #define configOTA_POLLING_EVENTS_TIMEOUT_MS ( 1000U ) #endif +/** + * @brief Whether to use const qualifier for the appFirmwareVersion variable. + * + * @note In some cases the appFirmwareVersion variable cannot be declared as const + * because the version is read out during runtime. + * + * Possible values:
+ * appFirmwareVersion is const - ( 0 )
+ * appFirmwareVersion is non-const - ( 1 )
+ * Default value: '0' + */ +#ifndef OTA_USE_NONCONST_APPVERSION + #define OTA_USE_NONCONST_APPVERSION ( 0U ) +#endif + /** * @brief Macro that is called in the OTA library for logging "Error" level * messages. From c3bd5840979cadfe1f9505e13e49cccb87333650 Mon Sep 17 00:00:00 2001 From: Patrick Cook Date: Thu, 27 Oct 2022 17:08:57 -0700 Subject: [PATCH 05/25] fix: reduce verbosity of OTA update logs A simple OTA update may produce hundreds of lines of logs just for marking the progress of the update stream. --- source/ota.c | 46 +++++++++++++++++++++++++++++++--------------- source/ota_mqtt.c | 6 +++--- 2 files changed, 34 insertions(+), 18 deletions(-) diff --git a/source/ota.c b/source/ota.c index 083587971..ea2978edd 100644 --- a/source/ota.c +++ b/source/ota.c @@ -2532,8 +2532,8 @@ static bool validateDataBlock( const OtaFileContext_t * pFileContext, ( ( blockIndex == lastBlock ) && ( blockSize == ( pFileContext->fileSize - ( lastBlock * OTA_FILE_BLOCK_SIZE ) ) ) ) ) { ret = true; - LogInfo( ( "Received valid file block: Block index=%u, Size=%u", - blockIndex, blockSize ) ); + LogDebug( ( "Received valid file block: Block index=%u, Size=%u", + blockIndex, blockSize ) ); } return ret; @@ -2766,10 +2766,6 @@ static IngestResult_t ingestDataBlockCleanup( OtaFileContext_t * pFileContext, eIngestResult = IngestResultBadFileHandle; } } - else - { - LogInfo( ( "Number of blocks remaining: %u", pFileContext->blocksRemaining ) ); - } return eIngestResult; } @@ -2815,6 +2811,19 @@ static IngestResult_t ingestDataBlock( OtaFileContext_t * pFileContext, eIngestResult = ingestDataBlockCleanup( pFileContext, pCloseResult ); } + if( eIngestResult == IngestResultAccepted_Continue ) + { + LogDebug( ( "Ingested received block %u", + uBlockIndex ) ); + + /* Print progress every 32 blocks received */ + if( ( pFileContext->blocksRemaining & 0x1Fu ) == 0u ) + { + LogInfo( ( "Number of blocks remaining: %u", + pFileContext->blocksRemaining ) ); + } + } + /* Free the payload if it's dynamically allocated by us. */ if( ( eIngestResult != IngestResultNullInput ) && ( otaAgent.fileContext.decodeMemMaxSize == 0u ) && @@ -2922,7 +2931,14 @@ static void executeHandler( uint32_t index, if( err == OtaErrNone ) { - LogDebug( ( "Executing handler for state transition: " ) ); + LogDebug( ( "Executing handler for state transition:" ) ); + + LogDebug( ( "Current State=[%s]" + ", Event=[%s]" + ", New state=[%s]", + pOtaAgentStateStrings[ otaAgent.state ], + pOtaEventStrings[ pEventMsg->eventId ], + pOtaAgentStateStrings[ otaTransitionTable[ index ].nextState ] ) ); /* * Update the current state in OTA agent context. @@ -2931,17 +2947,17 @@ static void executeHandler( uint32_t index, } else { - LogDebug( ( "Failed to execute state transition handler: " + LogError( ( "Failed to execute state transition handler: " "Handler returned error: OtaErr_t=%s", OTA_Err_strerror( err ) ) ); - } - LogInfo( ( "Current State=[%s]" - ", Event=[%s]" - ", New state=[%s]", - pOtaAgentStateStrings[ otaAgent.state ], - pOtaEventStrings[ pEventMsg->eventId ], - pOtaAgentStateStrings[ otaTransitionTable[ index ].nextState ] ) ); + LogError( ( "Current State=[%s]" + ", Event=[%s]" + ", New state=[%s]", + pOtaAgentStateStrings[ otaAgent.state ], + pOtaEventStrings[ pEventMsg->eventId ], + pOtaAgentStateStrings[ otaTransitionTable[ index ].nextState ] ) ); + } } static uint32_t searchTransition( const OtaEventMsg_t * pEventMsg ) diff --git a/source/ota_mqtt.c b/source/ota_mqtt.c index 8894003d8..004837469 100644 --- a/source/ota_mqtt.c +++ b/source/ota_mqtt.c @@ -1163,9 +1163,9 @@ OtaErr_t requestFileBlock_Mqtt( OtaAgentContext_t * pAgentCtx ) if( mqttStatus == OtaMqttSuccess ) { - LogInfo( ( "Published to MQTT topic to request the next block: " - "topic=%s", - pTopicBuffer ) ); + LogDebug( ( "Published to MQTT topic to request the next block: " + "topic=%s", + pTopicBuffer ) ); result = OtaErrNone; } else From 967882ed8e0ba6f81c9effc0d91d73ada337828a Mon Sep 17 00:00:00 2001 From: Kody Stribrny <89810515+kstribrnAmzn@users.noreply.github.com> Date: Fri, 16 Dec 2022 09:01:33 -0800 Subject: [PATCH 06/25] Update doxygen to 1.9.5, fix CI failures (#467) * Updates doxygen to 1.9.5. The doxyfile is automatically updated with the `doxygen -u` command. * Also updates Ubuntu to the latest LTS release (22.04) for doxygen and memory checks * Corrects OTA OS POSIX unit test types --- .github/workflows/ci.yml | 4 +- docs/doxygen/config.doxyfile | 277 ++++++++++++++++------------ source/ota_base64.c | 16 -- test/unit-test/ota_os_posix_utest.c | 40 ++-- 4 files changed, 184 insertions(+), 153 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7983917ee..32451fbfd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -73,7 +73,7 @@ jobs: branch-coverage-min: 100 doxygen: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Run doxygen build @@ -145,7 +145,7 @@ jobs: - name: Install Python3 uses: actions/setup-python@v2 with: - python-version: '3.7.10' + python-version: '3.11.0' - name: Measure sizes uses: FreeRTOS/CI-CD-Github-Actions/memory_statistics@main with: diff --git a/docs/doxygen/config.doxyfile b/docs/doxygen/config.doxyfile index dcc54fd0c..513b4d1ad 100644 --- a/docs/doxygen/config.doxyfile +++ b/docs/doxygen/config.doxyfile @@ -1,4 +1,4 @@ -# Doxyfile 1.9.2 +# Doxyfile 1.9.5 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -12,6 +12,16 @@ # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). +# +# Note: +# +# Use doxygen to compare the used configuration file with the template +# configuration file: +# doxygen -x [configFile] +# Use doxygen to compare the used configuration file with the template +# configuration file without replacing the environment variables or CMake type +# replacement variables: +# doxygen -x_noenv [configFile] #--------------------------------------------------------------------------- # Project related configuration options @@ -60,16 +70,28 @@ PROJECT_LOGO = OUTPUT_DIRECTORY = docs/doxygen/output/ -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096 +# sub-directories (in 2 levels) under the output directory of each output format +# and will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where # putting all generated files in the same directory would otherwise causes -# performance problems for the file system. +# performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to +# control the number of sub-directories. # The default value is: NO. CREATE_SUBDIRS = NO +# Controls the number of sub-directories that will be created when +# CREATE_SUBDIRS tag is set to YES. Level 0 represents 16 directories, and every +# level increment doubles the number of directories, resulting in 4096 +# directories at level 8 which is the default and also the maximum value. The +# sub-directories are organized in 2 levels, the first level always has a fixed +# numer of 16 directories. +# Minimum value: 0, maximum value: 8, default value: 8. +# This tag requires that the tag CREATE_SUBDIRS is set to YES. + +CREATE_SUBDIRS_LEVEL = 8 + # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode @@ -81,14 +103,14 @@ ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Bulgarian, +# Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English +# (United States), Esperanto, Farsi (Persian), Finnish, French, German, Greek, +# Hindi, Hungarian, Indonesian, Italian, Japanese, Japanese-en (Japanese with +# English messages), Korean, Korean-en (Korean with English messages), Latvian, +# Lithuanian, Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, +# Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, +# Swedish, Turkish, Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English @@ -479,7 +501,7 @@ TYPEDEF_HIDES_STRUCT = YES LOOKUP_CACHE_SIZE = 0 -# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use +# The NUM_PROC_THREADS specifies the number of threads doxygen is allowed to use # during processing. When set to 0 doxygen will based this on the number of # cores available in the system. You can set it explicitly to a value larger # than 0 to get more control over the balance between CPU load and processing @@ -604,14 +626,15 @@ INTERNAL_DOCS = NO # filesystem is case sensitive (i.e. it supports files in the same directory # whose names only differ in casing), the option must be set to YES to properly # deal with such files in case they appear in the input. For filesystems that -# are not case sensitive the option should be be set to NO to properly deal with +# are not case sensitive the option should be set to NO to properly deal with # output files written for symbols that only differ in casing, such as for two # classes, one named CLASS and the other named Class, and to also support # references to files without having to specify the exact matching casing. On # Windows (including Cygwin) and MacOS, users should typically set this option # to NO, whereas on Linux or other Unix flavors it should typically be set to # YES. -# The default value is: system dependent. +# Possible values are: SYSTEM, NO and YES. +# The default value is: SYSTEM. CASE_SENSE_NAMES = NO @@ -878,13 +901,27 @@ WARN_AS_ERROR = NO # and the warning text. Optionally the format may contain $version, which will # be replaced by the version of the file (if it could be obtained via # FILE_VERSION_FILTER) +# See also: WARN_LINE_FORMAT # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" +# In the $text part of the WARN_FORMAT command it is possible that a reference +# to a more specific place is given. To make it easier to jump to this place +# (outside of doxygen) the user can define a custom "cut" / "paste" string. +# Example: +# WARN_LINE_FORMAT = "'vi $file +$line'" +# See also: WARN_FORMAT +# The default value is: at line $line of file $file. + +WARN_LINE_FORMAT = "at line $line of file $file" + # The WARN_LOGFILE tag can be used to specify a file to which warning and error # messages should be written. If left blank the output is written to standard -# error (stderr). +# error (stderr). In case the file specified cannot be opened for writing the +# warning and error messages are written to standard error. When as file - is +# specified the warning and error messages are written to standard output +# (stdout). WARN_LOGFILE = @@ -907,10 +944,21 @@ INPUT = ./docs/doxygen \ # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: # https://www.gnu.org/software/libiconv/) for the list of possible encodings. +# See also: INPUT_FILE_ENCODING # The default value is: UTF-8. INPUT_ENCODING = UTF-8 +# This tag can be used to specify the character encoding of the source files +# that doxygen parses The INPUT_FILE_ENCODING tag can be used to specify +# character encoding on a per file pattern basis. Doxygen will compare the file +# name with each pattern and apply the encoding instead of the default +# INPUT_ENCODING) if there is a match. The character encodings are a list of the +# form: pattern=encoding (like *.php=ISO-8859-1). See cfg_input_encoding +# "INPUT_ENCODING" for further information on supported encodings. + +INPUT_FILE_ENCODING = + # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and # *.h) to filter out the source-files in the directories. @@ -968,7 +1016,7 @@ EXCLUDE_PATTERNS = # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test +# ANamespace::AClass, ANamespace::*Test # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* @@ -1017,6 +1065,11 @@ IMAGE_PATH = ./docs/doxygen/images/ # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. # +# Note that doxygen will use the data processed and written to standard output +# for further processing, therefore nothing else, like debug statements or used +# commands (so in case of a Windows batch file always use @echo OFF), should be +# written to standard output. +# # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. @@ -1058,6 +1111,15 @@ FILTER_SOURCE_PATTERNS = USE_MDFILE_AS_MAINPAGE = +# The Fortran standard specifies that for fixed formatted Fortran code all +# characters from position 72 are to be considered as comment. A common +# extension is to allow longer lines before the automatic comment starts. The +# setting FORTRAN_COMMENT_AFTER will also make it possible that longer lines can +# be processed before the automatic comment starts. +# Minimum value: 7, maximum value: 10000, default value: 72. + +FORTRAN_COMMENT_AFTER = 72 + #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- @@ -1144,46 +1206,6 @@ USE_HTAGS = NO VERBATIM_HEADERS = YES -# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the -# clang parser (see: -# http://clang.llvm.org/) for more accurate parsing at the cost of reduced -# performance. This can be particularly helpful with template rich C++ code for -# which doxygen's built-in parser lacks the necessary type information. -# Note: The availability of this option depends on whether or not doxygen was -# generated with the -Duse_libclang=ON option for CMake. -# The default value is: NO. - -CLANG_ASSISTED_PARSING = NO - -# If the CLANG_ASSISTED_PARSING tag is set to YES and the CLANG_ADD_INC_PATHS -# tag is set to YES then doxygen will add the directory of each input to the -# include path. -# The default value is: YES. -# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. - -CLANG_ADD_INC_PATHS = YES - -# If clang assisted parsing is enabled you can provide the compiler with command -# line options that you would normally use when invoking the compiler. Note that -# the include paths will already be set by doxygen for the files and directories -# specified with INPUT and INCLUDE_PATH. -# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. - -CLANG_OPTIONS = - -# If clang assisted parsing is enabled you can provide the clang parser with the -# path to the directory containing a file called compile_commands.json. This -# file is the compilation database (see: -# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the -# options used when the source files were built. This is equivalent to -# specifying the -p option to a clang tool, such as clang-check. These options -# will then be passed to the parser. Any options specified with CLANG_OPTIONS -# will be added as well. -# Note: The availability of this option depends on whether or not doxygen was -# generated with the -Duse_libclang=ON option for CMake. - -CLANG_DATABASE_PATH = - #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- @@ -1292,6 +1314,23 @@ HTML_EXTRA_STYLESHEET = ./docs/doxygen/style.css HTML_EXTRA_FILES = +# The HTML_COLORSTYLE tag can be used to specify if the generated HTML output +# should be rendered with a dark or light theme. Default setting AUTO_LIGHT +# enables light output unless the user preference is dark output. Other options +# are DARK to always use dark mode, LIGHT to always use light mode, AUTO_DARK to +# default to dark mode unless the user prefers light mode, and TOGGLE to let the +# user toggle between dark and light mode via a button. +# Possible values are: LIGHT Always generate light output., DARK Always generate +# dark output., AUTO_LIGHT Automatically set the mode according to the user +# preference, use light mode if no preference is set (the default)., AUTO_DARK +# Automatically set the mode according to the user preference, use dark mode if +# no preference is set. and TOGGLE Allow to user to switch between light and +# dark mode via a button.. +# The default value is: AUTO_LIGHT. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE = AUTO_LIGHT + # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to # this color. Hue is specified as an angle on a color-wheel, see @@ -1386,6 +1425,13 @@ GENERATE_DOCSET = NO DOCSET_FEEDNAME = "Doxygen generated docs" +# This tag determines the URL of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDURL = + # This tag specifies a string that should uniquely identify the documentation # set bundle. This should be a reverse domain-name style string, e.g. # com.mycompany.MyDocSet. Doxygen will append .docset to the name. @@ -1590,7 +1636,7 @@ GENERATE_TREEVIEW = YES # area (value NO) or if it should extend to the full height of the window (value # YES). Setting this to YES gives a layout similar to # https://docs.readthedocs.io with more room for contents, but less room for the -# project logo, title, and description. If either GENERATOR_TREEVIEW or +# project logo, title, and description. If either GENERATE_TREEVIEW or # DISABLE_INDEX is set to NO, this option has no effect. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1621,6 +1667,13 @@ TREEVIEW_WIDTH = 250 EXT_LINKS_IN_WINDOW = NO +# If the OBFUSCATE_EMAILS tag is set to YES, doxygen will obfuscate email +# addresses. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +OBFUSCATE_EMAILS = YES + # If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg # tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see # https://inkscape.org) to generate formulas as SVG images instead of PNGs for @@ -1641,17 +1694,6 @@ HTML_FORMULA_FORMAT = png FORMULA_FONTSIZE = 10 -# Use the FORMULA_TRANSPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - # The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands # to create new LaTeX commands to be used in formulas as building blocks. See # the section "Including formulas" for details. @@ -2242,7 +2284,8 @@ SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by the -# preprocessor. +# preprocessor. Note that the INCLUDE_PATH is not recursive, so the setting of +# RECURSIVE has no effect here. # This tag requires that the tag SEARCH_INCLUDES is set to YES. INCLUDE_PATH = @@ -2334,15 +2377,6 @@ EXTERNAL_PAGES = NO # Configuration options related to the dot tool #--------------------------------------------------------------------------- -# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram -# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to -# NO turns the diagrams off. Note that this option also works with HAVE_DOT -# disabled, but it is recommended to install and use dot, since it yields more -# powerful graphs. -# The default value is: YES. - -CLASS_DIAGRAMS = YES - # You can include diagrams made with dia in doxygen documentation. Doxygen will # then run dia to produce the diagram and insert it in the documentation. The # DIA_PATH tag allows you to specify the directory where the dia binary resides. @@ -2375,35 +2409,50 @@ HAVE_DOT = YES DOT_NUM_THREADS = 0 -# When you want a differently looking font in the dot files that doxygen -# generates you can specify the font name using DOT_FONTNAME. You need to make -# sure dot is able to find the font, which can be done by putting it in a -# standard location or by setting the DOTFONTPATH environment variable or by -# setting DOT_FONTPATH to the directory containing the font. -# The default value is: Helvetica. +# DOT_COMMON_ATTR is common attributes for nodes, edges and labels of +# subgraphs. When you want a differently looking font in the dot files that +# doxygen generates you can specify fontname, fontcolor and fontsize attributes. +# For details please see Node, +# Edge and Graph Attributes specification You need to make sure dot is able +# to find the font, which can be done by putting it in a standard location or by +# setting the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the +# directory containing the font. Default graphviz fontsize is 14. +# The default value is: fontname=Helvetica,fontsize=10. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTNAME = Helvetica +DOT_COMMON_ATTR = "fontname=Helvetica,fontsize=10" -# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of -# dot graphs. -# Minimum value: 4, maximum value: 24, default value: 10. +# DOT_EDGE_ATTR is concatenated with DOT_COMMON_ATTR. For elegant style you can +# add 'arrowhead=open, arrowtail=open, arrowsize=0.5'. Complete documentation about +# arrows shapes. +# The default value is: labelfontname=Helvetica,labelfontsize=10. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTSIZE = 10 +DOT_EDGE_ATTR = "labelfontname=Helvetica,labelfontsize=10" -# By default doxygen will tell dot to use the default font as specified with -# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set -# the path where dot can find it using this tag. +# DOT_NODE_ATTR is concatenated with DOT_COMMON_ATTR. For view without boxes +# around nodes set 'shape=plain' or 'shape=plaintext' Shapes specification +# The default value is: shape=box,height=0.2,width=0.4. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_NODE_ATTR = "shape=box,height=0.2,width=0.4" + +# You can set the path where dot can find font specified with fontname in +# DOT_COMMON_ATTR and others dot attributes. # This tag requires that the tag HAVE_DOT is set to YES. DOT_FONTPATH = -# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for -# each documented class showing the direct and indirect inheritance relations. -# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO. +# If the CLASS_GRAPH tag is set to YES (or GRAPH) then doxygen will generate a +# graph for each documented class showing the direct and indirect inheritance +# relations. In case HAVE_DOT is set as well dot will be used to draw the graph, +# otherwise the built-in generator will be used. If the CLASS_GRAPH tag is set +# to TEXT the direct and indirect inheritance relations will be shown as texts / +# links. +# Possible values are: NO, YES, TEXT and GRAPH. # The default value is: YES. -# This tag requires that the tag HAVE_DOT is set to YES. CLASS_GRAPH = YES @@ -2417,7 +2466,8 @@ CLASS_GRAPH = YES COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for -# groups, showing the direct groups dependencies. +# groups, showing the direct groups dependencies. See also the chapter Grouping +# in the manual. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2532,6 +2582,13 @@ GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES +# The DIR_GRAPH_MAX_DEPTH tag can be used to limit the maximum number of levels +# of child directories generated in directory dependency graphs by dot. +# Minimum value: 1, maximum value: 25, default value: 1. +# This tag requires that the tag DIRECTORY_GRAPH is set to YES. + +DIR_GRAPH_MAX_DEPTH = 1 + # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. For an explanation of the image formats see the section # output formats in the documentation of the dot tool (Graphviz (see: @@ -2585,10 +2642,10 @@ MSCFILE_DIRS = DIAFILE_DIRS = # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the -# path where java can find the plantuml.jar file. If left blank, it is assumed -# PlantUML is not used or called during a preprocessing step. Doxygen will -# generate a warning when it encounters a \startuml command in this case and -# will not generate output for the diagram. +# path where java can find the plantuml.jar file or to the filename of jar file +# to be used. If left blank, it is assumed PlantUML is not used or called during +# a preprocessing step. Doxygen will generate a warning when it encounters a +# \startuml command in this case and will not generate output for the diagram. PLANTUML_JAR_PATH = @@ -2626,18 +2683,6 @@ DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 0 -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not seem -# to support this out of the box. -# -# Warning: Depending on the platform used, enabling this option may lead to -# badly anti-aliased labels on the edges of a graph (i.e. they become hard to -# read). -# The default value is: NO. -# This tag requires that the tag HAVE_DOT is set to YES. - -DOT_TRANSPARENT = NO - # Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) support @@ -2650,6 +2695,8 @@ DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page # explaining the meaning of the various boxes and arrows in the dot generated # graphs. +# Note: This tag requires that UML_LOOK isn't set, i.e. the doxygen internal +# graphical representation for inheritance and collaboration diagrams is used. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. diff --git a/source/ota_base64.c b/source/ota_base64.c index 98f088174..b5e38bef1 100644 --- a/source/ota_base64.c +++ b/source/ota_base64.c @@ -403,22 +403,6 @@ static Base64Status_t decodeBase64IndexBuffer( uint32_t * pBase64IndexBuffer, return returnVal; } -/** - * @brief Decode Base64 encoded data. - * - * @param[out] pDest Pointer to a buffer for storing the decoded result. - * @param[in] destLen Length of the pDest buffer. - * @param[out] pResultLen Pointer to the length of the decoded result. - * @param[in] pEncodedData Pointer to a buffer containing the Base64 encoded - * data that is intended to be decoded. - * @param[in] encodedLen Length of the pEncodedData buffer. - * - * @return One of the following: - * - #Base64Success if the Base64 encoded data was valid - * and successfully decoded. - * - An error code defined in ota_base64_private.h if the - * encoded data or input parameters are invalid. - */ Base64Status_t base64Decode( uint8_t * pDest, const size_t destLen, size_t * pResultLen, diff --git a/test/unit-test/ota_os_posix_utest.c b/test/unit-test/ota_os_posix_utest.c index 0093fe596..66caec044 100644 --- a/test/unit-test/ota_os_posix_utest.c +++ b/test/unit-test/ota_os_posix_utest.c @@ -80,20 +80,20 @@ void test_OTA_posix_SendAndRecvEvent( void ) { OtaEventMsg_t otaEventToSend = { 0 }; OtaEventMsg_t otaEventToRecv = { 0 }; - OtaErr_t result = OtaErrUninitialized; + OtaOsStatus_t result = OtaOsSuccess; otaEventToSend.eventId = OtaAgentEventStart; result = event.init( event.pEventContext ); - TEST_ASSERT_EQUAL( OtaErrNone, result ); + TEST_ASSERT_EQUAL( OtaOsSuccess, result ); result = event.send( event.pEventContext, &otaEventToSend, 0 ); - TEST_ASSERT_EQUAL( OtaErrNone, result ); + TEST_ASSERT_EQUAL( OtaOsSuccess, result ); result = event.recv( event.pEventContext, &otaEventToRecv, 0 ); - TEST_ASSERT_EQUAL( OtaErrNone, result ); + TEST_ASSERT_EQUAL( OtaOsSuccess, result ); TEST_ASSERT_EQUAL( otaEventToSend.eventId, otaEventToRecv.eventId ); result = event.deinit( event.pEventContext ); - TEST_ASSERT_EQUAL( OtaErrNone, result ); + TEST_ASSERT_EQUAL( OtaOsSuccess, result ); } /** @@ -101,13 +101,13 @@ void test_OTA_posix_SendAndRecvEvent( void ) */ void test_OTA_posix_InvalidEventQueue( void ) { - OtaErr_t result = OtaErrUninitialized; + OtaOsStatus_t result = OtaOsSuccess; result = event.init( event.pEventContext ); - TEST_ASSERT_EQUAL( OtaErrNone, result ); + TEST_ASSERT_EQUAL( OtaOsSuccess, result ); result = event.deinit( event.pEventContext ); - TEST_ASSERT_EQUAL( OtaErrNone, result ); + TEST_ASSERT_EQUAL( OtaOsSuccess, result ); /* Try to deinitialize a non-existing queue. */ result = event.deinit( event.pEventContext ); @@ -116,11 +116,11 @@ void test_OTA_posix_InvalidEventQueue( void ) void timerCreateAndStop( OtaTimerId_t timer_id ) { - OtaErr_t result = OtaErrUninitialized; + OtaOsStatus_t result = OtaOsSuccess; int wait = 2 * OTA_DEFAULT_TIMEOUT; /* Wait for 2 times of the timeout specified. */ result = timer.start( timer_id, TIMER_NAME, OTA_DEFAULT_TIMEOUT, timerCallback ); - TEST_ASSERT_EQUAL( OtaErrNone, result ); + TEST_ASSERT_EQUAL( OtaOsSuccess, result ); /* Wait for the timer callback to be invoked. */ while( timerCallbackInovked == false && wait > 0 ) @@ -133,10 +133,10 @@ void timerCreateAndStop( OtaTimerId_t timer_id ) TEST_ASSERT_EQUAL( true, timerCallbackInovked ); result = timer.stop( timer_id ); - TEST_ASSERT_EQUAL( OtaErrNone, result ); + TEST_ASSERT_EQUAL( OtaOsSuccess, result ); result = timer.delete( timer_id ); - TEST_ASSERT_EQUAL( OtaErrNone, result ); + TEST_ASSERT_EQUAL( OtaOsSuccess, result ); } /** @@ -160,25 +160,25 @@ void test_OTA_posix_SelfTestTimerCreateAndStop( void ) */ void test_OTA_posix_InvalidTimerOperations( void ) { - OtaErr_t result = OtaErrUninitialized; + OtaOsStatus_t result = OtaOsSuccess; OtaTimerId_t timer_id = OtaRequestTimer; result = timer.start( timer_id, TIMER_NAME, OTA_DEFAULT_TIMEOUT, NULL ); - TEST_ASSERT_EQUAL( OtaErrNone, result ); + TEST_ASSERT_EQUAL( OtaOsSuccess, result ); /* Set the timeout to 0 and stop the timer*/ result = timer.start( timer_id, TIMER_NAME, 0, NULL ); - TEST_ASSERT_EQUAL( OtaErrNone, result ); + TEST_ASSERT_EQUAL( OtaOsSuccess, result ); result = timer.stop( timer_id ); - TEST_ASSERT_EQUAL( OtaErrNone, result ); + TEST_ASSERT_EQUAL( OtaOsSuccess, result ); result = timer.delete( timer_id ); - TEST_ASSERT_EQUAL( OtaErrNone, result ); + TEST_ASSERT_EQUAL( OtaOsSuccess, result ); /* Delete a timer that has been deleted. */ result = timer.delete( timer_id ); - TEST_ASSERT_NOT_EQUAL( OtaErrNone, result ); + TEST_ASSERT_NOT_EQUAL( OtaOsSuccess, result ); } /** @@ -204,7 +204,7 @@ void test_OTA_posix_MemoryAllocAndFree( void ) void test_OTA_posix_RecvEventTimeout( void ) { OtaEventMsg_t otaEventToRecv = { 0 }; - OtaErr_t result = OtaErrUninitialized; + OtaOsStatus_t result = OtaOsSuccess; time_t recvTimeoutMs = 3000; struct timespec tsStartTime = { 0 }; struct timespec tsEndTime = { 0 }; @@ -234,5 +234,5 @@ void test_OTA_posix_RecvEventTimeout( void ) TEST_ASSERT_GREATER_OR_EQUAL( ( recvTimeoutMs / 1000 ) - 1, timeDiffSec ); result = event.deinit( event.pEventContext ); - TEST_ASSERT_EQUAL( OtaErrNone, result ); + TEST_ASSERT_EQUAL( OtaOsSuccess, result ); } From e77082eb4d0f0bf05c9a2a9249302d11e0871ea5 Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Fri, 16 Dec 2022 18:29:29 +0100 Subject: [PATCH 07/25] CBMC proofs: fix return type of requestDataHandler declaration (#466) CBMC reported a linking failure as the return types did not match. --- .../cbmc/proofs/requestDataHandler/requestDataHandler_harness.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/cbmc/proofs/requestDataHandler/requestDataHandler_harness.c b/test/cbmc/proofs/requestDataHandler/requestDataHandler_harness.c index c4e69526f..f1a61303b 100644 --- a/test/cbmc/proofs/requestDataHandler/requestDataHandler_harness.c +++ b/test/cbmc/proofs/requestDataHandler/requestDataHandler_harness.c @@ -34,7 +34,7 @@ extern OtaAgentContext_t otaAgent; extern OtaDataInterface_t otaDataInterface; -extern void requestDataHandler( const OtaEventData_t * pEventData ); +extern OtaErr_t requestDataHandler( const OtaEventData_t * pEventData ); void requestDataHandler_harness() { From ac6920e005ff3e9ddab06e89f4a112787572764e Mon Sep 17 00:00:00 2001 From: "Felipe R. Monteiro" Date: Tue, 20 Dec 2022 00:32:57 -0500 Subject: [PATCH 08/25] Fix type issue on resumeHandler proof (#469) --- test/cbmc/proofs/resumeHandler/resumeHandler_harness.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/cbmc/proofs/resumeHandler/resumeHandler_harness.c b/test/cbmc/proofs/resumeHandler/resumeHandler_harness.c index 162b98b19..fbc1d54fa 100644 --- a/test/cbmc/proofs/resumeHandler/resumeHandler_harness.c +++ b/test/cbmc/proofs/resumeHandler/resumeHandler_harness.c @@ -30,7 +30,7 @@ #include "ota.h" /* Mangled name definition of the static function. */ -void __CPROVER_file_local_ota_c_resumeHandler( const OtaEventData_t * pEventData ); +OtaErr_t __CPROVER_file_local_ota_c_resumeHandler( const OtaEventData_t * pEventData ); void resumeHandler_harness() { From e42ac54b0fb5128eeba35923da27258b917160fe Mon Sep 17 00:00:00 2001 From: Kody Stribrny <89810515+kstribrnAmzn@users.noreply.github.com> Date: Tue, 3 Jan 2023 12:24:47 -0800 Subject: [PATCH 09/25] Upgrade doxygen to 1.9.6 (#471) Doxygen 1.9.5 can report false positives around function parameters. 1.9.6 does not have this bug. --- docs/doxygen/config.doxyfile | 49 ++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/docs/doxygen/config.doxyfile b/docs/doxygen/config.doxyfile index 513b4d1ad..4e5ffbeb0 100644 --- a/docs/doxygen/config.doxyfile +++ b/docs/doxygen/config.doxyfile @@ -1,4 +1,4 @@ -# Doxyfile 1.9.5 +# Doxyfile 1.9.6 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -86,7 +86,7 @@ CREATE_SUBDIRS = NO # level increment doubles the number of directories, resulting in 4096 # directories at level 8 which is the default and also the maximum value. The # sub-directories are organized in 2 levels, the first level always has a fixed -# numer of 16 directories. +# number of 16 directories. # Minimum value: 0, maximum value: 8, default value: 8. # This tag requires that the tag CREATE_SUBDIRS is set to YES. @@ -595,7 +595,8 @@ HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. +# will also hide undocumented C++ concepts if enabled. This option has no effect +# if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO @@ -886,6 +887,14 @@ WARN_IF_INCOMPLETE_DOC = YES WARN_NO_PARAMDOC = NO +# If WARN_IF_UNDOC_ENUM_VAL option is set to YES, doxygen will warn about +# undocumented enumeration values. If set to NO, doxygen will accept +# undocumented enumeration values. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: NO. + +WARN_IF_UNDOC_ENUM_VAL = NO + # If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when # a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS # then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but @@ -1217,10 +1226,11 @@ VERBATIM_HEADERS = YES ALPHABETICAL_INDEX = YES -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. +# The IGNORE_PREFIX tag can be used to specify a prefix (or a list of prefixes) +# that should be ignored while generating the index headers. The IGNORE_PREFIX +# tag works for classes, function and member names. The entity will be placed in +# the alphabetical list under the first letter of the entity name that remains +# after removing the prefix. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = @@ -1299,7 +1309,12 @@ HTML_STYLESHEET = # Doxygen will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. +# list). +# Note: Since the styling of scrollbars can currently not be overruled in +# Webkit/Chromium, the styling will be left out of the default doxygen.css if +# one or more extra stylesheets have been specified. So if scrollbar +# customization is desired it has to be added explicitly. For an example see the +# documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = ./docs/doxygen/style.css @@ -1315,17 +1330,13 @@ HTML_EXTRA_STYLESHEET = ./docs/doxygen/style.css HTML_EXTRA_FILES = # The HTML_COLORSTYLE tag can be used to specify if the generated HTML output -# should be rendered with a dark or light theme. Default setting AUTO_LIGHT -# enables light output unless the user preference is dark output. Other options -# are DARK to always use dark mode, LIGHT to always use light mode, AUTO_DARK to -# default to dark mode unless the user prefers light mode, and TOGGLE to let the -# user toggle between dark and light mode via a button. -# Possible values are: LIGHT Always generate light output., DARK Always generate -# dark output., AUTO_LIGHT Automatically set the mode according to the user -# preference, use light mode if no preference is set (the default)., AUTO_DARK -# Automatically set the mode according to the user preference, use dark mode if -# no preference is set. and TOGGLE Allow to user to switch between light and -# dark mode via a button.. +# should be rendered with a dark or light theme. +# Possible values are: LIGHT always generate light mode output, DARK always +# generate dark mode output, AUTO_LIGHT automatically set the mode according to +# the user preference, use light mode if no preference is set (the default), +# AUTO_DARK automatically set the mode according to the user preference, use +# dark mode if no preference is set and TOGGLE allow to user to switch between +# light and dark mode via a button. # The default value is: AUTO_LIGHT. # This tag requires that the tag GENERATE_HTML is set to YES. From 45342aa98b5c11a54d1b83ba3574d86f135b483e Mon Sep 17 00:00:00 2001 From: Paul Bartell Date: Fri, 10 Feb 2023 11:55:28 -0800 Subject: [PATCH 10/25] Remove \r\n from logging statements. (#470) --- source/ota.c | 6 +++--- source/portable/os/ota_os_freertos.c | 8 ++++---- source/portable/os/ota_os_posix.c | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/source/ota.c b/source/ota.c index ea2978edd..f4527cd3b 100644 --- a/source/ota.c +++ b/source/ota.c @@ -3234,7 +3234,7 @@ static void resetEventQueue( void ) while( otaAgent.pOtaInterface->os.event.recv( NULL, &eventMsg, 0 ) == OtaOsSuccess ) { - LogWarn( ( "Event(%d) is dropped.\r\n", eventMsg.eventId ) ); + LogWarn( ( "Event(%d) is dropped.", eventMsg.eventId ) ); /* Call handleUnexpectedEvents to notify user to release resources if necessary. */ handleUnexpectedEvents( &eventMsg ); @@ -3312,7 +3312,7 @@ OtaErr_t OTA_Init( const OtaAppBuffer_t * pOtaBuffer, if( pThingName == NULL ) { - LogError( ( "Error: Thing name is NULL.\r\n" ) ); + LogError( ( "Error: Thing name is NULL." ) ); } else { @@ -3329,7 +3329,7 @@ OtaErr_t OTA_Init( const OtaAppBuffer_t * pOtaBuffer, } else { - LogError( ( "Error: Thing name is too long.\r\n" ) ); + LogError( ( "Error: Thing name is too long." ) ); } } diff --git a/source/portable/os/ota_os_freertos.c b/source/portable/os/ota_os_freertos.c index baf902bb3..30b648f7d 100644 --- a/source/portable/os/ota_os_freertos.c +++ b/source/portable/os/ota_os_freertos.c @@ -176,7 +176,7 @@ static void selfTestTimerCallback( TimerHandle_t T ) { ( void ) T; - LogDebug( ( "Self-test expired within %ums\r\n", + LogDebug( ( "Self-test expired within %ums", otaconfigSELF_TEST_RESPONSE_WAIT_MS ) ); if( otaTimerCallbackPtr != NULL ) @@ -185,7 +185,7 @@ static void selfTestTimerCallback( TimerHandle_t T ) } else { - LogWarn( ( "Self-test timer event unhandled.\r\n" ) ); + LogWarn( ( "Self-test timer event unhandled." ) ); } } @@ -193,7 +193,7 @@ static void requestTimerCallback( TimerHandle_t T ) { ( void ) T; - LogDebug( ( "Request timer expired in %ums \r\n", + LogDebug( ( "Request timer expired in %ums", otaconfigFILE_REQUEST_WAIT_MS ) ); if( otaTimerCallbackPtr != NULL ) @@ -202,7 +202,7 @@ static void requestTimerCallback( TimerHandle_t T ) } else { - LogWarn( ( "Request timer event unhandled.\r\n" ) ); + LogWarn( ( "Request timer event unhandled." ) ); } } diff --git a/source/portable/os/ota_os_posix.c b/source/portable/os/ota_os_posix.c index 53680c3af..8af0728f1 100644 --- a/source/portable/os/ota_os_posix.c +++ b/source/portable/os/ota_os_posix.c @@ -285,7 +285,7 @@ static void selfTestTimerCallback( union sigval arg ) { ( void ) arg; - LogDebug( ( "Self-test expired within %ums\r\n", + LogDebug( ( "Self-test expired within %ums", otaconfigSELF_TEST_RESPONSE_WAIT_MS ) ); if( otaTimerCallbackPtr != NULL ) @@ -294,7 +294,7 @@ static void selfTestTimerCallback( union sigval arg ) } else { - LogWarn( ( "Self-test timer event unhandled.\r\n" ) ); + LogWarn( ( "Self-test timer event unhandled." ) ); } } @@ -302,7 +302,7 @@ static void requestTimerCallback( union sigval arg ) { ( void ) arg; - LogDebug( ( "Request timer expired in %ums \r\n", + LogDebug( ( "Request timer expired in %ums", otaconfigFILE_REQUEST_WAIT_MS ) ); if( otaTimerCallbackPtr != NULL ) @@ -311,7 +311,7 @@ static void requestTimerCallback( union sigval arg ) } else { - LogWarn( ( "Request timer event unhandled.\r\n" ) ); + LogWarn( ( "Request timer event unhandled." ) ); } } From e43672a0881d6aad65df3a61ece5a4e019c3559f Mon Sep 17 00:00:00 2001 From: Kody Stribrny <89810515+kstribrnAmzn@users.noreply.github.com> Date: Wed, 15 Feb 2023 14:31:47 -0800 Subject: [PATCH 11/25] Update ThingName to a maximum of 128 characters (#468) * Update max ThingName size to 128 The AWS IoT Core quota says that thingnames can be up to 128 characters long. This did not match out existing implementation which limited the ThingName to 64 characters. The ThingName may be truncated when added to the ClientToken. --------- Co-authored-by: Cobus van Eeden <35851496+cobusve@users.noreply.github.com> --- docs/doxygen/include/size_table.md | 10 +-- source/include/ota_config_defaults.h | 10 ++- source/ota_mqtt.c | 77 ++++++++++--------- test/cbmc/proofs/OTA_Init/Makefile | 2 +- test/cbmc/proofs/requestJob_Mqtt/Makefile | 9 +++ .../requestJob_Mqtt/requestJob_Mqtt_harness.c | 7 ++ test/cbmc/stubs/strnlen.c | 41 ++++++++++ test/unit-test/ota_utest.c | 66 +++++++++++++++- tools/lexicon.txt | 4 + 9 files changed, 178 insertions(+), 48 deletions(-) create mode 100644 test/cbmc/stubs/strnlen.c diff --git a/docs/doxygen/include/size_table.md b/docs/doxygen/include/size_table.md index 5b2f1594f..17ab7e603 100644 --- a/docs/doxygen/include/size_table.md +++ b/docs/doxygen/include/size_table.md @@ -9,8 +9,8 @@ ota.c -
8.3K
-
7.5K
+
8.5K
+
7.6K
ota_interface.c @@ -25,7 +25,7 @@ ota_mqtt.c
2.4K
-
2.2K
+
2.3K
ota_cbor.c @@ -39,7 +39,7 @@ Total estimates -
12.5K
-
11.3K
+
12.7K
+
11.5K
diff --git a/source/include/ota_config_defaults.h b/source/include/ota_config_defaults.h index 6d7e23b93..2b833af3b 100644 --- a/source/include/ota_config_defaults.h +++ b/source/include/ota_config_defaults.h @@ -133,11 +133,15 @@ * agent uses this size to allocate static storage for the Thing name used in * all OTA base topics. Namely $aws/things/thingName * - * Possible values: Any unsigned 32 integer.
- * Default value: '64' + * AWS IoT Core limits the ThingName length to 128 characters maximum. For more, + * see the AWS IoT Core Quotas here - + * https://console.aws.amazon.com/servicequotas/home/services/iotcore/quotas/L-83BC2FA9 + * + * Possible values: Any unsigned 32 integer - though practical limit is 128
+ * Default value: '128' */ #ifndef otaconfigMAX_THINGNAME_LEN - #define otaconfigMAX_THINGNAME_LEN 64U + #define otaconfigMAX_THINGNAME_LEN 128U #endif /** diff --git a/source/ota_mqtt.c b/source/ota_mqtt.c index 004837469..2c7276113 100644 --- a/source/ota_mqtt.c +++ b/source/ota_mqtt.c @@ -45,24 +45,27 @@ #include "ota_appversion32.h" /* Stream GET message constants. */ -#define OTA_CLIENT_TOKEN "rdy" /*!< Arbitrary client token sent in the stream "GET" message. */ +#define OTA_CLIENT_TOKEN "rdy" /*!< Arbitrary client token sent in the stream "GET" message. */ + +/* Maximum length of ThingName appended onto the ClientToken*/ +#define OTA_CLIENT_TOKEN_MAX_THINGNAME_LEN 53U /*!< Max ThingName length = Max client token length (64) - Max request count length (10) - 1 (colon separator) */ /* Agent to Job Service status message constants. */ -#define OTA_STATUS_MSG_MAX_SIZE 128U /*!< Max length of a job status message to the service. */ +#define OTA_STATUS_MSG_MAX_SIZE 128U /*!< Max length of a job status message to the service. */ /** * @brief Topic strings used by the OTA process. * * These first few are topic extensions to the dynamic base topic that includes the Thing name. */ -#define MQTT_API_THINGS "$aws/things/" /*!< Topic prefix for thing APIs. */ -#define MQTT_API_JOBS_NEXT_GET "/jobs/$next/get" /*!< Topic suffix for job API. */ -#define MQTT_API_JOBS_NOTIFY_NEXT "/jobs/notify-next" /*!< Topic suffix for job API. */ -#define MQTT_API_JOBS "/jobs/" /*!< Job API identifier. */ -#define MQTT_API_UPDATE "/update" /*!< Job API identifier. */ -#define MQTT_API_STREAMS "/streams/" /*!< Stream API identifier. */ -#define MQTT_API_DATA_CBOR "/data/cbor" /*!< Stream API suffix. */ -#define MQTT_API_GET_CBOR "/get/cbor" /*!< Stream API suffix. */ +#define MQTT_API_THINGS "$aws/things/" /*!< Topic prefix for thing APIs. */ +#define MQTT_API_JOBS_NEXT_GET "/jobs/$next/get" /*!< Topic suffix for job API. */ +#define MQTT_API_JOBS_NOTIFY_NEXT "/jobs/notify-next" /*!< Topic suffix for job API. */ +#define MQTT_API_JOBS "/jobs/" /*!< Job API identifier. */ +#define MQTT_API_UPDATE "/update" /*!< Job API identifier. */ +#define MQTT_API_STREAMS "/streams/" /*!< Stream API identifier. */ +#define MQTT_API_DATA_CBOR "/data/cbor" /*!< Stream API suffix. */ +#define MQTT_API_GET_CBOR "/get/cbor" /*!< Stream API suffix. */ /* NOTE: The format specifiers in this string are placeholders only; the lengths of these * strings are used to calculate buffer sizes. @@ -129,13 +132,13 @@ static const char asciiDigits[] = /* Pre-calculate max buffer size for mqtt topics and messages. We make sure the buffer size is large * enough to hold a dynamically constructed topic and message string. */ -#define TOPIC_PLUS_THINGNAME_LEN( topic ) ( CONST_STRLEN( topic ) + otaconfigMAX_THINGNAME_LEN + NULL_CHAR_LEN ) /*!< Calculate max buffer size based on topic template and thing name length. */ -#define TOPIC_GET_NEXT_BUFFER_SIZE ( TOPIC_PLUS_THINGNAME_LEN( pOtaJobsGetNextTopicTemplate ) ) /*!< Max buffer size for `jobs/$next/get` topic. */ -#define TOPIC_NOTIFY_NEXT_BUFFER_SIZE ( TOPIC_PLUS_THINGNAME_LEN( pOtaJobsNotifyNextTopicTemplate ) ) /*!< Max buffer size for `jobs/notify-next` topic. */ -#define TOPIC_JOB_STATUS_BUFFER_SIZE ( TOPIC_PLUS_THINGNAME_LEN( pOtaJobStatusTopicTemplate ) + JOB_NAME_MAX_LEN ) /*!< Max buffer size for `jobs//update` topic. */ -#define TOPIC_STREAM_DATA_BUFFER_SIZE ( TOPIC_PLUS_THINGNAME_LEN( pOtaStreamDataTopicTemplate ) + STREAM_NAME_MAX_LEN ) /*!< Max buffer size for `streams//data/cbor` topic. */ -#define TOPIC_GET_STREAM_BUFFER_SIZE ( TOPIC_PLUS_THINGNAME_LEN( pOtaGetStreamTopicTemplate ) + STREAM_NAME_MAX_LEN ) /*!< Max buffer size for `streams//get/cbor` topic. */ -#define MSG_GET_NEXT_BUFFER_SIZE ( TOPIC_PLUS_THINGNAME_LEN( pOtaGetNextJobMsgTemplate ) + U32_MAX_LEN ) /*!< Max buffer size for message of `jobs/$next/get topic`. */ +#define TOPIC_PLUS_THINGNAME_LEN( topic ) ( CONST_STRLEN( topic ) + otaconfigMAX_THINGNAME_LEN + NULL_CHAR_LEN ) /*!< Calculate max buffer size based on topic template and thing name length. */ +#define TOPIC_GET_NEXT_BUFFER_SIZE ( TOPIC_PLUS_THINGNAME_LEN( pOtaJobsGetNextTopicTemplate ) ) /*!< Max buffer size for `jobs/$next/get` topic. */ +#define TOPIC_NOTIFY_NEXT_BUFFER_SIZE ( TOPIC_PLUS_THINGNAME_LEN( pOtaJobsNotifyNextTopicTemplate ) ) /*!< Max buffer size for `jobs/notify-next` topic. */ +#define TOPIC_JOB_STATUS_BUFFER_SIZE ( TOPIC_PLUS_THINGNAME_LEN( pOtaJobStatusTopicTemplate ) + JOB_NAME_MAX_LEN ) /*!< Max buffer size for `jobs//update` topic. */ +#define TOPIC_STREAM_DATA_BUFFER_SIZE ( TOPIC_PLUS_THINGNAME_LEN( pOtaStreamDataTopicTemplate ) + STREAM_NAME_MAX_LEN ) /*!< Max buffer size for `streams//data/cbor` topic. */ +#define TOPIC_GET_STREAM_BUFFER_SIZE ( TOPIC_PLUS_THINGNAME_LEN( pOtaGetStreamTopicTemplate ) + STREAM_NAME_MAX_LEN ) /*!< Max buffer size for `streams//get/cbor` topic. */ +#define MSG_GET_NEXT_BUFFER_SIZE ( CONST_STRLEN( "{\"clientToken\":\"" ) + CONST_STRLEN( ":" ) + CONST_STRLEN( "\"}" ) + OTA_CLIENT_TOKEN_MAX_THINGNAME_LEN + U32_MAX_LEN + 1 ) /*!< Max buffer size for message of `jobs/$next/get topic`. */ /** * @brief Subscribe to the jobs notification topic (i.e. New file version available). @@ -859,13 +862,15 @@ OtaErr_t requestJob_Mqtt( const OtaAgentContext_t * pAgentCtx ) /* The following buffer is big enough to hold a dynamically constructed * $next/get job message. It contains a client token that is used to track * how many requests have been made. */ - char pMsg[ MSG_GET_NEXT_BUFFER_SIZE ]; + char pMsg[ MSG_GET_NEXT_BUFFER_SIZE ] = { '\0' }; static uint32_t reqCounter = 0; OtaErr_t otaError = OtaErrRequestJobFailed; OtaMqttStatus_t mqttStatus = OtaMqttSuccess; uint32_t msgSize = 0; uint16_t topicLen = 0; + uint32_t xThingNameLength = 0; + uint32_t reqCounterStringLength = 0; /* NULL-terminated list of topic string parts. */ const char * pTopicParts[] = @@ -876,17 +881,8 @@ OtaErr_t requestJob_Mqtt( const OtaAgentContext_t * pAgentCtx ) NULL }; char reqCounterString[ U32_MAX_LEN + 1 ]; + /* NULL-terminated list of payload parts */ - /* NOTE: this must agree with pOtaGetNextJobMsgTemplate, do not add spaces, etc. */ - const char * pPayloadParts[] = - { - "{\"clientToken\":\"", - NULL, /* Request counter string not available at compile time, initialized below. */ - ":", - NULL, /* Thing Name not available at compile time, initialized below. */ - "\"}", - NULL - }; assert( pAgentCtx != NULL ); @@ -894,11 +890,23 @@ OtaErr_t requestJob_Mqtt( const OtaAgentContext_t * pAgentCtx ) ( void ) pOtaJobsGetNextTopicTemplate; ( void ) pOtaGetNextJobMsgTemplate; - pTopicParts[ 1 ] = ( const char * ) pAgentCtx->pThingName; - pPayloadParts[ 1 ] = reqCounterString; - pPayloadParts[ 3 ] = ( const char * ) pAgentCtx->pThingName; + /* Client token max length is 64. It is a combination of request counter (max 10 characters), a separator colon, and the ThingName. */ + xThingNameLength = ( uint32_t ) strnlen( ( const char * ) pAgentCtx->pThingName, OTA_CLIENT_TOKEN_MAX_THINGNAME_LEN ); + + reqCounterStringLength = ( uint32_t ) stringBuilderUInt32Decimal( reqCounterString, sizeof( reqCounterString ), reqCounter ); - ( void ) stringBuilderUInt32Decimal( reqCounterString, sizeof( reqCounterString ), reqCounter ); + /* Assemble the string by copying the pieces into the buffer. This is done manually since we know the size of the thingname. */ + strncpy( &pMsg[ msgSize ], "{\"clientToken\":\"", MSG_GET_NEXT_BUFFER_SIZE ); + msgSize = 16U; + strncpy( &pMsg[ msgSize ], reqCounterString, reqCounterStringLength ); + /* Do not count the terminating null byte on the request counter string */ + msgSize += reqCounterStringLength - 1; + strncpy( &pMsg[ msgSize ], ":", MSG_GET_NEXT_BUFFER_SIZE - msgSize ); + msgSize++; + strncpy( &pMsg[ msgSize ], ( const char * ) pAgentCtx->pThingName, xThingNameLength ); + msgSize += xThingNameLength; + strncpy( &pMsg[ msgSize ], "\"}", MSG_GET_NEXT_BUFFER_SIZE - msgSize ); + msgSize += 2U; /* Subscribe to the OTA job notification topic. */ mqttStatus = subscribeToJobNotificationTopics( pAgentCtx ); @@ -907,11 +915,6 @@ OtaErr_t requestJob_Mqtt( const OtaAgentContext_t * pAgentCtx ) { LogDebug( ( "MQTT job request number: counter=%u", reqCounter ) ); - msgSize = ( uint32_t ) stringBuilder( - pMsg, - sizeof( pMsg ), - pPayloadParts ); - /* The buffer is static and the size is calculated to fit. */ assert( ( msgSize > 0U ) && ( msgSize < sizeof( pMsg ) ) ); diff --git a/test/cbmc/proofs/OTA_Init/Makefile b/test/cbmc/proofs/OTA_Init/Makefile index fc430fedd..f11ebb1cb 100644 --- a/test/cbmc/proofs/OTA_Init/Makefile +++ b/test/cbmc/proofs/OTA_Init/Makefile @@ -13,7 +13,7 @@ PROJECT_SOURCES += $(SRCDIR)/source/ota.c NONDET_STATIC += "--nondet-static" -UNWINDSET += strlen.0:66 +UNWINDSET += strlen.0:150 REMOVE_FUNCTION_BODY += setControlInterface REMOVE_FUNCTION_BODY += __CPROVER_file_local_ota_c_initializeAppBuffers diff --git a/test/cbmc/proofs/requestJob_Mqtt/Makefile b/test/cbmc/proofs/requestJob_Mqtt/Makefile index 97af6f6d9..e51780551 100644 --- a/test/cbmc/proofs/requestJob_Mqtt/Makefile +++ b/test/cbmc/proofs/requestJob_Mqtt/Makefile @@ -7,8 +7,17 @@ HARNESS_FILE = $(HARNESS_ENTRY) PROOF_UID = requestJob_Mqtt PROOF_SOURCES += $(PROOFDIR)/$(HARNESS_FILE).c +PROOF_SOURCES += $(PROOF_STUB)/strnlen.c PROJECT_SOURCES += $(SRCDIR)/source/ota_mqtt.c +# The strncpy bound is large due to requestJob_Mqtt copying message peices +# into a buffer. This is much higher than the 84 characters of the buffer +# as null characters are used after the copied in strin to fill the buffer. +UNWINDSET += strncpy.0:220 +# The strnlen function is used when calculating the maximum thingname length +# which can be used to generate the client token. +UNWINDSET += strnlen.0:54 + # If this proof is found to consume huge amounts of RAM, you can set the # EXPENSIVE variable. With new enough versions of the proof tools, this will # restrict the number of EXPENSIVE CBMC jobs running at once. See the diff --git a/test/cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c b/test/cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c index a6a1fe28f..7d34bf0e0 100644 --- a/test/cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c +++ b/test/cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c @@ -60,6 +60,9 @@ size_t __CPROVER_file_local_ota_mqtt_c_stringBuilderUInt32Decimal( char * pBuffe { size_t buffersize; + /* Output can only be at most 10 characters as max unsigned 32-bit integer value is 10 characters long */ + __CPROVER_assume( buffersize > 0 && buffersize <= 10U ); + /* pBuffer is always initialized before passing it to the stringBuilderUInt32Decimal * function and thus should not be NULL. */ __CPROVER_assert( pBuffer != NULL, @@ -95,12 +98,16 @@ void requestJob_Mqtt_harness() { OtaAgentContext_t agent; OtaInterfaces_t otaInterface; + size_t size; + + __CPROVER_assume( size >= 1 && size < 128U ); /* publish reference to the mqtt function is expected to be assigned by the user and thus * assumed not to be NULL. */ otaInterface.mqtt.publish = stubMqttPublish; agent.pOtaInterface = &otaInterface; + agent.pThingName[ size ] = '\0'; /* Ota agent is declared globally and cannot be NULL. */ requestJob_Mqtt( &agent ); diff --git a/test/cbmc/stubs/strnlen.c b/test/cbmc/stubs/strnlen.c new file mode 100644 index 000000000..e344d4107 --- /dev/null +++ b/test/cbmc/stubs/strnlen.c @@ -0,0 +1,41 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +/** + * FUNCTION: strnlen + * + * This function stubs the standard implementation of the strnlen function + * from string.h. It returns the size of the c-string *s up to a maximum of + * length maxlen. The length excludes the null-byte. + */ + + +#include + +/** + * Stub strnlen used by CBMC. + */ +size_t strnlen( const char * s, + size_t maxlen ) +{ + #ifdef __CPROVER_STRING_ABSTRACTION + __CPROVER_precondition( __CPROVER_is_zero_string( s ), "strnlen zero-termination" ); + return __CPROVER_zero_string_length( s ); + #else + size_t len = 0; + + while( s[ len ] != 0 && len < maxlen ) + { + len++; + } + return len; + #endif +} + +size_t __builtin___strnlen_chk( const char * s, + size_t maxlen ) +{ + return strnlen( s, maxlen ); +} diff --git a/test/unit-test/ota_utest.c b/test/unit-test/ota_utest.c index a8b1e846e..1a0df0dde 100644 --- a/test/unit-test/ota_utest.c +++ b/test/unit-test/ota_utest.c @@ -117,6 +117,8 @@ const char OTA_JsonFileSignatureKey[ OTA_FILE_SIG_KEY_STR_MAX_LENGTH ] = "sig-sh /* OTA client name. */ static const char * pOtaDefaultClientId = "ota_utest"; +/* Longest supported OTA Thingname*/ +static const char * longestThingname = "AReallyLongThingNameWhichIs128CharactersAndMatchesTheAWSIoTSpecificationForThingnameLengthMaximums12345678901234567890123456789"; /* OTA job doc. */ static const char * pOtaJobDoc = NULL; @@ -465,6 +467,42 @@ static OtaMqttStatus_t stubMqttPublish( const char * const unused_1, return OtaMqttSuccess; } +static OtaMqttStatus_t stubMqttPublishOnlySuccedsIfTruncatedValue( const char * const unused_1, + uint16_t unused_2, + const char * msg, + uint32_t msgSize, + uint8_t unused_3 ) +{ + ( void ) unused_1; + ( void ) unused_2; + ( void ) unused_3; + + /* Maximum message size is 64 characters for client token + 19 characters for JSON formatting */ + TEST_ASSERT_LESS_OR_EQUAL( 83U, msgSize ); + TEST_ASSERT_GREATER_THAN( 19U, msgSize ); + + char expected[ 54 ] = { 0 }; + char actual[ 54 ] = { 0 }; + + /* Calculate the start of the thingname */ + int offset = msgSize - 53U - 2; + + memcpy( actual, msg, 16U ); + + TEST_ASSERT_EQUAL_STRING( "{\"clientToken\":\"", actual ); + + TEST_ASSERT_EQUAL_CHAR( ':', *( msg + ( offset - 1 ) ) ); + + /* Copy out the first 53 characters of the thingname */ + memcpy( expected, longestThingname, 53U ); + /* Copy out the 53 characters of the truncated thingname */ + memcpy( actual, msg + ( offset ), 53U ); + + TEST_ASSERT_EQUAL_STRING( expected, actual ); + + return OtaMqttSuccess; +} + OtaErr_t mockControlInterfaceRequestJobAlwaysFail( const OtaAgentContext_t * unused ) { ( void ) unused; @@ -1025,10 +1063,20 @@ void test_OTA_InitWithNullName() TEST_ASSERT_EQUAL( OtaAgentStateStopped, OTA_GetState() ); } +void test_OTA_InitWithNameAtMaxLength() +{ + /* OTA does not accept name longer than 128. Explicitly test long client name. */ + char long_name[ 129 ] = { 0 }; + + memset( long_name, 1, sizeof( long_name ) - 1 ); + otaInit( long_name, mockAppCallback ); + TEST_ASSERT_EQUAL( OtaAgentStateInit, OTA_GetState() ); +} + void test_OTA_InitWithNameTooLong() { - /* OTA does not accept name longer than 64. Explicitly test long client name. */ - char long_name[ 100 ] = { 0 }; + /* OTA does not accept name longer than 128. Explicitly test long client name. */ + char long_name[ 130 ] = { 0 }; memset( long_name, 1, sizeof( long_name ) - 1 ); otaInit( long_name, mockAppCallback ); @@ -2729,6 +2777,20 @@ void test_OTA_MQTT_JobSubscribingFailed() TEST_ASSERT_EQUAL( OtaErrRequestJobFailed, err ); } +/* Test thingname is truncated in requestJob_Mqtt */ +void test_OTA_MQTT_ThingNameTruncated() +{ + OtaErr_t err = OtaErrNone; + + otaInit( longestThingname, mockAppCallback ); + otaInterfaces.mqtt.subscribe = stubMqttSubscribe; + otaInterfaces.mqtt.publish = stubMqttPublishOnlySuccedsIfTruncatedValue; + + err = requestJob_Mqtt( &otaAgent ); + + TEST_ASSERT_EQUAL( OtaErrNone, err ); +} + /* Test that initFileTransfer_Mqtt fails if the Subscribe fails. */ void test_OTA_MQTT_InitFileTransferSubscribeFailed() { diff --git a/tools/lexicon.txt b/tools/lexicon.txt index 7df18d099..68b737436 100644 --- a/tools/lexicon.txt +++ b/tools/lexicon.txt @@ -274,6 +274,7 @@ int intel ioffset iot +iotcore ip ip isinselftest @@ -316,6 +317,7 @@ malloc mac maxattempts maxfragmentlength +maxlen mcu md mem @@ -776,6 +778,7 @@ sendtimeout sendtimeoutms serverfileid serverinfo +servicequotas setcontrolinterface setdatainterface setimagestate @@ -817,6 +820,7 @@ stringsize strlength stringbuilder stringsize +strnlen struct structs sublicense From 3488f6b2ec0e39408acfa5146708d1c9ceb6b354 Mon Sep 17 00:00:00 2001 From: Kody Stribrny <89810515+kstribrnAmzn@users.noreply.github.com> Date: Mon, 20 Feb 2023 12:03:04 -0800 Subject: [PATCH 12/25] Update readme for CBMC local runs (#473) * Adds readme section describing CBMC local execution * Corrects misspelling of 'pieces' * Adds comment explaining thingname size bounds Co-authored-by: Felipe R. Monteiro --- README.md | 17 +++++++++++++++++ test/cbmc/proofs/requestJob_Mqtt/Makefile | 2 +- .../requestJob_Mqtt/requestJob_Mqtt_harness.c | 2 ++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0d588f52f..9b7e54062 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,23 @@ The `test/cbmc/proofs` directory contains CBMC proofs. In order to run these proofs you will need to install CBMC and other tools by following the instructions [here](https://model-checking.github.io/cbmc-training/installation.html). +### CBMC Locally +To run a single CBMC proof locally, you can build the Makefile in any of the CBMC proofs. The Makefile is located in the `test/cbmc/proof//` directory. + +Running `make` will produce a HTML-based report nearly identical to the one produced by the CI step. + +**A couple notes about CBMC Proofs** +* macOS doesn't implement POSIX message queues (`mqueue.h`); +* It is possible that macOS fails to recognize your loop unwinding identifiers for function from the C standard libraries. For this case, you'll want to use the `__builtin____chk` identifier, e.g., instead of using `memcpy` add `__builtin___memcpy_chk`. + * For example, the **requestJob_Mqtt** proof fails on macOS with the following error: + +``` +Loop unwinding failures +[trace] __builtin___strncpy_chk.unwind.0 in line 36 in file +``` + +To solve this issue, replace `strncpy` with `__builtin___strncpy_ch` on [this line](https://github.com/aws/ota-for-aws-iot-embedded-sdk/blob/main/test/cbmc/proofs/requestJob_Mqtt/Makefile#L16). + ## Reference examples Please refer to the demos of the AWS IoT Over-the-air Updates library in the following location for reference examples on POSIX and FreeRTOS: diff --git a/test/cbmc/proofs/requestJob_Mqtt/Makefile b/test/cbmc/proofs/requestJob_Mqtt/Makefile index e51780551..45ba11f0d 100644 --- a/test/cbmc/proofs/requestJob_Mqtt/Makefile +++ b/test/cbmc/proofs/requestJob_Mqtt/Makefile @@ -10,7 +10,7 @@ PROOF_SOURCES += $(PROOFDIR)/$(HARNESS_FILE).c PROOF_SOURCES += $(PROOF_STUB)/strnlen.c PROJECT_SOURCES += $(SRCDIR)/source/ota_mqtt.c -# The strncpy bound is large due to requestJob_Mqtt copying message peices +# The strncpy bound is large due to requestJob_Mqtt copying message pieces # into a buffer. This is much higher than the 84 characters of the buffer # as null characters are used after the copied in strin to fill the buffer. UNWINDSET += strncpy.0:220 diff --git a/test/cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c b/test/cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c index 7d34bf0e0..f5a2c2ac0 100644 --- a/test/cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c +++ b/test/cbmc/proofs/requestJob_Mqtt/requestJob_Mqtt_harness.c @@ -100,6 +100,8 @@ void requestJob_Mqtt_harness() OtaInterfaces_t otaInterface; size_t size; + /* This variable is used to size the thingname. A device thingname must + * have a minimum length of 1 and a maximum length of 128. */ __CPROVER_assume( size >= 1 && size < 128U ); /* publish reference to the mqtt function is expected to be assigned by the user and thus From e5c5fb4a2e62492ab1972a10ebf166e3b7147727 Mon Sep 17 00:00:00 2001 From: Kody Stribrny <89810515+kstribrnAmzn@users.noreply.github.com> Date: Tue, 21 Feb 2023 11:20:00 -0800 Subject: [PATCH 13/25] Fix stringBuilderUInt32Decimal to handle 0 value (#475) * Fix stringBuilderUInt32Decimal to handle 0 value Previously the stringBuilder method would return and empty string when the integer value of '0' was supplied. With this change, the string representation "0" is returned. --- source/ota_mqtt.c | 20 +++++++++---------- test/unit-test/ota_utest.c | 40 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 11 deletions(-) diff --git a/source/ota_mqtt.c b/source/ota_mqtt.c index 2c7276113..ad4e9f76e 100644 --- a/source/ota_mqtt.c +++ b/source/ota_mqtt.c @@ -282,6 +282,8 @@ static size_t stringBuilder( char * pBuffer, curLen += thisLength; } + pBuffer[ curLen ] = '\0'; + return curLen; } @@ -295,17 +297,16 @@ static size_t stringBuilderUInt32Decimal( char * pBuffer, uint32_t valueCopy = value; size_t size = 0; - /* Assert if there is not enough buffer space. */ - - assert( bufferSizeBytes >= U32_MAX_LEN ); ( void ) bufferSizeBytes; + /* Assert if there is not enough buffer space. */ + assert( bufferSizeBytes >= U32_MAX_LEN + 1 ); - while( valueCopy > 0U ) + do { *pCur = asciiDigits[ ( valueCopy % 10U ) ]; pCur++; valueCopy /= 10U; - } + } while( valueCopy > 0U ); while( pCur > workBuf ) { @@ -315,7 +316,6 @@ static size_t stringBuilderUInt32Decimal( char * pBuffer, } pDest[ size ] = '\0'; - size++; return size; } @@ -330,10 +330,9 @@ static size_t stringBuilderUInt32Hex( char * pBuffer, uint32_t valueCopy = value; size_t i; - /* Assert if there is not enough buffer space. */ - - assert( bufferSizeBytes >= U32_MAX_LEN ); ( void ) bufferSizeBytes; + /* Assert if there is not enough buffer space. */ + assert( bufferSizeBytes >= U32_MAX_LEN + 1 ); /* Render all 8 digits, including leading zeros. */ for( i = 0U; i < 8U; i++ ) @@ -351,7 +350,6 @@ static size_t stringBuilderUInt32Hex( char * pBuffer, } pDest[ size ] = '\0'; - size++; return size; } @@ -870,6 +868,7 @@ OtaErr_t requestJob_Mqtt( const OtaAgentContext_t * pAgentCtx ) uint32_t msgSize = 0; uint16_t topicLen = 0; uint32_t xThingNameLength = 0; + char reqCounterString[ U32_MAX_LEN + 1 ]; uint32_t reqCounterStringLength = 0; /* NULL-terminated list of topic string parts. */ @@ -880,7 +879,6 @@ OtaErr_t requestJob_Mqtt( const OtaAgentContext_t * pAgentCtx ) MQTT_API_JOBS_NEXT_GET, NULL }; - char reqCounterString[ U32_MAX_LEN + 1 ]; /* NULL-terminated list of payload parts */ diff --git a/test/unit-test/ota_utest.c b/test/unit-test/ota_utest.c index 1a0df0dde..6d29907b3 100644 --- a/test/unit-test/ota_utest.c +++ b/test/unit-test/ota_utest.c @@ -503,6 +503,28 @@ static OtaMqttStatus_t stubMqttPublishOnlySuccedsIfTruncatedValue( const char * return OtaMqttSuccess; } +static OtaMqttStatus_t stubMqttPublishZeroBlocksReceived( const char * const unused_1, + uint16_t unused_2, + const char * msg, + uint32_t msgSize, + uint8_t unused_3 ) +{ + ( void ) unused_1; + ( void ) unused_2; + ( void ) unused_3; + + /* Maximum message size is 77 characters */ + TEST_ASSERT_LESS_OR_EQUAL( 77U, msgSize ); + + char actual[ 19 ] = { 0 }; + + memcpy( actual, msg, 18U ); + + TEST_ASSERT_EQUAL_STRING( "{\"status\":\"IN_PROGRESS\",\"statusDetails\":{\"receive\":\"0/2\"}}", actual ); + + return OtaMqttSuccess; +} + OtaErr_t mockControlInterfaceRequestJobAlwaysFail( const OtaAgentContext_t * unused ) { ( void ) unused; @@ -2646,6 +2668,24 @@ void test_OTA_ReceiveFileBlockCompleteMqttCountUpdateJobCalledTime() TEST_ASSERT_EQUAL( OTA_TEST_FILE_NUM_BLOCKS, otaReceivedFileBlockNumber ); } +void test_OTA_UpdateJobStatus() +{ + OtaErr_t err = OtaErrNone; + + otaInitDefault(); + + /* Verify the conversion of the value 0U and 2U to a string */ + otaInterfaces.mqtt.publish = stubMqttPublishZeroBlocksReceived; + + /* Set the file size to an arbitrary value < block size to ensure 2 blocks for the OTA */ + otaAgent.fileContext.fileSize = 100U; + /* With 2 blocks remaining, status message will say '0/2' blocks received */ + otaAgent.fileContext.blocksRemaining = 2U; + + err = updateJobStatus_Mqtt( &otaAgent, JobStatusInProgress, 0, 0 ); + TEST_ASSERT_EQUAL( OtaErrNone, err ); +} + void test_OTA_EventProcessingTask_ExitOnAbort() { OtaEventMsg_t otaEvent = { 0 }; From 1816dfb43ccfbeee0ad31f3d1711facdde0c063a Mon Sep 17 00:00:00 2001 From: Soren Ptak Date: Wed, 8 Mar 2023 13:44:08 -0800 Subject: [PATCH 14/25] OTA Bitmap Field Size Comparison (#477) * Add a check to ensure the number of blocks is not larger than OTA_MAX_BLOCK_BITMAP_SIZE * Add a unit test to hit the new if statement * Accounting for extra .1K in size * Adding in a log message if the bitmap isn't the right size. --------- Co-authored-by: Soren Ptak --- docs/doxygen/include/size_table.md | 4 ++-- source/ota.c | 6 ++++++ test/unit-test/ota_utest.c | 18 ++++++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/docs/doxygen/include/size_table.md b/docs/doxygen/include/size_table.md index 17ab7e603..cfd59d4da 100644 --- a/docs/doxygen/include/size_table.md +++ b/docs/doxygen/include/size_table.md @@ -10,7 +10,7 @@ ota.c
8.5K
-
7.6K
+
7.7K
ota_interface.c @@ -40,6 +40,6 @@ Total estimates
12.7K
-
11.5K
+
11.6K
diff --git a/source/ota.c b/source/ota.c index f4527cd3b..ea7c30e0b 100644 --- a/source/ota.c +++ b/source/ota.c @@ -2365,6 +2365,12 @@ static OtaFileContext_t * parseJobDoc( const JsonDocParam_t * pJsonExpectedParam { err = OtaJobParseErrBadModelInitParams; } + else if( pFileContext->blocksRemaining > OTA_MAX_BLOCK_BITMAP_SIZE ) + { + err = OtaJobParseErrBadModelInitParams; + LogWarn( ( "OTA size (%u blocks) greater than can be tracked. Increase `OTA_MAX_BLOCK_BITMAP_SIZE`", + pFileContext->blocksRemaining ) ); + } else { parseError = parseJSONbyModel( pJson, messageLength, &otaJobDocModel ); diff --git a/test/unit-test/ota_utest.c b/test/unit-test/ota_utest.c index 6d29907b3..7e96a99ad 100644 --- a/test/unit-test/ota_utest.c +++ b/test/unit-test/ota_utest.c @@ -3528,6 +3528,24 @@ void test_OTA_parseJobFailsNullJsonDocument() TEST_ASSERT_EQUAL( false, updateJob ); } +void test_OTA_parseJobFailsMoreBlocksThanBitmap() +{ + OtaFileContext_t * pContext; + bool updateJob = false; + JsonDocParam_t otaCustomJobDocModelParamStructure[ 1 ] = + { + { OTA_JSON_JOB_ID_KEY, OTA_JOB_PARAM_REQUIRED, U16_OFFSET( OtaFileContext_t, pJobName ), U16_OFFSET( OtaFileContext_t, jobNameMaxSize ), UINT16_MAX }, + }; + + /* The document structure has an invalid value for ModelParamType_t. */ + otaAgent.fileContext.blocksRemaining = OTA_MAX_BLOCK_BITMAP_SIZE + 1; + otaInitDefault(); + pContext = parseJobDoc( otaCustomJobDocModelParamStructure, 1, JOB_DOC_A, strlen( JOB_DOC_A ), &updateJob ); + + TEST_ASSERT_NULL( pContext ); + TEST_ASSERT_EQUAL( false, updateJob ); +} + void test_OTA_extractParameterFailInvalidJobDocModel() { OtaFileContext_t * pContext; From 7e164487ca2ecd634ee8c24ca6a7af9e257d4adc Mon Sep 17 00:00:00 2001 From: Kareem Khazem Date: Tue, 28 Feb 2023 22:20:08 +0000 Subject: [PATCH 15/25] Add CBMC-running GitHub Action; This commit adds a GitHub Action that runs the CBMC proofs in this repository upon pushes and pull requests --- .github/workflows/ci.yml | 11 +++ test/cbmc/proofs/lib/print_tool_versions.py | 74 +++++++++++++++++++++ test/cbmc/proofs/lib/summarize.py | 63 ++++++++++++++++-- 3 files changed, 142 insertions(+), 6 deletions(-) create mode 100755 test/cbmc/proofs/lib/print_tool_versions.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 32451fbfd..48e006a2e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -151,3 +151,14 @@ jobs: with: config: .github/memory_statistics_config.json check_against: docs/doxygen/include/size_table.md + proof_ci: + runs-on: cbmc_ubuntu-latest_16-core + steps: + - name: Set up CBMC runner + uses: FreeRTOS/CI-CD-Github-Actions/set_up_cbmc_runner@main + - run: | + git submodule update --init --checkout --recursive --depth 1 + - name: Run CBMC + uses: FreeRTOS/CI-CD-Github-Actions/run_cbmc@main + with: + proofs_dir: test/cbmc/proofs diff --git a/test/cbmc/proofs/lib/print_tool_versions.py b/test/cbmc/proofs/lib/print_tool_versions.py new file mode 100755 index 000000000..bdeb429e3 --- /dev/null +++ b/test/cbmc/proofs/lib/print_tool_versions.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +# +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: MIT-0 + + +import logging +import pathlib +import shutil +import subprocess + + +_TOOLS = [ + "cadical", + "cbmc", + "cbmc-viewer", + "cbmc-starter-kit-update", + "kissat", + "litani", +] + + +def _format_versions(table): + lines = [ + "", + '', + ] + for tool, version in table.items(): + if version: + v_str = f'
{version}
' + else: + v_str = 'not found' + lines.append( + f'' + f'') + lines.append("
Tool Versions
{tool}:{v_str}
") + return "\n".join(lines) + + +def _get_tool_versions(): + ret = {} + for tool in _TOOLS: + err = f"Could not determine version of {tool}: " + ret[tool] = None + if not shutil.which(tool): + logging.error("%s'%s' not found on $PATH", err, tool) + continue + cmd = [tool, "--version"] + proc = subprocess.Popen(cmd, text=True, stdout=subprocess.PIPE) + try: + out, _ = proc.communicate(timeout=10) + except subprocess.TimeoutExpired: + logging.error("%s'%s --version' timed out", err, tool) + continue + if proc.returncode: + logging.error( + "%s'%s --version' returned %s", err, tool, str(proc.returncode)) + continue + ret[tool] = out.strip() + return ret + + +def main(): + exe_name = pathlib.Path(__file__).name + logging.basicConfig(format=f"{exe_name}: %(message)s") + + table = _get_tool_versions() + out = _format_versions(table) + print(out) + + +if __name__ == "__main__": + main() diff --git a/test/cbmc/proofs/lib/summarize.py b/test/cbmc/proofs/lib/summarize.py index 154634b4e..50dbcc33c 100644 --- a/test/cbmc/proofs/lib/summarize.py +++ b/test/cbmc/proofs/lib/summarize.py @@ -1,8 +1,28 @@ # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: MIT-0 +import argparse import json import logging +import os +import sys + + +DESCRIPTION = """Print 2 tables in GitHub-flavored Markdown that summarize +an execution of CBMC proofs.""" + + +def get_args(): + """Parse arguments for summarize script.""" + parser = argparse.ArgumentParser(description=DESCRIPTION) + for arg in [{ + "flags": ["--run-file"], + "help": "path to the Litani run.json file", + "required": True, + }]: + flags = arg.pop("flags") + parser.add_argument(*flags, **arg) + return parser.parse_args() def _get_max_length_per_column_list(data): @@ -56,6 +76,7 @@ def _get_status_and_proof_summaries(run_dict): run_dict A dictionary representing a Litani run. + Returns ------- A list of 2 lists. @@ -70,8 +91,9 @@ def _get_status_and_proof_summaries(run_dict): count_statuses[status_pretty_name] += 1 except KeyError: count_statuses[status_pretty_name] = 1 - proof = proof_pipeline["name"] - proofs.append([proof, status_pretty_name]) + if proof_pipeline["name"] == "print_tool_versions": + continue + proofs.append([proof_pipeline["name"], status_pretty_name]) statuses = [["Status", "Count"]] for status, count in count_statuses.items(): statuses.append([status, str(count)]) @@ -83,10 +105,39 @@ def print_proof_results(out_file): Print 2 strings that summarize the proof results. When printing, each string will render as a GitHub flavored Markdown table. """ + output = "## Summary of CBMC proof results\n\n" + with open(out_file, encoding='utf-8') as run_json: + run_dict = json.load(run_json) + status_table, proof_table = _get_status_and_proof_summaries(run_dict) + for summary in (status_table, proof_table): + output += _get_rendered_table(summary) + + print(output) + sys.stdout.flush() + + github_summary_file = os.getenv("GITHUB_STEP_SUMMARY") + if github_summary_file: + with open(github_summary_file, "a") as handle: + print(output, file=handle) + handle.flush() + else: + logging.warning( + "$GITHUB_STEP_SUMMARY not set, not writing summary file") + + msg = ( + "Click the 'Summary' button to view a Markdown table " + "summarizing all proof results") + if run_dict["status"] != "success": + logging.error("Not all proofs passed.") + logging.error(msg) + sys.exit(1) + logging.info(msg) + + +if __name__ == '__main__': + args = get_args() + logging.basicConfig(format="%(levelname)s: %(message)s") try: - with open(out_file, encoding='utf-8') as run_json: - run_dict = json.load(run_json) - for summary in _get_status_and_proof_summaries(run_dict): - print(_get_rendered_table(summary)) + print_proof_results(args.run_file) except Exception as ex: # pylint: disable=broad-except logging.critical("Could not print results. Exception: %s", str(ex)) From 1f8c1150bf8613ddc3af21b0eca2de1268eb7116 Mon Sep 17 00:00:00 2001 From: Paul Bartell Date: Wed, 15 Mar 2023 15:45:48 -0700 Subject: [PATCH 16/25] FIX: Invalid topic used to publish request for outstanding OTA jobs (#483) * FIX: Invalid topic used to publish request for outstanding OTA jobs (#480) * Update ota_utest.c to verify that ThingName is included in the resulting topic name --------- Co-authored-by: imoir Co-authored-by: Kody Stribrny --- source/ota_mqtt.c | 2 ++ test/unit-test/ota_utest.c | 39 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/source/ota_mqtt.c b/source/ota_mqtt.c index ad4e9f76e..798b6dc41 100644 --- a/source/ota_mqtt.c +++ b/source/ota_mqtt.c @@ -888,6 +888,8 @@ OtaErr_t requestJob_Mqtt( const OtaAgentContext_t * pAgentCtx ) ( void ) pOtaJobsGetNextTopicTemplate; ( void ) pOtaGetNextJobMsgTemplate; + pTopicParts[ 1 ] = ( const char * ) pAgentCtx->pThingName; + /* Client token max length is 64. It is a combination of request counter (max 10 characters), a separator colon, and the ThingName. */ xThingNameLength = ( uint32_t ) strnlen( ( const char * ) pAgentCtx->pThingName, OTA_CLIENT_TOKEN_MAX_THINGNAME_LEN ); diff --git a/test/unit-test/ota_utest.c b/test/unit-test/ota_utest.c index 7e96a99ad..32f3562ca 100644 --- a/test/unit-test/ota_utest.c +++ b/test/unit-test/ota_utest.c @@ -467,6 +467,31 @@ static OtaMqttStatus_t stubMqttPublish( const char * const unused_1, return OtaMqttSuccess; } +static OtaMqttStatus_t stubMqttPublishOnlySuccedsTopicIsCorrect( const char * const topic, + uint16_t topicLength, + const char * unused_1, + uint32_t unused_2, + uint8_t unused_3 ) +{ + ( void ) unused_1; + ( void ) unused_2; + ( void ) unused_3; + + /* Maximum topic size is 128 characters for IoT Core */ + TEST_ASSERT_LESS_OR_EQUAL( 128U, topicLength ); + TEST_ASSERT_GREATER_THAN( 1U, topicLength ); + + char expected[ 129 ] = { 0 }; + + strcat( expected, "$aws/things/" ); + strcat( expected, pOtaDefaultClientId ); + strcat( expected, "/jobs/$next/get" ); + + TEST_ASSERT_EQUAL_STRING( expected, topic ); + + return OtaMqttSuccess; +} + static OtaMqttStatus_t stubMqttPublishOnlySuccedsIfTruncatedValue( const char * const unused_1, uint16_t unused_2, const char * msg, @@ -2817,6 +2842,20 @@ void test_OTA_MQTT_JobSubscribingFailed() TEST_ASSERT_EQUAL( OtaErrRequestJobFailed, err ); } +/* Test the publish topic is assembled correctly */ +void test_OTA_MQTT_PublishesToCorrectTopic() +{ + OtaErr_t err = OtaErrNone; + + otaInitDefault(); + otaInterfaces.mqtt.subscribe = stubMqttSubscribe; + otaInterfaces.mqtt.publish = stubMqttPublishOnlySuccedsTopicIsCorrect; + + err = requestJob_Mqtt( &otaAgent ); + + TEST_ASSERT_EQUAL( OtaErrNone, err ); +} + /* Test thingname is truncated in requestJob_Mqtt */ void test_OTA_MQTT_ThingNameTruncated() { From 0c46d6a6f77414ed8d8a383d1a04d93dcc7e0f5c Mon Sep 17 00:00:00 2001 From: Archit Gupta <71798289+archigup@users.noreply.github.com> Date: Wed, 22 Mar 2023 14:56:45 -0700 Subject: [PATCH 17/25] Fix assumptions on definitions of fixed width types (#485) This fixes assumptions that int32_t is defined as int and so on. Printf parameters were also otherwise not cast to the type specifiers used in the format strings. These can cause warnings and failed compilations. --- source/ota.c | 68 ++++++++++++++-------------- source/ota_cbor.c | 6 +-- source/ota_mqtt.c | 2 +- source/portable/os/ota_os_freertos.c | 38 ++++++++-------- source/portable/os/ota_os_posix.c | 52 ++++++++++----------- 5 files changed, 83 insertions(+), 83 deletions(-) diff --git a/source/ota.c b/source/ota.c index ea7c30e0b..772800bde 100644 --- a/source/ota.c +++ b/source/ota.c @@ -630,7 +630,7 @@ static void otaTimerCallback( OtaTimerId_t otaTimerId ) OtaEventMsg_t xEventMsg = { 0 }; LogDebug( ( "Self-test expired within %ums", - otaconfigFILE_REQUEST_WAIT_MS ) ); + ( unsigned ) otaconfigFILE_REQUEST_WAIT_MS ) ); xEventMsg.eventId = OtaAgentEventRequestTimer; @@ -643,7 +643,7 @@ static void otaTimerCallback( OtaTimerId_t otaTimerId ) else /* otaTimerId == OtaSelfTestTimer */ { LogError( ( "Self test failed to complete within %ums", - otaconfigSELF_TEST_RESPONSE_WAIT_MS ) ); + ( unsigned ) otaconfigSELF_TEST_RESPONSE_WAIT_MS ) ); ( void ) otaAgent.pOtaInterface->pal.reset( &otaAgent.fileContext ); } @@ -764,8 +764,8 @@ static OtaErr_t setImageStateWithReason( OtaImageState_t stateToSet, ", reason=%d", OTA_Err_strerror( err ), OTA_PalStatus_strerror( OTA_PAL_MAIN_ERR( palStatus ) ), - stateToSet, - reasonToSet ) ); + ( int ) stateToSet, + ( int ) reasonToSet ) ); } return err; @@ -1171,7 +1171,7 @@ static void dataHandlerCleanup( void ) LogWarn( ( "Failed to trigger closing file: " "Unable to signal event: " "event=%d", - eventMsg.eventId ) ); + ( int ) eventMsg.eventId ) ); } } @@ -1235,7 +1235,7 @@ static OtaErr_t processDataHandler( const OtaEventData_t * pEventData ) } else if( result < IngestResultFileComplete ) { - LogError( ( "Failed to ingest data block, rejecting image: ingestDataBlock returned error: OtaErr_t=%d", result ) ); + LogError( ( "Failed to ingest data block, rejecting image: ingestDataBlock returned error: OtaErr_t=%d", ( int ) result ) ); /* Call the platform specific code to reject the image. */ ( void ) otaAgent.pOtaInterface->pal.setPlatformImageState( &( otaAgent.fileContext ), OtaImageStateRejected ); @@ -1284,7 +1284,7 @@ static OtaErr_t processDataHandler( const OtaEventData_t * pEventData ) if( OTA_SignalEvent( &eventMsg ) == false ) { - LogWarn( ( "Failed to trigger requesting the next block: Unable to signal event=%d", eventMsg.eventId ) ); + LogWarn( ( "Failed to trigger requesting the next block: Unable to signal event=%d", ( int ) eventMsg.eventId ) ); } } } @@ -1314,7 +1314,7 @@ static OtaErr_t closeFileHandler( const OtaEventData_t * pEventData ) LogInfo( ( "Closing file: " "file index=%u", - otaAgent.fileIndex ) ); + ( unsigned ) otaAgent.fileIndex ) ); ( void ) otaClose( &( otaAgent.fileContext ) ); @@ -1563,7 +1563,7 @@ static DocParseErr_t validateJSON( const char * pJson, LogError( ( "Invalid JSON document: " "JSON_Validate returned error: " "JSONStatus_t=%d", - result ) ); + ( int ) result ) ); err = DocParseErr_InvalidJSONBuffer; } } @@ -1598,7 +1598,7 @@ static DocParseErr_t decodeAndStoreKey( const char * pValueInJson, LogError( ( "Failed to decode Base64 data: " "base64Decode returned error: " "error=%d", - base64Status ) ); + ( int ) base64Status ) ); err = DocParseErrBase64Decode; } else @@ -1717,7 +1717,7 @@ static DocParseErr_t extractParameter( JsonDocParam_t docParam, if( ( errno == 0 ) && ( pEnd == &pValueInJson[ valueLength ] ) ) { LogInfo( ( "Extracted parameter: [key: value]=[%s: %u]", - docParam.pSrcKey, *pUint32 ) ); + docParam.pSrcKey, ( unsigned ) *pUint32 ) ); } else { @@ -1737,13 +1737,13 @@ static DocParseErr_t extractParameter( JsonDocParam_t docParam, } else { - LogWarn( ( "Invalid parameter type: %d", docParam.modelParamType ) ); + LogWarn( ( "Invalid parameter type: %d", ( int ) docParam.modelParamType ) ); } if( err != DocParseErrNone ) { LogDebug( ( "Failed to extract document parameter: error=%d, paramter key=%s", - err, docParam.pSrcKey ) ); + ( int ) err, docParam.pSrcKey ) ); } return err; @@ -1856,7 +1856,7 @@ static DocParseErr_t parseJSONbyModel( const char * pJson, { LogDebug( ( "Failed to parse JSON document as AFR_OTA job: " "DocParseErr_t=%d", - err ) ); + ( int ) err ) ); } return err; @@ -1892,8 +1892,8 @@ static DocParseErr_t initDocModel( JsonDocModel_t * pDocModel, LogError( ( "Parameter check failed: " "Document model has %u parameters: " "Document model should have <= %u parameters.", - numJobParams, - OTA_DOC_MODEL_MAX_PARAMS ) ); + ( unsigned ) numJobParams, + ( unsigned ) OTA_DOC_MODEL_MAX_PARAMS ) ); err = DocParseErrTooManyParams; } else @@ -1921,7 +1921,7 @@ static DocParseErr_t initDocModel( JsonDocModel_t * pDocModel, if( err != DocParseErrNone ) { LogError( ( "Failed to initialize document model: " - "DocParseErr_t=%d", err ) ); + "DocParseErr_t=%d", ( int ) err ) ); } return err; @@ -1970,8 +1970,8 @@ static OtaErr_t validateUpdateVersion( const OtaFileContext_t * pFileContext ) LogInfo( ( "New image has a higher version number than the current image: " "New image version=%u.%u.%u" ", Previous image version=%u.%u.%u", - appFirmwareVersion.u.x.major, appFirmwareVersion.u.x.minor, appFirmwareVersion.u.x.build, - previousVersion.u.x.major, previousVersion.u.x.minor, previousVersion.u.x.build ) ); + ( unsigned ) appFirmwareVersion.u.x.major, ( unsigned ) appFirmwareVersion.u.x.minor, ( unsigned ) appFirmwareVersion.u.x.build, + ( unsigned ) previousVersion.u.x.major, ( unsigned ) previousVersion.u.x.minor, ( unsigned ) previousVersion.u.x.build ) ); } } @@ -2141,7 +2141,7 @@ static void handleSelfTestJobDoc( const OtaFileContext_t * pFileContext ) #if ( otaconfigAllowDowngrade == 1U ) { LogWarn( ( "OTA Config Allow Downgrade has been set to 1, bypassing version check: Begin testing file: File ID=%d", - otaAgent.serverFileID ) ); + ( int ) otaAgent.serverFileID ) ); /* Downgrade is allowed so this means we're ready to start self test phase. * Set image state accordingly and update job status with self test identifier. @@ -2161,7 +2161,7 @@ static void handleSelfTestJobDoc( const OtaFileContext_t * pFileContext ) if( errVersionCheck == OtaErrNone ) { LogInfo( ( "Image version is valid: Begin testing file: File ID=%d", - otaAgent.serverFileID ) ); + ( int ) otaAgent.serverFileID ) ); /* The running firmware version is newer than the firmware that performed * the update so this means we're ready to start the self test phase. @@ -2369,7 +2369,7 @@ static OtaFileContext_t * parseJobDoc( const JsonDocParam_t * pJsonExpectedParam { err = OtaJobParseErrBadModelInitParams; LogWarn( ( "OTA size (%u blocks) greater than can be tracked. Increase `OTA_MAX_BLOCK_BITMAP_SIZE`", - pFileContext->blocksRemaining ) ); + ( unsigned ) pFileContext->blocksRemaining ) ); } else { @@ -2539,7 +2539,7 @@ static bool validateDataBlock( const OtaFileContext_t * pFileContext, { ret = true; LogDebug( ( "Received valid file block: Block index=%u, Size=%u", - blockIndex, blockSize ) ); + ( unsigned ) blockIndex, ( unsigned ) blockSize ) ); } return ret; @@ -2575,7 +2575,7 @@ static IngestResult_t processDataBlock( OtaFileContext_t * pFileContext, { LogError( ( "Block range check failed: Received a block outside of the expected range: " "Block index=%u, Block size=%u", - uBlockIndex, uBlockSize ) ); + ( unsigned ) uBlockIndex, ( unsigned ) uBlockSize ) ); eIngestResult = IngestResultBlockOutOfRange; } } @@ -2591,9 +2591,9 @@ static IngestResult_t processDataBlock( OtaFileContext_t * pFileContext, if( ( ( pFileContext->pRxBlockBitmap[ byte ] ) & bitMask ) == 0U ) { LogWarn( ( "Received a duplicate block: Block index=%u, Block size=%u", - uBlockIndex, uBlockSize ) ); + ( unsigned ) uBlockIndex, ( unsigned ) uBlockSize ) ); LogDebug( ( "Number of blocks remaining: %u", - pFileContext->blocksRemaining ) ); + ( unsigned ) pFileContext->blocksRemaining ) ); eIngestResult = IngestResultDuplicate_Continue; *pCloseResult = OTA_PAL_COMBINE_ERR( OtaPalSuccess, 0 ); /* This is a success path. */ @@ -2617,7 +2617,7 @@ static IngestResult_t processDataBlock( OtaFileContext_t * pFileContext, { eIngestResult = IngestResultWriteBlockFailed; LogError( ( "Failed to ingest received block: iBytesWritten: %d, IngestResult_t=%d", - iBytesWritten, eIngestResult ) ); + ( int ) iBytesWritten, ( int ) eIngestResult ) ); } } @@ -2751,7 +2751,7 @@ static IngestResult_t ingestDataBlockCleanup( OtaFileContext_t * pFileContext, else { LogError( ( "Failed to close the OTA file: Error=(%s:0x%06x)", - OTA_PalStatus_strerror( otaPalMainErr ), otaPalSubErr ) ); + OTA_PalStatus_strerror( otaPalMainErr ), ( unsigned ) otaPalSubErr ) ); if( otaPalMainErr == ( uint32_t ) OtaPalSignatureCheckFailed ) { @@ -2820,13 +2820,13 @@ static IngestResult_t ingestDataBlock( OtaFileContext_t * pFileContext, if( eIngestResult == IngestResultAccepted_Continue ) { LogDebug( ( "Ingested received block %u", - uBlockIndex ) ); + ( unsigned ) uBlockIndex ) ); /* Print progress every 32 blocks received */ if( ( pFileContext->blocksRemaining & 0x1Fu ) == 0u ) { LogInfo( ( "Number of blocks remaining: %u", - pFileContext->blocksRemaining ) ); + ( unsigned ) pFileContext->blocksRemaining ) ); } } @@ -3040,7 +3040,7 @@ static void callOtaCallback( OtaJobEvent_t eEvent, } else { - LogWarn( ( "OtaAppCallback is not registered, event=%d", eEvent ) ); + LogWarn( ( "OtaAppCallback is not registered, event=%d", ( int ) eEvent ) ); } } @@ -3240,7 +3240,7 @@ static void resetEventQueue( void ) while( otaAgent.pOtaInterface->os.event.recv( NULL, &eventMsg, 0 ) == OtaOsSuccess ) { - LogWarn( ( "Event(%d) is dropped.", eventMsg.eventId ) ); + LogWarn( ( "Event(%d) is dropped.", ( int ) eventMsg.eventId ) ); /* Call handleUnexpectedEvents to notify user to release resources if necessary. */ handleUnexpectedEvents( &eventMsg ); @@ -3366,7 +3366,7 @@ OtaState_t OTA_Shutdown( uint32_t ticksToWait, LogDebug( ( "Number of ticks to idle while the OTA Agent shuts down: " "ticks=%u", - ticks ) ); + ( unsigned ) ticks ) ); if( ( otaAgent.state != OtaAgentStateStopped ) && ( otaAgent.state != OtaAgentStateShuttingDown ) ) /* LCOV_EXCL_BR_LINE */ { @@ -3403,7 +3403,7 @@ OtaState_t OTA_Shutdown( uint32_t ticksToWait, LogDebug( ( "Number of ticks remaining when OTA Agent shutdown: " "ticks=%u", - ticks ) ); + ( unsigned ) ticks ) ); return otaAgent.state; } diff --git a/source/ota_cbor.c b/source/ota_cbor.c index 754adb748..28abec357 100644 --- a/source/ota_cbor.c +++ b/source/ota_cbor.c @@ -132,7 +132,7 @@ bool OTA_CBOR_Decode_GetStreamResponseMessage( const uint8_t * pMessageBuffer, if( CborNoError == cborResult ) { cborResult = cbor_value_get_int( &cborValue, - ( int32_t * ) pFileId ); + ( int * ) pFileId ); } /* Find the block ID. */ @@ -151,7 +151,7 @@ bool OTA_CBOR_Decode_GetStreamResponseMessage( const uint8_t * pMessageBuffer, if( CborNoError == cborResult ) { cborResult = cbor_value_get_int( &cborValue, - ( int32_t * ) pBlockId ); + ( int * ) pBlockId ); } /* Find the block size. */ @@ -170,7 +170,7 @@ bool OTA_CBOR_Decode_GetStreamResponseMessage( const uint8_t * pMessageBuffer, if( CborNoError == cborResult ) { cborResult = cbor_value_get_int( &cborValue, - ( int32_t * ) pBlockSize ); + ( int * ) pBlockSize ); } /* Find the payload bytes. */ diff --git a/source/ota_mqtt.c b/source/ota_mqtt.c index 798b6dc41..d2fc7b3bc 100644 --- a/source/ota_mqtt.c +++ b/source/ota_mqtt.c @@ -913,7 +913,7 @@ OtaErr_t requestJob_Mqtt( const OtaAgentContext_t * pAgentCtx ) if( mqttStatus == OtaMqttSuccess ) { - LogDebug( ( "MQTT job request number: counter=%u", reqCounter ) ); + LogDebug( ( "MQTT job request number: counter=%u", ( unsigned ) reqCounter ) ); /* The buffer is static and the size is calculated to fit. */ assert( ( msgSize > 0U ) && ( msgSize < sizeof( pMsg ) ) ); diff --git a/source/portable/os/ota_os_freertos.c b/source/portable/os/ota_os_freertos.c index 30b648f7d..1206caaca 100644 --- a/source/portable/os/ota_os_freertos.c +++ b/source/portable/os/ota_os_freertos.c @@ -81,8 +81,8 @@ OtaOsStatus_t OtaInitEvent_FreeRTOS( OtaEventContext_t * pEventCtx ) LogError( ( "Failed to create OTA Event Queue: " "xQueueCreateStatic returned error: " - "OtaOsStatus_t=%i ", - otaOsStatus ) ); + "OtaOsStatus_t=%d ", + ( int ) otaOsStatus ) ); } else { @@ -115,8 +115,8 @@ OtaOsStatus_t OtaSendEvent_FreeRTOS( OtaEventContext_t * pEventCtx, LogError( ( "Failed to send event to OTA Event Queue: " "xQueueSendToBack returned error: " - "OtaOsStatus_t=%i ", - otaOsStatus ) ); + "OtaOsStatus_t=%d ", + ( int ) otaOsStatus ) ); } return otaOsStatus; @@ -148,8 +148,8 @@ OtaOsStatus_t OtaReceiveEvent_FreeRTOS( OtaEventContext_t * pEventCtx, LogDebug( ( "Failed to receive event or timeout from OTA Event Queue: " "xQueueReceive returned error: " - "OtaOsStatus_t=%i ", - otaOsStatus ) ); + "OtaOsStatus_t=%d ", + ( int ) otaOsStatus ) ); } return otaOsStatus; @@ -177,7 +177,7 @@ static void selfTestTimerCallback( TimerHandle_t T ) ( void ) T; LogDebug( ( "Self-test expired within %ums", - otaconfigSELF_TEST_RESPONSE_WAIT_MS ) ); + ( unsigned ) otaconfigSELF_TEST_RESPONSE_WAIT_MS ) ); if( otaTimerCallbackPtr != NULL ) { @@ -194,7 +194,7 @@ static void requestTimerCallback( TimerHandle_t T ) ( void ) T; LogDebug( ( "Request timer expired in %ums", - otaconfigFILE_REQUEST_WAIT_MS ) ); + ( unsigned ) otaconfigFILE_REQUEST_WAIT_MS ) ); if( otaTimerCallbackPtr != NULL ) { @@ -236,8 +236,8 @@ OtaOsStatus_t OtaStartTimer_FreeRTOS( OtaTimerId_t otaTimerId, LogError( ( "Failed to create OTA timer: " "timerCreate returned NULL " - "OtaOsStatus_t=%i ", - otaOsStatus ) ); + "OtaOsStatus_t=%d ", + ( int ) otaOsStatus ) ); } else { @@ -274,8 +274,8 @@ OtaOsStatus_t OtaStartTimer_FreeRTOS( OtaTimerId_t otaTimerId, LogError( ( "Failed to set OTA timer timeout: " "timer_settime returned error: " - "OtaOsStatus_t=%i ", - otaOsStatus ) ); + "OtaOsStatus_t=%d ", + ( int ) otaOsStatus ) ); } } @@ -294,21 +294,21 @@ OtaOsStatus_t OtaStopTimer_FreeRTOS( OtaTimerId_t otaTimerId ) if( retVal == pdTRUE ) { - LogDebug( ( "OTA Timer Stopped for Timerid=%i.", otaTimerId ) ); + LogDebug( ( "OTA Timer Stopped for Timerid=%d.", ( int ) otaTimerId ) ); } else { LogError( ( "Failed to stop OTA timer: " "timer_settime returned error: " - "OtaOsStatus_t=%i ", - otaOsStatus ) ); + "OtaOsStatus_t=%d ", + ( int ) otaOsStatus ) ); otaOsStatus = OtaOsTimerStopFailed; } } else { - LogWarn( ( "OTA Timer handle NULL for Timerid=%i, can't stop.", otaTimerId ) ); + LogWarn( ( "OTA Timer handle NULL for Timerid=%d, can't stop.", ( int ) otaTimerId ) ); } return otaOsStatus; @@ -335,15 +335,15 @@ OtaOsStatus_t OtaDeleteTimer_FreeRTOS( OtaTimerId_t otaTimerId ) LogError( ( "Failed to delete OTA timer: " "timer_delete returned error: " - "OtaOsStatus_t=%i ", - otaOsStatus ) ); + "OtaOsStatus_t=%d ", + ( int ) otaOsStatus ) ); } } else { otaOsStatus = OtaOsTimerDeleteFailed; - LogWarn( ( "OTA Timer handle NULL for Timerid=%i, can't delete.", otaTimerId ) ); + LogWarn( ( "OTA Timer handle NULL for Timerid=%d, can't delete.", ( int ) otaTimerId ) ); } return otaOsStatus; diff --git a/source/portable/os/ota_os_posix.c b/source/portable/os/ota_os_posix.c index 8af0728f1..c8c50d23a 100644 --- a/source/portable/os/ota_os_posix.c +++ b/source/portable/os/ota_os_posix.c @@ -120,9 +120,9 @@ OtaOsStatus_t Posix_OtaInitEvent( OtaEventContext_t * pEventCtx ) LogError( ( "Failed to create OTA Event Queue: " "mq_open returned error: " - "OtaOsStatus_t=%i " + "OtaOsStatus_t=%d " ",errno=%s", - otaOsStatus, + ( int ) otaOsStatus, strerror( errno ) ) ); } else @@ -149,7 +149,7 @@ OtaOsStatus_t Posix_OtaSendEvent( OtaEventContext_t * pEventCtx, LogError( ( "Invalid input, Posix_OtaSendEvent supports timeout < INT_MAX, " "timeout = %u", - timeout ) ); + ( unsigned ) timeout ) ); } if( otaOsStatus == OtaOsSuccess ) @@ -165,7 +165,7 @@ OtaOsStatus_t Posix_OtaSendEvent( OtaEventContext_t * pEventCtx, "Posix_OtaSendEvent returned error: " "OtaOsStatus_t=%i " ",errno=%s ", - otaOsStatus, + ( int ) otaOsStatus, strerror( errno ) ) ); } } @@ -209,7 +209,7 @@ OtaOsStatus_t Posix_OtaReceiveEvent( OtaEventContext_t * pEventCtx, LogError( ( "Invalid input, Posix_OtaReceiveEvent supports timeout < INT_MAX, " "timeout = %u", - timeout ) ); + ( unsigned ) timeout ) ); } if( otaOsStatus == OtaOsSuccess ) @@ -225,7 +225,7 @@ OtaOsStatus_t Posix_OtaReceiveEvent( OtaEventContext_t * pEventCtx, "Posix_OtaReceiveEvent returned error: " "OtaOsStatus_t=%i " ",errno=%s ", - otaOsStatus, + ( int ) otaOsStatus, strerror( errno ) ) ); } } @@ -270,7 +270,7 @@ OtaOsStatus_t Posix_OtaDeinitEvent( OtaEventContext_t * pEventCtx ) "mq_unlink returned error: " "OtaOsStatus_t=%i " ",errno=%s", - otaOsStatus, + ( int ) otaOsStatus, strerror( errno ) ) ); } else @@ -286,7 +286,7 @@ static void selfTestTimerCallback( union sigval arg ) ( void ) arg; LogDebug( ( "Self-test expired within %ums", - otaconfigSELF_TEST_RESPONSE_WAIT_MS ) ); + ( unsigned ) otaconfigSELF_TEST_RESPONSE_WAIT_MS ) ); if( otaTimerCallbackPtr != NULL ) { @@ -303,7 +303,7 @@ static void requestTimerCallback( union sigval arg ) ( void ) arg; LogDebug( ( "Request timer expired in %ums", - otaconfigFILE_REQUEST_WAIT_MS ) ); + ( unsigned ) otaconfigFILE_REQUEST_WAIT_MS ) ); if( otaTimerCallbackPtr != NULL ) { @@ -378,12 +378,12 @@ static OtaOsStatus_t pollAndSend( const void * buff, { LogError( ( "Failed to send event to OTA Event Queue: " "mq_send timeout: " - "OtaOsStatus_t=%i" + "OtaOsStatus_t=%d" ", errno=%s" ", revents=%x", - otaOsStatus, + ( int ) otaOsStatus, strerror( errno ), - fds.revents ) ); + ( unsigned ) fds.revents ) ); } return otaOsStatus; @@ -420,12 +420,12 @@ static OtaOsStatus_t pollAndReceive( char * buff, { LogError( ( "Failed to receive event to OTA Event Queue: " "mq_receive timeout: " - "OtaOsStatus_t=%i" + "OtaOsStatus_t=%d" ", errno=%s" ", revents=%x", - otaOsStatus, + ( int ) otaOsStatus, strerror( errno ), - fds.revents ) ); + ( unsigned ) fds.revents ) ); } else { @@ -474,9 +474,9 @@ OtaOsStatus_t Posix_OtaStartTimer( OtaTimerId_t otaTimerId, LogError( ( "Failed to create OTA timer: " "timer_create returned error: " - "OtaOsStatus_t=%i " + "OtaOsStatus_t=%d " ",errno=%s", - otaOsStatus, + ( int ) otaOsStatus, strerror( errno ) ) ); } else @@ -496,9 +496,9 @@ OtaOsStatus_t Posix_OtaStartTimer( OtaTimerId_t otaTimerId, LogError( ( "Failed to set OTA timer timeout: " "timer_settime returned error: " - "OtaOsStatus_t=%i " + "OtaOsStatus_t=%d " ",errno=%s", - otaOsStatus, + ( int ) otaOsStatus, strerror( errno ) ) ); } else @@ -534,19 +534,19 @@ OtaOsStatus_t Posix_OtaStopTimer( OtaTimerId_t otaTimerId ) LogError( ( "Failed to stop OTA timer: " "timer_settime returned error: " - "OtaOsStatus_t=%i " + "OtaOsStatus_t=%d " ",errno=%s", - otaOsStatus, + ( int ) otaOsStatus, strerror( errno ) ) ); } else { - LogDebug( ( "OTA Timer Stopped for Timerid=%i.", otaTimerId ) ); + LogDebug( ( "OTA Timer Stopped for Timerid=%d.", ( int ) otaTimerId ) ); } } else { - LogDebug( ( "OTA Timer handle NULL for Timerid=%i, can't stop.", otaTimerId ) ); + LogDebug( ( "OTA Timer handle NULL for Timerid=%d, can't stop.", ( int ) otaTimerId ) ); otaOsStatus = OtaOsTimerStopFailed; } @@ -569,9 +569,9 @@ OtaOsStatus_t Posix_OtaDeleteTimer( OtaTimerId_t otaTimerId ) LogError( ( "Failed to delete OTA timer: " "timer_delete returned error: " - "OtaOsStatus_t=%i " + "OtaOsStatus_t=%d " ",errno=%s", - otaOsStatus, + ( int ) otaOsStatus, strerror( errno ) ) ); } else @@ -583,7 +583,7 @@ OtaOsStatus_t Posix_OtaDeleteTimer( OtaTimerId_t otaTimerId ) } else { - LogWarn( ( "OTA Timer handle NULL for Timerid=%i, can't delete.", otaTimerId ) ); + LogWarn( ( "OTA Timer handle NULL for Timerid=%d, can't delete.", ( int ) otaTimerId ) ); otaOsStatus = OtaOsTimerDeleteFailed; } From 5f0fecb09453bf91cd396d3c4bbb71b0cca869b8 Mon Sep 17 00:00:00 2001 From: Patrick Cook <114708437+cookpate@users.noreply.github.com> Date: Tue, 23 May 2023 13:46:37 -0700 Subject: [PATCH 18/25] Add public config option for OTA bitmap size (#489) Overrides an existing private option. --- source/include/ota_config_defaults.h | 10 ++++++++++ source/include/ota_private.h | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/source/include/ota_config_defaults.h b/source/include/ota_config_defaults.h index 2b833af3b..3b5e2e598 100644 --- a/source/include/ota_config_defaults.h +++ b/source/include/ota_config_defaults.h @@ -98,6 +98,16 @@ #define otaconfigLOG2_FILE_BLOCK_SIZE 12UL #endif +/** + * @brief number of blocks to statically track in an OTA. + * + * Possible values: Any unsigned integer.
+ * Default value: '128' + */ +#ifndef otaconfigMAX_BLOCK_BITMAP_SIZE + #define otaconfigMAX_BLOCK_BITMAP_SIZE 128U +#endif + /** * @brief Milliseconds to wait for the self test phase to succeed before we * force reset. diff --git a/source/include/ota_private.h b/source/include/ota_private.h index 27cf93a5c..8458d61da 100644 --- a/source/include/ota_private.h +++ b/source/include/ota_private.h @@ -63,7 +63,7 @@ #define BITS_PER_BYTE ( ( uint32_t ) 1U << LOG2_BITS_PER_BYTE ) /*!< @brief Number of bits in a byte. This is used by the block bitmap implementation. */ #define OTA_FILE_BLOCK_SIZE ( ( uint32_t ) 1U << otaconfigLOG2_FILE_BLOCK_SIZE ) /*!< @brief Data section size of the file data block message (excludes the header). */ #define OTA_MAX_FILES 1U /*!< @brief [MUST REMAIN 1! Future support.] Maximum number of concurrent OTA files. */ -#define OTA_MAX_BLOCK_BITMAP_SIZE 128U /*!< @brief Max allowed number of bytes to track all blocks of an OTA file. Adjust block size if more range is needed. */ +#define OTA_MAX_BLOCK_BITMAP_SIZE otaconfigMAX_BLOCK_BITMAP_SIZE /*!< @brief Max allowed number of bytes to track all blocks of an OTA file. Adjust block size if more range is needed. */ #define OTA_REQUEST_MSG_MAX_SIZE ( 3U * OTA_MAX_BLOCK_BITMAP_SIZE ) /*!< @brief Maximum size of the message */ #define OTA_REQUEST_URL_MAX_SIZE ( 1500 ) /*!< @brief Maximum size of the S3 presigned URL */ #define OTA_ERASED_BLOCKS_VAL 0xffU /*!< @brief The starting state of a group of erased blocks in the Rx block bitmap. */ From 406415ef38d9f0fbabd69735623008fd090043b3 Mon Sep 17 00:00:00 2001 From: Kody Stribrny <89810515+kstribrnAmzn@users.noreply.github.com> Date: Wed, 24 May 2023 09:04:40 -0700 Subject: [PATCH 19/25] Empty job fix (#487) fix: OTA agent doesn't log error on empty job document Updates the OTA agent to not log error on an empty job document which is common upon bootup. Reference - https://github.com/aws/ota-for-aws-iot-embedded-sdk/issues/482 --------- Co-authored-by: Ubuntu Co-authored-by: Soren Ptak --- .github/workflows/ci.yml | 1 + README.md | 2 +- docs/doxygen/include/size_table.md | 4 +- source/include/ota.h | 3 +- source/include/ota_private.h | 3 +- source/ota.c | 141 +++++++++++------- .../getFileContextFromJob_harness.c | 23 +-- .../proofs/parseJobDoc/parseJobDoc_harness.c | 15 +- .../processJobHandler_harness.c | 2 +- .../verifyRequiredParamsExtracted_harness.c | 2 +- test/unit-test/ota_utest.c | 38 ++++- tools/lexicon.txt | 2 + 12 files changed, 153 insertions(+), 83 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 48e006a2e..5acbc121b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,6 +33,7 @@ jobs: uses: FreeRTOS/CI-CD-Github-Actions/complexity@main with: path: ./ + horrid_threshold: 10 unittest: runs-on: ubuntu-latest diff --git a/README.md b/README.md index 9b7e54062..245285d33 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ The OTA library enables you to manage the notification of a newly available update, download the update, and perform cryptographic verification of the firmware update. Using the library, you can logically separate firmware updates from the application running on your devices. The OTA library can share a network connection with the application, saving memory in resource-constrained devices. In addition, the OTA library lets you define application-specific logic for testing, committing, or rolling back a firmware update. The library supports different application protocols like Message Queuing Telemetry Transport (MQTT) and Hypertext Transfer Protocol (HTTP), and provides various configuration options you can fine tune depending on network type and conditions. This library is distributed under the [MIT Open Source License](LICENSE). -This library has gone through code quality checks including verification that no function has a [GNU Complexity](https://www.gnu.org/software/complexity/manual/complexity.html) score over 8. This library has also undergone static code analysis from [Coverity static analysis](https://scan.coverity.com/). +This library has gone through code quality checks including verification that no function has a [GNU Complexity](https://www.gnu.org/software/complexity/manual/complexity.html) score over 10. This library has also undergone static code analysis from [Coverity static analysis](https://scan.coverity.com/). See memory requirements for this library [here](./docs/doxygen/include/size_table.md). diff --git a/docs/doxygen/include/size_table.md b/docs/doxygen/include/size_table.md index cfd59d4da..094448b07 100644 --- a/docs/doxygen/include/size_table.md +++ b/docs/doxygen/include/size_table.md @@ -9,7 +9,7 @@ ota.c -
8.5K
+
8.6K
7.7K
@@ -39,7 +39,7 @@ Total estimates -
12.7K
+
12.8K
11.6K
diff --git a/source/include/ota.h b/source/include/ota.h index cf4f7b36d..9e026222c 100644 --- a/source/include/ota.h +++ b/source/include/ota.h @@ -101,7 +101,8 @@ typedef enum OtaErr OtaErrFailedToEncodeCbor, /*!< @brief Failed to encode CBOR object for requesting data block from streaming service. */ OtaErrFailedToDecodeCbor, /*!< @brief Failed to decode CBOR object from streaming service response. */ OtaErrActivateFailed, /*!< @brief Failed to activate the new image. */ - OtaErrFileSizeOverflow /*!< @brief Firmware file size greater than the max allowed size. */ + OtaErrFileSizeOverflow, /*!< @brief Firmware file size greater than the max allowed size. */ + OtaErrEmptyJobDocument /*!< @brief Empty job document found - this happens on start up. */ } OtaErr_t; /** diff --git a/source/include/ota_private.h b/source/include/ota_private.h index 8458d61da..5640238b2 100644 --- a/source/include/ota_private.h +++ b/source/include/ota_private.h @@ -206,7 +206,8 @@ typedef enum DocParseErrTooManyParams, /*!< The document model has more parameters than we can handle. */ DocParseErrParamKeyNotInModel, /*!< The document model does not include the specified parameter key. */ DocParseErrInvalidModelParamType, /*!< The document model specified an invalid parameter type. */ - DocParseErrInvalidToken /*!< The Jasmine token was invalid, producing a NULL pointer. */ + DocParseErrInvalidToken, /*!< The Jasmine token was invalid, producing a NULL pointer. */ + DocParseErrEmptyJobDoc /*!< The document is valid but does not contain all necessary fields. */ } DocParseErr_t; /** diff --git a/source/ota.c b/source/ota.c index 772800bde..ee8cc5e23 100644 --- a/source/ota.c +++ b/source/ota.c @@ -77,6 +77,15 @@ */ #define U16_OFFSET( type, member ) ( ( uint16_t ) offsetof( type, member ) ) +/** + * @brief Resulting bitmap value from empty OTA job document. + * + * Empty OTA job documents will contain only the ClientToken + * (bit 0) and Timestamp (bit 1) values. + * Value is determined by the `otaJobDocModelParamStructure` mapping. + */ +#define EMPTY_JOB_DOC_PARAMETER_BITMAP 3U + /** * @brief OTA event handler definition. */ @@ -161,10 +170,12 @@ static IngestResult_t ingestDataBlockCleanup( OtaFileContext_t * pFileContext, * * @param[in] pRawMsg Raw job document. * @param[in] messageLength length of document. - * @return OtaFileContext_t* Information of file to be streamed. + * @param[out] pFileContext Information of file to be streamed. + * @return OtaErr_t any OTA error while determining file context */ -static OtaFileContext_t * getFileContextFromJob( const char * pRawMsg, - uint32_t messageLength ); +static OtaErr_t getFileContextFromJob( const char * pRawMsg, + uint32_t messageLength, + OtaFileContext_t ** pFileContext ); /** * @brief Validate JSON document and the DocModel. @@ -291,13 +302,15 @@ static OtaJobParseErr_t validateAndStartJob( OtaFileContext_t * pFileContext, * @param[in] pJson JSON job document. * @param[in] messageLength Length of the job document. * @param[in] pUpdateJob Represents if the job is accepted. - * @return OtaFileContext_t* File context to store file information. + * @param[out] pFileContext File context to store file information. + * @return DocParseErr_t found when parsing the document */ -static OtaFileContext_t * parseJobDoc( const JsonDocParam_t * pJsonExpectedParams, - uint16_t numJobParams, - const char * pJson, - uint32_t messageLength, - bool * pUpdateJob ); +static DocParseErr_t parseJobDoc( const JsonDocParam_t * pJsonExpectedParams, + uint16_t numJobParams, + const char * pJson, + uint32_t messageLength, + bool * pUpdateJob, + OtaFileContext_t ** pFileContext ); /** * @brief Validate block index and block size of the data block. @@ -993,13 +1006,14 @@ static OtaErr_t processValidFileContext( void ) static OtaErr_t processJobHandler( const OtaEventData_t * pEventData ) { OtaErr_t retVal = OtaErrNone; - const OtaFileContext_t * pOtaFileContext = NULL; + OtaFileContext_t * pOtaFileContext = NULL; /* * Parse the job document and update file information in the file context. */ - pOtaFileContext = getFileContextFromJob( ( const char * ) pEventData->data, - pEventData->dataLength ); + retVal = getFileContextFromJob( ( const char * ) pEventData->data, + pEventData->dataLength, + &pOtaFileContext ); /* * A null context here could either mean we didn't receive a valid job or it could @@ -1009,7 +1023,10 @@ static OtaErr_t processJobHandler( const OtaEventData_t * pEventData ) */ if( pOtaFileContext == NULL ) { - retVal = processNullFileContext(); + if( retVal != OtaErrEmptyJobDocument ) + { + retVal = processNullFileContext(); + } } else { @@ -1778,6 +1795,13 @@ static DocParseErr_t verifyRequiredParamsExtracted( const JsonDocParam_t * pMode err = DocParseErrMalformedDoc; } + /* The original error will be document malformed because if missing parameters. If only client token and + * timestamp are set, then this is an empty job document. */ + if( pDocModel->paramsReceivedBitmap == EMPTY_JOB_DOC_PARAMETER_BITMAP ) + { + err = DocParseErrEmptyJobDoc; + } + return err; } @@ -1854,9 +1878,9 @@ static DocParseErr_t parseJSONbyModel( const char * pJson, if( err != DocParseErrNone ) { - LogDebug( ( "Failed to parse JSON document as AFR_OTA job: " - "DocParseErr_t=%d", - ( int ) err ) ); + LogWarn( ( "Failed to parse JSON document as AFR_OTA job: " + "DocParseErr_t=%d", + ( int ) err ) ); } return err; @@ -2342,15 +2366,15 @@ static void handleJobParsingError( const OtaFileContext_t * pFileContext, * OTA context if valid otherwise return NULL. */ -static OtaFileContext_t * parseJobDoc( const JsonDocParam_t * pJsonExpectedParams, - uint16_t numJobParams, - const char * pJson, - uint32_t messageLength, - bool * pUpdateJob ) +static DocParseErr_t parseJobDoc( const JsonDocParam_t * pJsonExpectedParams, + uint16_t numJobParams, + const char * pJson, + uint32_t messageLength, + bool * pUpdateJob, + OtaFileContext_t ** pFinalFile ) { OtaJobParseErr_t err = OtaJobParseErrUnknown; DocParseErr_t parseError = DocParseErrNone; - OtaFileContext_t * pFinalFile = NULL; OtaFileContext_t * pFileContext = &( otaAgent.fileContext ); JsonDocModel_t otaJobDocModel; OtaJobDocument_t jobDoc = { 0 }; @@ -2377,7 +2401,7 @@ static OtaFileContext_t * parseJobDoc( const JsonDocParam_t * pJsonExpectedParam if( parseError == DocParseErrNone ) { - err = validateAndStartJob( pFileContext, &pFinalFile, pUpdateJob ); + err = validateAndStartJob( pFileContext, pFinalFile, pUpdateJob ); } else { @@ -2407,71 +2431,78 @@ static OtaFileContext_t * parseJobDoc( const JsonDocParam_t * pJsonExpectedParam handleJobParsingError( pFileContext, err ); } - /* Return pointer to populated file context or NULL if it failed. */ - return pFinalFile; + /* Return parsing error */ + return parseError; } /* Called to update the filecontext structure from the job. */ -static OtaFileContext_t * getFileContextFromJob( const char * pRawMsg, - uint32_t messageLength ) +static OtaErr_t getFileContextFromJob( const char * pRawMsg, + uint32_t messageLength, + OtaFileContext_t ** pFileContext ) { uint32_t index; - uint32_t numBlocks; /* How many data pages are in the expected update image. */ - uint32_t bitmapLen; /* Length of the file block bitmap in bytes. */ - OtaFileContext_t * pUpdateFile; /* Pointer to an OTA update context. */ + uint32_t numBlocks; /* How many data pages are in the expected update image. */ + uint32_t bitmapLen; /* Length of the file block bitmap in bytes. */ OtaErr_t err = OtaErrNone; + DocParseErr_t parseErr = DocParseErrNone; OtaPalStatus_t palStatus; bool updateJob = false; /* Populate an OTA file context from the OTA job document. */ + parseErr = parseJobDoc( otaJobDocModelParamStructure, OTA_NUM_JOB_PARAMS, pRawMsg, messageLength, &updateJob, pFileContext ); - pUpdateFile = parseJobDoc( otaJobDocModelParamStructure, OTA_NUM_JOB_PARAMS, pRawMsg, messageLength, &updateJob ); + if( parseErr == DocParseErrEmptyJobDoc ) + { + /* Return an error type here for the empty job doc. This 'error' be handled by the caller */ + LogInfo( ( "Emtpy job document found" ) ); + err = OtaErrEmptyJobDocument; + } if( updateJob == true ) { LogInfo( ( "Job document for receiving an update received." ) ); } - if( ( pUpdateFile != NULL ) && ( ( pUpdateFile->fileSize ) > ( OTA_MAX_FILE_SIZE ) ) ) + if( ( ( *pFileContext ) != NULL ) && ( ( ( *pFileContext )->fileSize ) > ( OTA_MAX_FILE_SIZE ) ) ) { err = OtaErrFileSizeOverflow; } - if( ( err == OtaErrNone ) && ( updateJob == false ) && ( platformInSelftest() == false ) && ( pUpdateFile != NULL ) ) + if( ( err == OtaErrNone ) && ( updateJob == false ) && ( platformInSelftest() == false ) && ( ( *pFileContext ) != NULL ) ) { /* Calculate how many bytes we need in our bitmap for tracking received blocks. * The below calculation requires power of 2 page sizes. */ - numBlocks = ( pUpdateFile->fileSize + ( OTA_FILE_BLOCK_SIZE - 1U ) ) >> otaconfigLOG2_FILE_BLOCK_SIZE; + numBlocks = ( ( *pFileContext )->fileSize + ( OTA_FILE_BLOCK_SIZE - 1U ) ) >> otaconfigLOG2_FILE_BLOCK_SIZE; bitmapLen = ( numBlocks + ( BITS_PER_BYTE - 1U ) ) >> LOG2_BITS_PER_BYTE; /* This conditional statement has been excluded from the coverage report because one of branches in the * if conditions cannot be reached because it is not possible for the code to have - * pUpdateFile->blockBitmapMaxSize not equal to 0 and pUpdateFile->pRxBlockBitmap equal to NULL. */ + * (*pFileContext)->blockBitmapMaxSize not equal to 0 and (*pFileContext)->pRxBlockBitmap equal to NULL. */ /* LCOV_EXCL_START */ - if( ( pUpdateFile->pRxBlockBitmap != NULL ) && ( pUpdateFile->blockBitmapMaxSize == 0u ) ) + if( ( ( *pFileContext )->pRxBlockBitmap != NULL ) && ( ( *pFileContext )->blockBitmapMaxSize == 0u ) ) { - otaAgent.pOtaInterface->os.mem.free( pUpdateFile->pRxBlockBitmap ); + otaAgent.pOtaInterface->os.mem.free( ( *pFileContext )->pRxBlockBitmap ); } /* LCOV_EXCL_STOP */ - if( pUpdateFile->blockBitmapMaxSize == 0u ) + if( ( *pFileContext )->blockBitmapMaxSize == 0u ) { - pUpdateFile->pRxBlockBitmap = ( uint8_t * ) otaAgent.pOtaInterface->os.mem.malloc( bitmapLen ); + ( *pFileContext )->pRxBlockBitmap = ( uint8_t * ) otaAgent.pOtaInterface->os.mem.malloc( bitmapLen ); } else { - assert( pUpdateFile->pRxBlockBitmap != NULL ); + assert( ( *pFileContext )->pRxBlockBitmap != NULL ); /* This value is checked for NULL using an assert. When building coverity_analysis * asserts are disabled, leading to a violation. */ /* coverity[var_deref_model] */ - ( void ) memset( pUpdateFile->pRxBlockBitmap, 0, pUpdateFile->blockBitmapMaxSize ); + ( void ) memset( ( *pFileContext )->pRxBlockBitmap, 0, ( *pFileContext )->blockBitmapMaxSize ); } - if( pUpdateFile->pRxBlockBitmap != NULL ) + if( ( *pFileContext )->pRxBlockBitmap != NULL ) { /* Mark as used any pages in the bitmap that are out of range, based on the file size. * This keeps us from requesting those pages during retry processing or if using a windowed @@ -2484,38 +2515,38 @@ static OtaFileContext_t * getFileContextFromJob( const char * pRawMsg, uint32_t numOutOfRange = ( bitmapLen * BITS_PER_BYTE ) - numBlocks; /* Set all bits in the bitmap to the erased state (we use 1 for erased just like flash memory). */ - ( void ) memset( pUpdateFile->pRxBlockBitmap, ( int32_t ) OTA_ERASED_BLOCKS_VAL, bitmapLen ); + ( void ) memset( ( *pFileContext )->pRxBlockBitmap, ( int32_t ) OTA_ERASED_BLOCKS_VAL, bitmapLen ); for( index = 0U; index < numOutOfRange; index++ ) { - pUpdateFile->pRxBlockBitmap[ bitmapLen - 1U ] &= ( uint8_t ) ( ( uint8_t ) 0xFFU & ( ~bit ) ); + ( *pFileContext )->pRxBlockBitmap[ bitmapLen - 1U ] &= ( uint8_t ) ( ( uint8_t ) 0xFFU & ( ~bit ) ); bit >>= 1U; } - pUpdateFile->blocksRemaining = numBlocks; /* Initialize our blocks remaining counter. */ + ( *pFileContext )->blocksRemaining = numBlocks; /* Initialize our blocks remaining counter. */ /* Create/Open the OTA file on the file system. */ - palStatus = otaAgent.pOtaInterface->pal.createFile( pUpdateFile ); + palStatus = otaAgent.pOtaInterface->pal.createFile( ( *pFileContext ) ); if( OTA_PAL_MAIN_ERR( palStatus ) != OtaPalSuccess ) { err = setImageStateWithReason( OtaImageStateAborted, palStatus ); - ( void ) otaClose( pUpdateFile ); /* Ignore false result since we're setting the pointer to null on the next line. */ - pUpdateFile = NULL; + ( void ) otaClose( ( *pFileContext ) ); /* Ignore false result since we're setting the pointer to null on the next line. */ + ( *pFileContext ) = NULL; } } } - if( ( err != OtaErrNone ) || ( ( pUpdateFile != NULL ) && ( pUpdateFile->pRxBlockBitmap == NULL ) ) ) + if( ( err != OtaErrNone ) || ( ( ( *pFileContext ) != NULL ) && ( ( *pFileContext )->pRxBlockBitmap == NULL ) ) ) { - ( void ) otaClose( pUpdateFile ); - pUpdateFile = NULL; + ( void ) otaClose( ( *pFileContext ) ); + ( *pFileContext ) = NULL; LogDebug( ( "Failed to parse the file context from the job document: OtaErr_t=%s", OTA_Err_strerror( err ) ) ); } - return pUpdateFile; /* Return the OTA file context. */ + return err; /* Return any error when discovering file context */ } /* @@ -2931,6 +2962,8 @@ static void executeHandler( uint32_t index, { OtaErr_t err = OtaErrNone; + LogWarn( ( "Index: %u. OTA event id: %i", index, ( int ) pEventMsg->eventId ) ); + assert( otaTransitionTable[ index ].handler != NULL ); err = otaTransitionTable[ index ].handler( pEventMsg->pEventData ); @@ -2951,6 +2984,10 @@ static void executeHandler( uint32_t index, */ otaAgent.state = otaTransitionTable[ index ].nextState; } + else if( err == OtaErrEmptyJobDocument ) + { + LogInfo( ( "Empty job docuemnt found for event=[%s]", pOtaEventStrings[ pEventMsg->eventId ] ) ); + } else { LogError( ( "Failed to execute state transition handler: " diff --git a/test/cbmc/proofs/getFileContextFromJob/getFileContextFromJob_harness.c b/test/cbmc/proofs/getFileContextFromJob/getFileContextFromJob_harness.c index caa1b1bed..74e73c91d 100644 --- a/test/cbmc/proofs/getFileContextFromJob/getFileContextFromJob_harness.c +++ b/test/cbmc/proofs/getFileContextFromJob/getFileContextFromJob_harness.c @@ -36,17 +36,20 @@ OtaFileContext_t fileContext; extern OtaAgentContext_t otaAgent; -extern OtaFileContext_t * getFileContextFromJob( const char * pRawMsg, - uint32_t messageLength ); - -OtaFileContext_t * parseJobDoc( const JsonDocParam_t * pJsonExpectedParams, - uint16_t numJobParams, - const char * pJson, - uint32_t messageLength, - bool * pUpdateJob ) +static OtaErr_t getFileContextFromJob( const char * pRawMsg, + uint32_t messageLength, + OtaFileContext_t ** pFileContext ); + +DocParseErr_t parseJobDoc( const JsonDocParam_t * pJsonExpectedParams, + uint16_t numJobParams, + const char * pJson, + uint32_t messageLength, + bool * pUpdateJob, + OtaFileContext_t ** pFileContext ) { uint32_t fileSize; bool update; + DocParseErr_t parseError = DocParseErrNone; /* pJsonExpectedParams is expected to be a global structure. pUpdateJob is statically declared in * getFileContextFromJob before passing it to parseJobDoc hence cannot be NULL. */ @@ -76,7 +79,7 @@ OtaFileContext_t * parseJobDoc( const JsonDocParam_t * pJsonExpectedParams, fileContext.blockBitmapMaxSize = 0u; } - return &fileContext; + return parseError; } void getFileContextFromJob_harness() @@ -107,5 +110,5 @@ void getFileContextFromJob_harness() * Agent specifically in receiveAndProcessOTAEvent function.*/ otaAgent.pOtaInterface = &otaInterface; - ( void ) getFileContextFromJob( &rawMsg, messageLength ); + ( void ) getFileContextFromJob( &rawMsg, messageLength, &fileContext ); } diff --git a/test/cbmc/proofs/parseJobDoc/parseJobDoc_harness.c b/test/cbmc/proofs/parseJobDoc/parseJobDoc_harness.c index 445d913bb..23f5c7224 100644 --- a/test/cbmc/proofs/parseJobDoc/parseJobDoc_harness.c +++ b/test/cbmc/proofs/parseJobDoc/parseJobDoc_harness.c @@ -33,12 +33,14 @@ #include "ota_interface_private.h" extern OtaAgentContext_t otaAgent; + extern JsonDocParam_t otaJobDocModelParamStructure[ OTA_NUM_JOB_PARAMS ]; -extern OtaFileContext_t * parseJobDoc( const JsonDocParam_t * pJsonExpectedParams, - uint16_t numJobParams, - const char * pJson, - uint32_t messageLength, - bool * pUpdateJob ); +extern DocParseErr_t parseJobDoc( const JsonDocParam_t * pJsonExpectedParams, + uint16_t numJobParams, + const char * pJson, + uint32_t messageLength, + bool * pUpdateJob, + OtaFileContext_t ** pFileContext ); /* Stub to initialize the json docModel. */ DocParseErr_t initDocModel( JsonDocModel_t * pDocModel, @@ -105,6 +107,7 @@ OtaJobParseErr_t validateAndStartJob( OtaFileContext_t * pFileContext, void parseJobDoc_harness() { + OtaFileContext_t * pFileContext; JsonDocParam_t * pJsonExpectedParams; uint16_t numJobParams; char * pJson; @@ -132,5 +135,5 @@ void parseJobDoc_harness() otaAgent.OtaAppCallback = otaAppCallbackStub; ( void ) parseJobDoc( otaJobDocModelParamStructure, - numJobParams, pJson, messageLength, &updateJob ); + numJobParams, pJson, messageLength, &updateJob, &pFileContext ); } diff --git a/test/cbmc/proofs/processJobHandler/processJobHandler_harness.c b/test/cbmc/proofs/processJobHandler/processJobHandler_harness.c index eedd5c57d..f16edbfbc 100644 --- a/test/cbmc/proofs/processJobHandler/processJobHandler_harness.c +++ b/test/cbmc/proofs/processJobHandler/processJobHandler_harness.c @@ -59,6 +59,6 @@ void processJobHandler_harness() /* processJobHandler returns the values which follow OtaErr_t enum. If it does not, then * there is a problem. */ - __CPROVER_assert( ( err >= OtaErrNone ) && ( err <= OtaErrActivateFailed ), + __CPROVER_assert( ( err >= OtaErrNone ) && ( err <= OtaErrEmptyJobDocument ), "Invalid return value from processJobHandler: Expected a value from OtaErr_t enum." ); } diff --git a/test/cbmc/proofs/verifyRequiredParamsExtracted/verifyRequiredParamsExtracted_harness.c b/test/cbmc/proofs/verifyRequiredParamsExtracted/verifyRequiredParamsExtracted_harness.c index 7d2bda392..d154c1127 100644 --- a/test/cbmc/proofs/verifyRequiredParamsExtracted/verifyRequiredParamsExtracted_harness.c +++ b/test/cbmc/proofs/verifyRequiredParamsExtracted/verifyRequiredParamsExtracted_harness.c @@ -50,6 +50,6 @@ void verifyRequiredParamsExtracted_harness() err = __CPROVER_file_local_ota_c_verifyRequiredParamsExtracted( &modelParams, &docModel ); - __CPROVER_assert( ( err == DocParseErrNone ) || ( err == DocParseErrMalformedDoc ), + __CPROVER_assert( ( DocParseErrEmptyJobDoc == err ) || ( err == DocParseErrNone ) || ( err == DocParseErrMalformedDoc ), "Error: Expected return value to be either DocParseErrNone or DocParseErrMalformedDoc" ); } diff --git a/test/unit-test/ota_utest.c b/test/unit-test/ota_utest.c index 32f3562ca..ae7677155 100644 --- a/test/unit-test/ota_utest.c +++ b/test/unit-test/ota_utest.c @@ -54,6 +54,7 @@ #define OTA_TEST_FILE_NUM_BLOCKS ( OTA_TEST_FILE_SIZE / OTA_FILE_BLOCK_SIZE + 1 ) #define OTA_TEST_DUPLICATE_NUM_BLOCKS 3 #define OTA_TEST_FILE_SIZE_STR "10240" +#define JOB_DOC_EMPTY "{\"clientToken\":\"0:testclient\",\"timestamp\":1602795143}" #define JOB_DOC_A "{\"clientToken\":\"0:testclient\",\"timestamp\":1602795143,\"execution\":{\"jobId\":\"AFR_OTA-testjob20\",\"status\":\"QUEUED\",\"queuedAt\":1602795128,\"lastUpdatedAt\":1602795128,\"versionNumber\":1,\"executionNumber\":1,\"jobDocument\":{\"afr_ota\":{\"protocols\":[\"MQTT\"],\"streamname\":\"AFR_OTA-XYZ\",\"files\":[{\"filepath\":\"/test/demo\",\"filesize\":" OTA_TEST_FILE_SIZE_STR ",\"fileid\":0,\"certfile\":\"test.crt\",\"sig-sha256-ecdsa\":\"MEQCIF2QDvww1G/kpRGZ8FYvQrok1bSZvXjXefRk7sqNcyPTAiB4dvGt8fozIY5NC0vUDJ2MY42ZERYEcrbwA4n6q7vrBg==\"}] }}}}" #define JOB_DOC_B "{\"clientToken\":\"0:testclient\",\"timestamp\":1602795143,\"execution\":{\"jobId\":\"AFR_OTA-testjob21\",\"status\":\"QUEUED\",\"queuedAt\":1602795128,\"lastUpdatedAt\":1602795128,\"versionNumber\":1,\"executionNumber\":1,\"jobDocument\":{\"afr_ota\":{\"protocols\":[\"MQTT\"],\"streamname\":\"AFR_OTA-XYZ\",\"files\":[{\"filepath\":\"/test/demo\",\"filesize\":" OTA_TEST_FILE_SIZE_STR ",\"fileid\":0,\"certfile\":\"test.crt\",\"sig-sha256-ecdsa\":\"MEQCIF2QDvww1G/kpRGZ8FYvQrok1bSZvXjXefRk7sqNcyPTAiB4dvGt8fozIY5NC0vUDJ2MY42ZERYEcrbwA4n6q7vrBg==\"}] }}}}" #define JOB_DOC_SELF_TEST "{\"clientToken\":\"0:testclient\",\"timestamp\":1602795143,\"execution\":{\"jobId\":\"AFR_OTA-testjob20\",\"status\":\"IN_PROGRESS\",\"statusDetails\":{\"self_test\":\"ready\",\"updatedBy\":\"0x1000000\"},\"queuedAt\":1602795128,\"lastUpdatedAt\":1602795128,\"versionNumber\":1,\"executionNumber\":1,\"jobDocument\":{\"afr_ota\":{\"protocols\":[\"MQTT\"],\"streamname\":\"AFR_OTA-XYZ\",\"files\":[{\"filepath\":\"/test/demo\",\"filesize\":" OTA_TEST_FILE_SIZE_STR ",\"fileid\":0,\"certfile\":\"test.crt\",\"sig-sha256-ecdsa\":\"MEQCIF2QDvww1G/kpRGZ8FYvQrok1bSZvXjXefRk7sqNcyPTAiB4dvGt8fozIY5NC0vUDJ2MY42ZERYEcrbwA4n6q7vrBg==\"}] }}}}" @@ -203,11 +204,12 @@ extern DocParseErr_t initDocModel( JsonDocModel_t * pDocModel, uint32_t contextSize, uint16_t numJobParams ); -extern OtaFileContext_t * parseJobDoc( const JsonDocParam_t * pJsonDoc, - uint16_t numJobParams, - const char * pJson, - uint32_t messageLength, - bool * pUpdateJob ); +extern DocParseErr_t parseJobDoc( const JsonDocParam_t * pJsonDoc, + uint16_t numJobParams, + const char * pJson, + uint32_t messageLength, + bool * pUpdateJob, + OtaFileContext_t ** pFileContext ); extern DocParseErr_t validateJSON( const char * pJson, uint32_t messageLength ); @@ -1803,6 +1805,18 @@ void test_OTA_ProcessJobDocumentValidJson() TEST_ASSERT_EQUAL( OtaAgentStateCreatingFile, OTA_GetState() ); } +void test_OTA_ProcessEmptyJobDocumentValidJson() +{ + pOtaJobDoc = JOB_DOC_EMPTY; + + otaGoToState( OtaAgentStateWaitingForJob ); + TEST_ASSERT_EQUAL( OtaAgentStateWaitingForJob, OTA_GetState() ); + + otaReceiveJobDocument(); + receiveAndProcessOtaEvent(); + TEST_ASSERT_EQUAL( OtaAgentStateWaitingForJob, OTA_GetState() ); +} + void test_OTA_ProcessJobDocumentPalCreateFileFail() { otaInterfaces.pal.createFile = mockPalCreateFileForRxAlwaysFail; @@ -2416,6 +2430,8 @@ void test_OTA_ProcessJobDocumentFileIdNotZero() otaReceiveJobDocument(); receiveAndProcessOtaEvent(); + TEST_ASSERT_EQUAL( OtaAgentStateCreatingFile, OTA_GetState() ); + TEST_ASSERT_EQUAL( OtaImageStateTesting, OTA_GetImageState() ); receiveAndProcessOtaEvent(); TEST_ASSERT_EQUAL( OtaAgentStateWaitingForJob, OTA_GetState() ); TEST_ASSERT_EQUAL( OtaImageStateAccepted, OTA_GetImageState() ); @@ -3559,11 +3575,13 @@ void test_OTA_parseJobFailsNullJsonDocument() { OtaFileContext_t * pContext = NULL; bool updateJob = false; + DocParseErr_t err; otaInitDefault(); - pContext = parseJobDoc( NULL, 0, JOB_DOC_A, strlen( JOB_DOC_A ), &updateJob ); + err = parseJobDoc( NULL, 0, JOB_DOC_A, strlen( JOB_DOC_A ), &updateJob, &pContext ); TEST_ASSERT_NULL( pContext ); + TEST_ASSERT_EQUAL( DocParseErrNullBodyPointer, err ); TEST_ASSERT_EQUAL( false, updateJob ); } @@ -3571,6 +3589,7 @@ void test_OTA_parseJobFailsMoreBlocksThanBitmap() { OtaFileContext_t * pContext; bool updateJob = false; + DocParseErr_t err; JsonDocParam_t otaCustomJobDocModelParamStructure[ 1 ] = { { OTA_JSON_JOB_ID_KEY, OTA_JOB_PARAM_REQUIRED, U16_OFFSET( OtaFileContext_t, pJobName ), U16_OFFSET( OtaFileContext_t, jobNameMaxSize ), UINT16_MAX }, @@ -3579,9 +3598,10 @@ void test_OTA_parseJobFailsMoreBlocksThanBitmap() /* The document structure has an invalid value for ModelParamType_t. */ otaAgent.fileContext.blocksRemaining = OTA_MAX_BLOCK_BITMAP_SIZE + 1; otaInitDefault(); - pContext = parseJobDoc( otaCustomJobDocModelParamStructure, 1, JOB_DOC_A, strlen( JOB_DOC_A ), &updateJob ); + err = parseJobDoc( otaCustomJobDocModelParamStructure, 1, JOB_DOC_A, strlen( JOB_DOC_A ), &updateJob, &pContext ); TEST_ASSERT_NULL( pContext ); + TEST_ASSERT_EQUAL( DocParseErrNone, err ); TEST_ASSERT_EQUAL( false, updateJob ); } @@ -3589,6 +3609,7 @@ void test_OTA_extractParameterFailInvalidJobDocModel() { OtaFileContext_t * pContext; bool updateJob = false; + DocParseErr_t err; JsonDocParam_t otaCustomJobDocModelParamStructure[ 1 ] = { { OTA_JSON_JOB_ID_KEY, OTA_JOB_PARAM_REQUIRED, U16_OFFSET( OtaFileContext_t, pJobName ), U16_OFFSET( OtaFileContext_t, jobNameMaxSize ), UINT16_MAX }, @@ -3597,9 +3618,10 @@ void test_OTA_extractParameterFailInvalidJobDocModel() /* The document structure has an invalid value for ModelParamType_t. */ otaInitDefault(); - pContext = parseJobDoc( otaCustomJobDocModelParamStructure, 1, JOB_DOC_A, strlen( JOB_DOC_A ), &updateJob ); + err = parseJobDoc( otaCustomJobDocModelParamStructure, 1, JOB_DOC_A, strlen( JOB_DOC_A ), &updateJob, &pContext ); TEST_ASSERT_NULL( pContext ); + TEST_ASSERT_EQUAL( DocParseErrNone, err ); TEST_ASSERT_EQUAL( false, updateJob ); } diff --git a/tools/lexicon.txt b/tools/lexicon.txt index 68b737436..19798e278 100644 --- a/tools/lexicon.txt +++ b/tools/lexicon.txt @@ -135,6 +135,7 @@ dns docmodel docparam docparseerrduplicatesnotallowed +docparseerremptyjobdoc docparseerrfieldtypemismatch docparseerrinvalidmodelparamtype docparseerrinvalidnumchar @@ -419,6 +420,7 @@ otaerragentstopped otaerrcleanupcontrolfailed otaerrcleanupdatafailed otaerrdowngradenotallowed +otaerremptyjobdocument otaerrfailedtodecodecbor otaerrfailedtoencodecbor otaerrfilesizeoverflow From deffbf80a82558f392423f37d180be93cf601797 Mon Sep 17 00:00:00 2001 From: Soren Ptak Date: Mon, 17 Jul 2023 14:46:41 -0700 Subject: [PATCH 20/25] Fixing Whitespace check bug in action.yml (#492) * Fixing a bug that is 2 years old in the ci.yml file related to exclude dirs * Removing trailing spaces --------- --- .github/workflows/ci.yml | 4 +--- CHANGELOG.md | 10 +++++----- MISRA.md | 2 +- test/cbmc/proofs/OTA_Init/Makefile | 2 +- test/cbmc/proofs/OtaStopTimer_FreeRTOS/Makefile | 2 +- test/cbmc/proofs/executeHandler/Makefile | 2 +- test/cbmc/proofs/ingestDataBlock/Makefile | 2 +- test/cbmc/proofs/otaClose/Makefile | 2 +- test/cbmc/proofs/processDataHandler/Makefile | 8 ++++---- test/cbmc/proofs/requestJob_Mqtt/Makefile | 2 +- test/cbmc/proofs/setImageStateWithReason/Makefile | 2 +- test/cbmc/proofs/startHandler/Makefile | 4 ++-- test/cbmc/proofs/verifyActiveJobStatus/Makefile | 4 ++-- tools/lexicon.txt | 2 +- 14 files changed, 23 insertions(+), 25 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5acbc121b..5d87bda4e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -114,9 +114,7 @@ jobs: uses: FreeRTOS/CI-CD-Github-Actions/formatting@main with: path: ./ - exclude-dirs: | - docs - .github + exclude-dirs: docs,.github git-secrets: runs-on: ubuntu-latest diff --git a/CHANGELOG.md b/CHANGELOG.md index b93e28571..4e4579ecc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,17 +18,17 @@ - [#413](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/413) Clear timers in shutdown and suspend ### v3.3.0 (December 2021) - - Added CBMC proofs of all public and private functions in the OTA library. + - Added CBMC proofs of all public and private functions in the OTA library. - [#373](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/373) Updated compiler flag for tinycbor source files - [#407](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/407) Added checks to prevent arithmetic overflows - [#390](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/390) Make OTA file type configurable. - - [#329](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/329) Misc fixes to remove build warnings + - [#329](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/329) Misc fixes to remove build warnings - [#356](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/356) Add type cast to event functions as per POSIX spec - + ### v3.2.0 (November 2021) - - [#275](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/276) Updated the doxygen version from 1.8.20 to 1.9.2 + - [#275](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/276) Updated the doxygen version from 1.8.20 to 1.9.2 - [#236](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/236) Added C++ guards - - [#231](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/231) Added checks for http interface functions. + - [#231](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/231) Added checks for http interface functions. ### v3.1.0 (August 2021) - [#232](https://github.com/aws/ota-for-aws-iot-embedded-sdk/pull/232) Add updater version to the status details when job succeeds diff --git a/MISRA.md b/MISRA.md index eb3e6247a..9331845d3 100644 --- a/MISRA.md +++ b/MISRA.md @@ -84,6 +84,6 @@ _Ref 21.3.2_ #### Rule 21.8 _Ref 21.8.1_ -- MISRA C-2012 Rule 21.8 Does not allow the use of some of the functions in stdlib.h. One of the OTA platform +- MISRA C-2012 Rule 21.8 Does not allow the use of some of the functions in stdlib.h. One of the OTA platform abstraction layer interfaces `abort` is flagged for this violation. This is implemented by a platform abstraction layer and always called through the OTA PAL interface. diff --git a/test/cbmc/proofs/OTA_Init/Makefile b/test/cbmc/proofs/OTA_Init/Makefile index f11ebb1cb..f56697584 100644 --- a/test/cbmc/proofs/OTA_Init/Makefile +++ b/test/cbmc/proofs/OTA_Init/Makefile @@ -20,7 +20,7 @@ REMOVE_FUNCTION_BODY += __CPROVER_file_local_ota_c_initializeAppBuffers REMOVE_FUNCTION_BODY += __CPROVER_file_local_ota_c_initializeLocalBuffers REMOVE_FUNCTION_BODY += __CPROVER_file_local_ota_c_resetEventQueue -RESTRICT_FUNCTION_POINTER += OTA_Init.function_pointer_call.1/init +RESTRICT_FUNCTION_POINTER += OTA_Init.function_pointer_call.1/init # If this proof is found to consume huge amounts of RAM, you can set the # EXPENSIVE variable. With new enough versions of the proof tools, this will diff --git a/test/cbmc/proofs/OtaStopTimer_FreeRTOS/Makefile b/test/cbmc/proofs/OtaStopTimer_FreeRTOS/Makefile index cfe5a7464..469295861 100644 --- a/test/cbmc/proofs/OtaStopTimer_FreeRTOS/Makefile +++ b/test/cbmc/proofs/OtaStopTimer_FreeRTOS/Makefile @@ -17,7 +17,7 @@ PROJECT_SOURCES += $(SRCDIR)/source/portable/os/ota_os_freertos.c NONDET_STATIC += "--nondet-static" -REMOVE_FUNCTION_BODIES += +REMOVE_FUNCTION_BODIES += # If this proof is found to consume huge amounts of RAM, you can set the # EXPENSIVE variable. With new enough versions of the proof tools, this will # restrict the number of EXPENSIVE CBMC jobs running at once. See the diff --git a/test/cbmc/proofs/executeHandler/Makefile b/test/cbmc/proofs/executeHandler/Makefile index 6b6e21c18..620347e64 100644 --- a/test/cbmc/proofs/executeHandler/Makefile +++ b/test/cbmc/proofs/executeHandler/Makefile @@ -7,7 +7,7 @@ HARNESS_FILE = $(HARNESS_ENTRY) PROOF_UID = executeHandler_harness INCLUDES += -I$(SRCDIR)/source/dependency/coreJSON/source/include/ -INCLUDES += -I$(SRCDIR)/test/cbmc/include +INCLUDES += -I$(SRCDIR)/test/cbmc/include PROOF_SOURCES += $(PROOFDIR)/$(HARNESS_FILE).c PROJECT_SOURCES += $(SRCDIR)/source/ota.c diff --git a/test/cbmc/proofs/ingestDataBlock/Makefile b/test/cbmc/proofs/ingestDataBlock/Makefile index a1b48db83..820940cf2 100644 --- a/test/cbmc/proofs/ingestDataBlock/Makefile +++ b/test/cbmc/proofs/ingestDataBlock/Makefile @@ -9,7 +9,7 @@ PROOF_UID = ingestDataBlock DEFINES += -Dstatic="" INCLUDES += -I$(SRCDIR)/source/dependency/coreJSON/source/include/ -INCLUDES += -I$(SRCDIR)/test/cbmc/include +INCLUDES += -I$(SRCDIR)/test/cbmc/include PROOF_SOURCES += $(PROOFDIR)/$(HARNESS_FILE).c PROOF_SOURCES += $(SRCDIR)/test/cbmc/source/stubs.c diff --git a/test/cbmc/proofs/otaClose/Makefile b/test/cbmc/proofs/otaClose/Makefile index 22bc98b69..c8c59d208 100644 --- a/test/cbmc/proofs/otaClose/Makefile +++ b/test/cbmc/proofs/otaClose/Makefile @@ -9,7 +9,7 @@ PROOF_UID = otaClose DEFINES += -Dstatic="" INCLUDES += -I$(SRCDIR)/source/dependency/coreJSON/source/include/ -INCLUDES += -I$(SRCDIR)/test/cbmc/include +INCLUDES += -I$(SRCDIR)/test/cbmc/include PROOF_SOURCES += $(SRCDIR)/test/cbmc/source/stubs.c PROOF_SOURCES += $(PROOFDIR)/$(HARNESS_FILE).c diff --git a/test/cbmc/proofs/processDataHandler/Makefile b/test/cbmc/proofs/processDataHandler/Makefile index ad7e237a6..d6fb70d49 100644 --- a/test/cbmc/proofs/processDataHandler/Makefile +++ b/test/cbmc/proofs/processDataHandler/Makefile @@ -20,11 +20,11 @@ REMOVE_FUNCTION_BODY += ingestDataBlock REMOVE_FUNCTION_BODY += dataHandlerCleanup REMOVE_FUNCTION_BODY += OTA_SignalEvent -RESTRICT_FUNCTION_POINTER += processDataHandler.function_pointer_call.1/updateStatus +RESTRICT_FUNCTION_POINTER += processDataHandler.function_pointer_call.1/updateStatus RESTRICT_FUNCTION_POINTER += processDataHandler.function_pointer_call.2/setImageState -RESTRICT_FUNCTION_POINTER += processDataHandler.function_pointer_call.3/updateStatus -RESTRICT_FUNCTION_POINTER += processDataHandler.function_pointer_call.4/updateStatus -RESTRICT_FUNCTION_POINTER += processDataHandler.function_pointer_call.5/start +RESTRICT_FUNCTION_POINTER += processDataHandler.function_pointer_call.3/updateStatus +RESTRICT_FUNCTION_POINTER += processDataHandler.function_pointer_call.4/updateStatus +RESTRICT_FUNCTION_POINTER += processDataHandler.function_pointer_call.5/start RESTRICT_FUNCTION_POINTER += callOtaCallback.function_pointer_call.1/otaAppCallback # If this proof is found to consume huge amounts of RAM, you can set the diff --git a/test/cbmc/proofs/requestJob_Mqtt/Makefile b/test/cbmc/proofs/requestJob_Mqtt/Makefile index 45ba11f0d..0ad91e6c7 100644 --- a/test/cbmc/proofs/requestJob_Mqtt/Makefile +++ b/test/cbmc/proofs/requestJob_Mqtt/Makefile @@ -14,7 +14,7 @@ PROJECT_SOURCES += $(SRCDIR)/source/ota_mqtt.c # into a buffer. This is much higher than the 84 characters of the buffer # as null characters are used after the copied in strin to fill the buffer. UNWINDSET += strncpy.0:220 -# The strnlen function is used when calculating the maximum thingname length +# The strnlen function is used when calculating the maximum thingname length # which can be used to generate the client token. UNWINDSET += strnlen.0:54 diff --git a/test/cbmc/proofs/setImageStateWithReason/Makefile b/test/cbmc/proofs/setImageStateWithReason/Makefile index 27c5e30e8..cb42a48c7 100644 --- a/test/cbmc/proofs/setImageStateWithReason/Makefile +++ b/test/cbmc/proofs/setImageStateWithReason/Makefile @@ -9,7 +9,7 @@ PROOF_UID = setImageStateWithReason_harness DEFINES += -Dstatic="" INCLUDES += -I$(SRCDIR)/source/dependency/coreJSON/source/include/ -INCLUDES += -I$(SRCDIR)/test/cbmc/include +INCLUDES += -I$(SRCDIR)/test/cbmc/include PROOF_SOURCES += $(PROOFDIR)/$(HARNESS_FILE).c diff --git a/test/cbmc/proofs/startHandler/Makefile b/test/cbmc/proofs/startHandler/Makefile index 963dc56f5..266813d13 100644 --- a/test/cbmc/proofs/startHandler/Makefile +++ b/test/cbmc/proofs/startHandler/Makefile @@ -18,8 +18,8 @@ PROJECT_SOURCES += $(SRCDIR)/source/ota.c REMOVE_FUNCTION_BODY += OTA_SignalEvent -RESTRICT_FUNCTION_POINTER += platformInSelftest.function_pointer_call.1/getPlatformImageStateStub -RESTRICT_FUNCTION_POINTER += startHandler.function_pointer_call.1/startTimerStub +RESTRICT_FUNCTION_POINTER += platformInSelftest.function_pointer_call.1/getPlatformImageStateStub +RESTRICT_FUNCTION_POINTER += startHandler.function_pointer_call.1/startTimerStub # If this proof is found to consume huge amounts of RAM, you can set the # EXPENSIVE variable. With new enough versions of the proof tools, this will diff --git a/test/cbmc/proofs/verifyActiveJobStatus/Makefile b/test/cbmc/proofs/verifyActiveJobStatus/Makefile index 0b25ba9be..0a40d82f5 100644 --- a/test/cbmc/proofs/verifyActiveJobStatus/Makefile +++ b/test/cbmc/proofs/verifyActiveJobStatus/Makefile @@ -9,10 +9,10 @@ PROOF_UID = verifyActiveJobStatus DEFINES += -Dstatic="" INCLUDES += -I$(SRCDIR)/source/dependency/coreJSON/source/include/ -INCLUDES += -I$(SRCDIR)/test/cbmc/include +INCLUDES += -I$(SRCDIR)/test/cbmc/include PROOF_SOURCES += $(PROOFDIR)/$(HARNESS_FILE).c -PROOF_SOURCES += $(SRCDIR)/test/cbmc/source/stubs.c +PROOF_SOURCES += $(SRCDIR)/test/cbmc/source/stubs.c PROJECT_SOURCES += $(SRCDIR)/source/ota.c diff --git a/tools/lexicon.txt b/tools/lexicon.txt index 19798e278..67a48b261 100644 --- a/tools/lexicon.txt +++ b/tools/lexicon.txt @@ -300,7 +300,7 @@ jobstatusfailedwithval jobstatusinprogress jobstatusrejected json -jsondoc +jsondoc lastbyte lastupdatedat len From 243786d1aa5db0aca537b24287498c8723beaca4 Mon Sep 17 00:00:00 2001 From: ActoryOu Date: Wed, 9 Aug 2023 09:37:37 +0800 Subject: [PATCH 21/25] Print string with length check (#493) * Print string with length check * Use temp buffer to print debug log --- docs/doxygen/include/size_table.md | 8 ++++---- source/ota.c | 14 +++++++++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/docs/doxygen/include/size_table.md b/docs/doxygen/include/size_table.md index 094448b07..0d92ce7af 100644 --- a/docs/doxygen/include/size_table.md +++ b/docs/doxygen/include/size_table.md @@ -9,8 +9,8 @@ ota.c -
8.6K
-
7.7K
+
8.7K
+
7.8K
ota_interface.c @@ -39,7 +39,7 @@ Total estimates -
12.8K
-
11.6K
+
12.9K
+
11.7K
diff --git a/source/ota.c b/source/ota.c index ee8cc5e23..465e27e46 100644 --- a/source/ota.c +++ b/source/ota.c @@ -1817,8 +1817,20 @@ static DocParseErr_t parseJSONbyModel( const char * pJson, uint16_t paramIndex = 0; const char * pFileParams = NULL; uint32_t fileParamsLength = 0; + static char cJsonBuffer[ OTA_MAX_JSON_STR_LEN ]; - LogDebug( ( "JSON received: %s", pJson ) ); + if( messageLength < OTA_MAX_JSON_STR_LEN - 1 ) + { + memcpy( cJsonBuffer, pJson, messageLength ); + cJsonBuffer[ messageLength + 1 ] = 0; + } + else + { + memcpy( cJsonBuffer, pJson, OTA_MAX_JSON_STR_LEN - 2 ); + cJsonBuffer[ OTA_MAX_JSON_STR_LEN - 1 ] = 0; + } + + LogDebug( ( "JSON received: %s", cJsonBuffer ) ); /* Fetch the model parameters from the DocModel*/ pModelParam = pDocModel->pBodyDef; From f1bcddbbdaa97e3ddd68e1d3407bd81c2d7eef29 Mon Sep 17 00:00:00 2001 From: Soren Ptak Date: Tue, 5 Sep 2023 17:55:33 -0400 Subject: [PATCH 22/25] CI-CD Updates (#496) * Use new version of CI-CD Actions, checkout@v3 instead of checkout@v2 on all jobs * Use cSpell spell check, and use ubuntu-20.04 for formatting check * Add in bot formatting action --- .github/.cSpellWords.txt | 46 + .github/.exclude-urls.txt | 2 + .github/workflows/ci.yml | 90 +- .github/workflows/formatting.yml | 23 + .github/workflows/release.yml | 4 +- MISRA.md | 4 +- README.md | 179 +++- cspell.config.yaml | 31 + docs/doxygen/pages.dox | 4 +- manifest.yml | 30 +- ...aths.cmake => otaDependencyFilePaths.cmake | 0 source/include/ota.h | 2 +- source/include/ota_private.h | 36 +- source/ota.c | 78 +- source/ota_base64.c | 2 +- source/ota_http.c | 4 +- test/CMakeLists.txt | 2 +- test/cbmc/include/FreeRTOSConfig.h | 2 +- test/cbmc/proofs/Free_FreeRTOS/README.md | 2 +- test/cbmc/proofs/Malloc_FreeRTOS/README.md | 2 +- .../proofs/OTA_ActivateNewImage/README.md | 2 +- .../README.md | 2 +- .../README.md | 2 +- test/cbmc/proofs/OTA_CheckForUpdate/README.md | 2 +- test/cbmc/proofs/OTA_Err_strerror/README.md | 2 +- test/cbmc/proofs/OTA_EventProcess/README.md | 2 +- .../proofs/OTA_EventProcessingTask/README.md | 2 +- test/cbmc/proofs/OTA_GetImageState/README.md | 2 +- test/cbmc/proofs/OTA_GetState/README.md | 2 +- test/cbmc/proofs/OTA_GetStatistics/README.md | 2 +- test/cbmc/proofs/OTA_HTTP_strerror/README.md | 2 +- test/cbmc/proofs/OTA_Init/README.md | 2 +- .../proofs/OTA_JobParse_strerror/README.md | 2 +- test/cbmc/proofs/OTA_MQTT_strerror/README.md | 2 +- .../proofs/OTA_OsStatus_strerror/README.md | 2 +- .../proofs/OTA_PalStatus_strerror/README.md | 2 +- test/cbmc/proofs/OTA_Resume/README.md | 2 +- test/cbmc/proofs/OTA_SetImageState/README.md | 2 +- test/cbmc/proofs/OTA_Shutdown/README.md | 2 +- test/cbmc/proofs/OTA_SignalEvent/README.md | 2 +- test/cbmc/proofs/OTA_Suspend/README.md | 2 +- .../proofs/OtaDeinitEvent_FreeRTOS/README.md | 2 +- .../proofs/OtaDeleteTimer_FreeRTOS/README.md | 2 +- .../proofs/OtaInitEvent_FreeRTOS/README.md | 2 +- .../proofs/OtaReceiveEvent_FreeRTOS/README.md | 2 +- .../OtaSendEvent_FreeRTOS_harness.c | 2 +- .../proofs/OtaSendEvent_FreeRTOS/README.md | 2 +- .../OtaStartTimer_FreeRTOS_harness.c | 2 +- .../proofs/OtaStartTimer_FreeRTOS/README.md | 2 +- .../proofs/OtaStopTimer_FreeRTOS/README.md | 2 +- .../proofs/Posix_OtaDeinitEvent/README.md | 2 +- .../proofs/Posix_OtaDeleteTimer/README.md | 2 +- test/cbmc/proofs/Posix_OtaInitEvent/README.md | 2 +- .../proofs/Posix_OtaReceiveEvent/README.md | 2 +- test/cbmc/proofs/Posix_OtaSendEvent/README.md | 2 +- .../cbmc/proofs/Posix_OtaStartTimer/README.md | 2 +- test/cbmc/proofs/Posix_OtaStopTimer/README.md | 2 +- .../Posix_RequestTimerCallback/README.md | 2 +- .../Posix_selfTestTimerCallback/README.md | 2 +- test/cbmc/proofs/STDC_FREE/README.md | 2 +- test/cbmc/proofs/STDC_Malloc/README.md | 2 +- .../proofs/agentShutdownCleanup/README.md | 2 +- test/cbmc/proofs/base64Decode/README.md | 2 +- .../buildStatusMessageReceiving/README.md | 2 +- test/cbmc/proofs/checkDataType/README.md | 2 +- .../cbmc/proofs/cleanupControl_Mqtt/README.md | 2 +- test/cbmc/proofs/cleanupData_Http/README.md | 2 +- test/cbmc/proofs/cleanupData_Mqtt/README.md | 2 +- test/cbmc/proofs/closeFileHandler/README.md | 2 +- test/cbmc/proofs/dataHandlerCleanup/README.md | 2 +- .../proofs/decodeAndStoreDataBlock/README.md | 2 +- test/cbmc/proofs/decodeAndStoreKey/README.md | 2 +- .../proofs/decodeBase64IndexBuffer/README.md | 2 +- .../proofs/decodeFileBlock_Http/README.md | 2 +- .../proofs/decodeFileBlock_Mqtt/README.md | 2 +- test/cbmc/proofs/executeHandler/README.md | 2 +- .../proofs/extractAndStoreArray/README.md | 2 +- .../extractAndStoreArray_harness.c | 2 +- test/cbmc/proofs/extractParameter/README.md | 2 +- test/cbmc/proofs/freeFileContextMem/README.md | 2 +- .../proofs/getFileContextFromJob/README.md | 2 +- test/cbmc/proofs/handleCustomJob/README.md | 2 +- .../proofs/handleJobParsingError/README.md | 2 +- .../proofs/handleSelfTestJobDoc/README.md | 2 +- .../proofs/handleUnexpectedEvents/README.md | 2 +- test/cbmc/proofs/inSelfTestHandler/README.md | 2 +- test/cbmc/proofs/ingestDataBlock/README.md | 2 +- .../proofs/ingestDataBlockCleanup/README.md | 2 +- test/cbmc/proofs/initDocModel/README.md | 2 +- test/cbmc/proofs/initFileHandler/README.md | 2 +- .../proofs/initFileTransfer_Http/README.md | 2 +- .../proofs/initFileTransfer_Mqtt/README.md | 2 +- .../proofs/initializeAppBuffers/README.md | 2 +- .../proofs/initializeLocalBuffers/README.md | 2 +- .../proofs/jobNotificationHandler/README.md | 2 +- test/cbmc/proofs/otaClose/README.md | 2 +- test/cbmc/proofs/otaTimerCallback/README.md | 2 +- test/cbmc/proofs/parseJSONbyModel/README.md | 2 +- test/cbmc/proofs/parseJobDoc/README.md | 2 +- test/cbmc/proofs/platformInSelftest/README.md | 2 +- .../proofs/preprocessBase64Index/README.md | 2 +- test/cbmc/proofs/processDataBlock/README.md | 2 +- test/cbmc/proofs/processDataHandler/README.md | 2 +- test/cbmc/proofs/processJobHandler/README.md | 2 +- .../proofs/processNullFileContext/README.md | 2 +- .../proofs/processValidFileContext/README.md | 2 +- .../prvBuildStatusMessageFinish/README.md | 2 +- .../prvBuildStatusMessageSelfTest/README.md | 2 +- .../proofs/publishStatusMessage/README.md | 2 +- .../receiveAndProcessOtaEvent/README.md | 2 +- .../proofs/requestDataBlock_Http/README.md | 2 +- test/cbmc/proofs/requestDataHandler/README.md | 2 +- .../proofs/requestFileBlock_Mqtt/README.md | 2 +- test/cbmc/proofs/requestJobHandler/README.md | 2 +- test/cbmc/proofs/requestJob_Mqtt/README.md | 2 +- .../proofs/requestTimerCallback/README.md | 2 +- test/cbmc/proofs/resetEventQueue/README.md | 2 +- test/cbmc/proofs/resumeHandler/README.md | 2 +- test/cbmc/proofs/searchTransition/README.md | 2 +- .../proofs/selfTestTimerCallback/README.md | 2 +- .../cbmc/proofs/setControlInterface/README.md | 2 +- test/cbmc/proofs/setDataInterface/README.md | 2 +- .../proofs/setImageStateWithReason/README.md | 2 +- test/cbmc/proofs/shutdownHandler/README.md | 2 +- test/cbmc/proofs/startHandler/README.md | 2 +- test/cbmc/proofs/stringBuilder/README.md | 2 +- .../stringBuilderUInt32Decimal/README.md | 2 +- .../proofs/stringBuilderUInt32Hex/README.md | 2 +- .../README.md | 2 +- test/cbmc/proofs/suspendHandler/README.md | 2 +- .../unsubscribeFromDataStream/README.md | 2 +- .../README.md | 2 +- .../updateBase64DecodingBuffer/README.md | 2 +- .../updateJobStatusFromImageState/README.md | 2 +- .../proofs/updateJobStatus_Mqtt/README.md | 2 +- test/cbmc/proofs/userAbortHandler/README.md | 2 +- .../cbmc/proofs/validateAndStartJob/README.md | 2 +- test/cbmc/proofs/validateDataBlock/README.md | 2 +- test/cbmc/proofs/validateJSON/README.md | 2 +- .../proofs/validateUpdateVersion/README.md | 2 +- .../proofs/verifyActiveJobStatus/README.md | 2 +- .../verifyRequiredParamsExtracted/README.md | 2 +- test/unit-test/CMakeLists.txt | 2 +- test/unit-test/ota_os_posix_utest.c | 10 +- test/unit-test/ota_utest.c | 30 +- tools/lexicon.txt | 920 ------------------ tools/uncrustify.cfg | 160 --- 147 files changed, 528 insertions(+), 1381 deletions(-) create mode 100644 .github/.cSpellWords.txt create mode 100644 .github/.exclude-urls.txt create mode 100644 .github/workflows/formatting.yml create mode 100644 cspell.config.yaml rename otaDependenyFilePaths.cmake => otaDependencyFilePaths.cmake (100%) delete mode 100644 tools/lexicon.txt delete mode 100644 tools/uncrustify.cfg diff --git a/.github/.cSpellWords.txt b/.github/.cSpellWords.txt new file mode 100644 index 000000000..ed49f7cd6 --- /dev/null +++ b/.github/.cSpellWords.txt @@ -0,0 +1,46 @@ +CBMC +CBOR +CMOCK +CMock +Cmock +Coverity +DCMOCK +DNDEBUG +DUNITY +FOOB +FOOBA +FOOBDA +MISRA +MQTT +Misra +OPTIMISED +Wunused +cbmc +cbor +cborvalue +cmock +coverity +ctest +deinitializing +isystem +lcov +lpthread +misra +mqdes +mqttstatus +mqueue +osstatus +otahttppage +otahttpsectionoverview +otamqttpage +otamqttsectionoverview +otaosfipage +otaosfisectionoverview +otapalpage +otapalsectionoverview +pbuffer +pclienttoken +sinclude +stringz +tinycbor +utest diff --git a/.github/.exclude-urls.txt b/.github/.exclude-urls.txt new file mode 100644 index 000000000..bce081fbd --- /dev/null +++ b/.github/.exclude-urls.txt @@ -0,0 +1,2 @@ +https://dummy-url.com/ota.bin + diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5d87bda4e..125add3a2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Clone This Repo - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Check warnings run: | git submodule update --init --recursive --checkout --depth 1 @@ -26,20 +26,20 @@ jobs: complexity: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Setup run: sudo apt-get install complexity - name: Complexity uses: FreeRTOS/CI-CD-Github-Actions/complexity@main with: path: ./ - horrid_threshold: 10 + horrid_threshold: 14 unittest: runs-on: ubuntu-latest steps: - name: Clone This Repo - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Build run: | git submodule update --init --recursive --checkout --depth 1 @@ -55,7 +55,8 @@ jobs: runs-on: ubuntu-latest steps: - name: Clone This Repo - uses: actions/checkout@v2 + uses: actions/checkout@v3 + - name: Generate Build Files run: | git submodule update --init --recursive --checkout --depth 1 @@ -63,20 +64,22 @@ jobs: cmake -S test -B build \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_C_FLAGS='--coverage -Wall -Wextra -DNDEBUG' + - name: Run Coverage run: | cmake --build build/ --target coverage + - name: Check Coverage uses: FreeRTOS/CI-CD-Github-Actions/coverage-cop@main with: - path: ./build/coverage.info + coverage-file: ./build/coverage.info line-coverage-min: 100 branch-coverage-min: 100 doxygen: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Run doxygen build uses: FreeRTOS/CI-CD-Github-Actions/doxygen@main with: @@ -85,31 +88,17 @@ jobs: spell-check: runs-on: ubuntu-latest steps: - - name: Checkout Parent Repo - uses: actions/checkout@v2 - with: - ref: main - repository: aws/aws-iot-device-sdk-embedded-C - name: Clone This Repo - uses: actions/checkout@v2 + uses: actions/checkout@v3 + - name: Run spellings check + uses: FreeRTOS/CI-CD-Github-Actions/spellings@main with: - path: tmp - - name: Install spell - run: | - sudo apt-get install spell - sudo apt-get install util-linux - - name: Check spelling - run: | - PATH=$PATH:$PWD/tools/spell - find-unknown-comment-words --directory tmp/ --lexicon tmp/tools/lexicon.txt - if [ $? -ne "0" ]; then - exit 1 - fi + path: ./ formatting: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Check formatting uses: FreeRTOS/CI-CD-Github-Actions/formatting@main with: @@ -119,11 +108,11 @@ jobs: git-secrets: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: recursive - name: Checkout awslabs/git-secrets - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: repository: awslabs/git-secrets ref: master @@ -138,19 +127,54 @@ jobs: memory_statistics: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Clone submodules run: git submodule update --init --recursive --checkout --depth 1 - name: Install Python3 - uses: actions/setup-python@v2 + uses: actions/setup-python@v3 with: - python-version: '3.11.0' + python-version: "3.11.0" - name: Measure sizes uses: FreeRTOS/CI-CD-Github-Actions/memory_statistics@main with: - config: .github/memory_statistics_config.json - check_against: docs/doxygen/include/size_table.md + config: .github/memory_statistics_config.json + check_against: docs/doxygen/include/size_table.md + + link-verifier: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Check Links + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: FreeRTOS/CI-CD-Github-Actions/link-verifier@main + with: + path: ./ + allowlist-file: .github/.exclude-urls.txt + + verify-manifest: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: true + fetch-depth: 0 + + # At time of writing the gitmodules are set not to pull + # Even when using fetch submodules. Need to run this command + # To force it to grab them. + - name: Perform Recursive Clone + shell: bash + run: git submodule update --checkout --init --recursive + + - name: Run manifest verifier + uses: FreeRTOS/CI-CD-GitHub-Actions/manifest-verifier@main + with: + path: ./ + fail-on-incorrect-version: true + proof_ci: + if: ${{ github.event.pull_request }} runs-on: cbmc_ubuntu-latest_16-core steps: - name: Set up CBMC runner diff --git a/.github/workflows/formatting.yml b/.github/workflows/formatting.yml new file mode 100644 index 000000000..8257addac --- /dev/null +++ b/.github/workflows/formatting.yml @@ -0,0 +1,23 @@ +name: Format Pull Request Files + +on: + issue_comment: + types: [created] + +env: + bashPass: \033[32;1mPASSED - + bashInfo: \033[33;1mINFO - + bashFail: \033[31;1mFAILED - + bashEnd: \033[0m + +jobs: + Formatting: + name: Run Formatting Check + if: ${{ github.event.issue.pull_request }} && + ( ( github.event.comment.body == '/bot run uncrustify' ) || + ( github.event.comment.body == '/bot run formatting' ) ) + runs-on: ubuntu-20.04 + steps: + - name: Apply Formatting Fix + uses: FreeRTOS/CI-CD-Github-Actions/formatting-bot@main + id: check-formatting diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f40764161..6fb6b15ce 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: ${{ github.event.inputs.commit_id }} - name: Configure git identity @@ -53,7 +53,7 @@ jobs: - name: Install ZIP tools run: sudo apt-get install zip unzip - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: ${{ github.event.inputs.commit_id }} path: ota-for-aws-iot-embedded-sdk diff --git a/MISRA.md b/MISRA.md index 9331845d3..a18ed368e 100644 --- a/MISRA.md +++ b/MISRA.md @@ -24,7 +24,7 @@ _Ref 8.13.1_ - MISRA C-2012 Rule 8.13 There are multiple functions that all use the same function header so that they can be assigned to function pointers in a seamless manner. There are a few that modify the OtaAgentContext_t that gets passed in. In order to allow convienent assignment of these function pointers - we supress this rule on this function that can't have const added. + we suppress this rule on this function that can't have const added. #### Rule 10.1 _Ref 10.1.1_ @@ -44,7 +44,7 @@ _Ref 10.8.1_ _Ref 11.8.1_ - Misra C-2012 Rule 11.8 will raise an error if certain variables are not marked as const, even if the variables do get - modified in that function. As such there are two occurences where to get around that error, we supress these. + modified in that function. As such there are two occurrences where to get around that error, we suppress these. #### Rule 19.2 _Ref 19.2.1_ diff --git a/README.md b/README.md index 245285d33..726bfaec3 100644 --- a/README.md +++ b/README.md @@ -1,48 +1,99 @@ # AWS IoT Over-the-air Update Library -The OTA library enables you to manage the notification of a newly available update, download the update, and perform cryptographic verification of the firmware update. Using the library, you can logically separate firmware updates from the application running on your devices. The OTA library can share a network connection with the application, saving memory in resource-constrained devices. In addition, the OTA library lets you define application-specific logic for testing, committing, or rolling back a firmware update. The library supports different application protocols like Message Queuing Telemetry Transport (MQTT) and Hypertext Transfer Protocol (HTTP), and provides various configuration options you can fine tune depending on network type and conditions. This library is distributed under the [MIT Open Source License](LICENSE). - -This library has gone through code quality checks including verification that no function has a [GNU Complexity](https://www.gnu.org/software/complexity/manual/complexity.html) score over 10. This library has also undergone static code analysis from [Coverity static analysis](https://scan.coverity.com/). - -See memory requirements for this library [here](./docs/doxygen/include/size_table.md). - -**AWS IoT Over-the-air Update Library v3.4.0 [source code](https://github.com/aws/ota-for-aws-iot-embedded-sdk/tree/v3.4.0/source) is part of the [FreeRTOS 202210.00 LTS](https://github.com/FreeRTOS/FreeRTOS-LTS/tree/202210.00-LTS) release.** - -**AWS IoT Over-the-air Update Library v3.3.0 [source code](https://github.com/aws/ota-for-aws-iot-embedded-sdk/tree/v3.3.0/source) is part of the [FreeRTOS 202012.01 LTS](https://github.com/FreeRTOS/FreeRTOS-LTS/tree/202012.01-LTS) release.** +**[API Documentation Pages for current and previous releases of this library can be found here](https://aws.github.io/ota-for-aws-iot-embedded-sdk/)** + +The OTA library enables you to manage the notification of a newly available +update, download the update, and perform cryptographic verification of the +firmware update. Using the library, you can logically separate firmware updates +from the application running on your devices. The OTA library can share a +network connection with the application, saving memory in resource-constrained +devices. In addition, the OTA library lets you define application-specific logic +for testing, committing, or rolling back a firmware update. The library supports +different application protocols like Message Queuing Telemetry Transport (MQTT) +and Hypertext Transfer Protocol (HTTP), and provides various configuration +options you can fine tune depending on network type and conditions. This library +is distributed under the [MIT Open Source License](LICENSE). + +This library has gone through code quality checks including verification that no +function has a +[GNU Complexity](https://www.gnu.org/software/complexity/manual/complexity.html) +score over 10. This library has also undergone static code analysis from +[Coverity static analysis](https://scan.coverity.com/). + +See memory requirements for this library +[here](./docs/doxygen/include/size_table.md). + +**AWS IoT Over-the-air Update Library v3.4.0 +[source code](https://github.com/aws/ota-for-aws-iot-embedded-sdk/tree/v3.4.0/source) +is part of the +[FreeRTOS 202210.00 LTS](https://github.com/FreeRTOS/FreeRTOS-LTS/tree/202210.00-LTS) +release.** + +**AWS IoT Over-the-air Update Library v3.3.0 +[source code](https://github.com/aws/ota-for-aws-iot-embedded-sdk/tree/v3.3.0/source) +is part of the +[FreeRTOS 202012.01 LTS](https://github.com/FreeRTOS/FreeRTOS-LTS/tree/202012.01-LTS) +release.** ## AWS IoT Over-the-air Updates Config File -The AWS IoT Over-the-air Updates library exposes configuration macros that are required for building the library. A list of all the configurations and their default values are defined in [ota_config_defaults.h](source/include/ota_config_defaults.h). To provide custom values for the configuration macros, a custom config file named `ota_config.h` can be provided by the user application to the library. +The AWS IoT Over-the-air Updates library exposes configuration macros that are +required for building the library. A list of all the configurations and their +default values are defined in +[ota_config_defaults.h](source/include/ota_config_defaults.h). To provide custom +values for the configuration macros, a custom config file named `ota_config.h` +can be provided by the user application to the library. -By default, a `ota_config.h` custom config is required to build the library. To disable this requirement and build the library with default configuration values, provide `OTA_DO_NOT_USE_CUSTOM_CONFIG` as a compile time preprocessor macro. +By default, a `ota_config.h` custom config is required to build the library. To +disable this requirement and build the library with default configuration +values, provide `OTA_DO_NOT_USE_CUSTOM_CONFIG` as a compile time preprocessor +macro. ## Building the Library -The [otaFilePaths.cmake](otaFilePaths.cmake) file contains the information of all source files and the header include paths required to build the AWS IoT Over-the-air Updates library. -As mentioned in the previous section, either a custom config file (i.e. `ota_config.h`) OR the `OTA_DO_NOT_USE_CUSTOM_CONFIG` macro needs to be provided to build the AWS IoT Over-the-air Updates library. +The [otaFilePaths.cmake](otaFilePaths.cmake) file contains the information of +all source files and the header include paths required to build the AWS IoT +Over-the-air Updates library. + +As mentioned in the previous section, either a custom config file (i.e. +`ota_config.h`) OR the `OTA_DO_NOT_USE_CUSTOM_CONFIG` macro needs to be provided +to build the AWS IoT Over-the-air Updates library. -For a CMake example of building the AWS IoT Over-the-air Updates library with the `otaFilePaths.cmake` file, refer to the `coverity_analysis` library target in the [test/CMakeLists.txt](test/CMakeLists.txt) file. +For a CMake example of building the AWS IoT Over-the-air Updates library with +the `otaFilePaths.cmake` file, refer to the `coverity_analysis` library target +in the [test/CMakeLists.txt](test/CMakeLists.txt) file. ## Building Unit Tests + ### Checkout CMock Submodule -By default, the submodules in this repository are configured with `update=none` in [.gitmodules](.gitmodules) to avoid increasing clone time and disk space usage of other repositories (like [AWS IoT Device SDK for Embedded C](https://github.com/aws/aws-iot-device-sdk-embedded-C) that submodules this repository). -To build unit tests, the submodule dependency of CMock is required. Use the following command to clone the submodule: +By default, the submodules in this repository are configured with `update=none` +in [.gitmodules](.gitmodules) to avoid increasing clone time and disk space +usage of other repositories (like +[AWS IoT Device SDK for Embedded C](https://github.com/aws/aws-iot-device-sdk-embedded-C) +that submodules this repository). + +To build unit tests, the submodule dependency of CMock is required. Use the +following command to clone the submodule: + ``` -git submodule update --checkout --init --recursive test/unit-test/CMock +git submodule update --checkout --init --recursive test/unit-test/CMock source/dependency/coreJSON ``` ### Platform Prerequisites - For building the library, **CMake 3.13.0** or later and a **C90 compiler**. -- For running unit tests, **Ruby 2.0.0** or later is additionally required for the CMock test framework (that we use). -- For running the coverage target, **gcov** and **lcov** are additionally required. +- For running unit tests, **Ruby 2.0.0** or later is additionally required for + the CMock test framework (that we use). +- For running the coverage target, **gcov** and **lcov** are additionally + required. ### Steps to build unit tests -1. Go to the root directory of this repository. (Make sure that the **CMock** submodule is cloned as described [above](#checkout-cmock-submodule).) +1. Go to the root directory of this repository. (Make sure that the **CMock** + submodule is cloned as described [above](#checkout-cmock-submodule).) -1. Run the *cmake* command: `cmake -S test -B build` +1. Run the _cmake_ command: `cmake -S test -B build` 1. Run this command to build the library and unit tests: `make -C build all` @@ -54,83 +105,110 @@ git submodule update --checkout --init --recursive test/unit-test/CMock ### How to migrate from v2.0.0 (Release Candidate) to v3.4.0 -The following table lists equivalent API function signatures in v2.0.0 (Release Candidate) and v3.4.0 declared in [ota.h](source/include/ota.h) +The following table lists equivalent API function signatures in v2.0.0 (Release +Candidate) and v3.4.0 declared in [ota.h](source/include/ota.h) -| v2.0.0 (Release Candidate) | v3.4.0 | Notes | -| :-: | :-: | :-: | +| v2.0.0 (Release Candidate) | v3.4.0 | Notes | +| :------------------------------------------------: | :-------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------: | | `OtaState_t OTA_Shutdown( uint32_t ticksToWait );` | `OtaState_t OTA_Shutdown( uint32_t ticksToWait, uint8_t unsubscribeFlag );` | `unsubscribeFlag` indicates if unsubscribe operations should be performed from the job topics when shutdown is called. Set this as 1 to unsubscribe, 0 otherwise. | ### How to migrate from version 1.0.0 to version 3.4.0 for OTA applications -Refer to [OTA Migration document](https://docs.aws.amazon.com/freertos/latest/portingguide/porting-migration-ota.html) for the summary of updates to the API. -[Migration document for OTA PAL](https://docs.aws.amazon.com/freertos/latest/portingguide/porting-migration-ota-pal.html) also provides a summary of updates required for upgrading the OTA-PAL to work with v3.4.0 of the library. +Refer to +[OTA Migration document](https://docs.aws.amazon.com/freertos/latest/portingguide/porting-migration-ota.html) +for the summary of updates to the API. +[Migration document for OTA PAL](https://docs.aws.amazon.com/freertos/latest/portingguide/porting-migration-ota-pal.html) +also provides a summary of updates required for upgrading the OTA-PAL to work +with v3.4.0 of the library. ## Porting -In order to support AWS IoT Over-the-air Updates on your device, it is necessary to provide the following components: +In order to support AWS IoT Over-the-air Updates on your device, it is necessary +to provide the following components: + 1. [Port for the OTA Portable Abstraction Layer (PAL).](https://docs.aws.amazon.com/embedded-csdk/202103.00/lib-ref/libraries/aws/ota-for-aws-iot-embedded-sdk/docs/doxygen/output/html/ota_porting.html#ota_porting_pal) 1. [OS Interface](https://docs.aws.amazon.com/embedded-csdk/202103.00/lib-ref/libraries/aws/ota-for-aws-iot-embedded-sdk/docs/doxygen/output/html/ota_porting.html#ota_porting_os) 1. [MQTT Interface](https://docs.aws.amazon.com/embedded-csdk/202103.00/lib-ref/libraries/aws/ota-for-aws-iot-embedded-sdk/docs/doxygen/output/html/ota_porting.html#ota_porting_mqtt) -For enabling data transfer over HTTP dataplane the following component should also be provided: +For enabling data transfer over HTTP dataplane the following component should +also be provided: 1. [HTTP Interface](https://docs.aws.amazon.com/embedded-csdk/202103.00/lib-ref/libraries/aws/ota-for-aws-iot-embedded-sdk/docs/doxygen/output/html/ota_porting.html#ota_porting_http) -**NOTE** When using OTA over HTTP dataplane, MQTT is required for control plane operations and should also be provided. +**NOTE** When using OTA over HTTP dataplane, MQTT is required for control plane +operations and should also be provided. ## CBMC -To learn more about CBMC and proofs specifically, review the training material [here](https://model-checking.github.io/cbmc-training). +To learn more about CBMC and proofs specifically, review the training material +[here](https://model-checking.github.io/cbmc-training). The `test/cbmc/proofs` directory contains CBMC proofs. -In order to run these proofs you will need to install CBMC and other tools by following the instructions [here](https://model-checking.github.io/cbmc-training/installation.html). +In order to run these proofs you will need to install CBMC and other tools by +following the instructions +[here](https://model-checking.github.io/cbmc-training/installation.html). ### CBMC Locally -To run a single CBMC proof locally, you can build the Makefile in any of the CBMC proofs. The Makefile is located in the `test/cbmc/proof//` directory. -Running `make` will produce a HTML-based report nearly identical to the one produced by the CI step. +To run a single CBMC proof locally, you can build the Makefile in any of the +CBMC proofs. The Makefile is located in the +`test/cbmc/proof//` directory. + +Running `make` will produce a HTML-based report nearly identical to the one +produced by the CI step. **A couple notes about CBMC Proofs** -* macOS doesn't implement POSIX message queues (`mqueue.h`); -* It is possible that macOS fails to recognize your loop unwinding identifiers for function from the C standard libraries. For this case, you'll want to use the `__builtin____chk` identifier, e.g., instead of using `memcpy` add `__builtin___memcpy_chk`. - * For example, the **requestJob_Mqtt** proof fails on macOS with the following error: + +- macOS doesn't implement POSIX message queues (`mqueue.h`); +- It is possible that macOS fails to recognize your loop unwinding identifiers + for function from the C standard libraries. For this case, you'll want to use + the `__builtin____chk` identifier, e.g., instead of using `memcpy` + add `__builtin___memcpy_chk`. + - For example, the **requestJob_Mqtt** proof fails on macOS with the following + error: ``` Loop unwinding failures [trace] __builtin___strncpy_chk.unwind.0 in line 36 in file ``` -To solve this issue, replace `strncpy` with `__builtin___strncpy_ch` on [this line](https://github.com/aws/ota-for-aws-iot-embedded-sdk/blob/main/test/cbmc/proofs/requestJob_Mqtt/Makefile#L16). +To solve this issue, replace `strncpy` with `__builtin___strncpy_ch` on +[this line](https://github.com/aws/ota-for-aws-iot-embedded-sdk/blob/main/test/cbmc/proofs/requestJob_Mqtt/Makefile#L16). ## Reference examples -Please refer to the demos of the AWS IoT Over-the-air Updates library in the following location for reference examples on POSIX and FreeRTOS: +Please refer to the demos of the AWS IoT Over-the-air Updates library in the +following location for reference examples on POSIX and FreeRTOS: -| Platform | Location | -| :-: | :-: | -| POSIX | [AWS IoT Device SDK for Embedded C](https://github.com/aws/aws-iot-device-sdk-embedded-C/tree/main/demos/ota) | -| FreeRTOS | [FreeRTOS/FreeRTOS](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator) | -| FreeRTOS | [FreeRTOS AWS Reference Integrations](https://github.com/aws/amazon-freertos/tree/main/demos/ota) | +| Platform | Location | +| :------: | :--------------------------------------------------------------------------------------------------------------: | +| POSIX | [AWS IoT Device SDK for Embedded C](https://github.com/aws/aws-iot-device-sdk-embedded-C/tree/main/demos/ota) | +| FreeRTOS | [FreeRTOS/FreeRTOS](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator) | +| FreeRTOS | [FreeRTOS AWS Reference Integrations](https://github.com/aws/amazon-freertos/tree/main/demos/ota) | ## Documentation ### Existing Documentation -For pre-generated documentation, please see the documentation linked in the locations below: +For pre-generated documentation, please see the documentation linked in the +locations below: -| Location | -| :-: | -| [AWS IoT Device SDK for Embedded C](https://github.com/aws/aws-iot-device-sdk-embedded-C#releases-and-documentation) | +| Location | +| :-------------------------------------------------------------------------------------------------------------------------: | +| [AWS IoT Device SDK for Embedded C](https://github.com/aws/aws-iot-device-sdk-embedded-C#releases-and-documentation) | | [FreeRTOS.org](https://freertos.org/Documentation/api-ref/ota-for-aws-iot-embedded-sdk/docs/doxygen/output/html/index.html) | -Note that the latest included version of coreMQTT may differ across repositories. +Note that the latest included version of coreMQTT may differ across +repositories. + ### Generating documentation The Doxygen references were created using Doxygen version 1.9.2. To generate the -Doxygen pages, please run the following command from the root of this repository: +Doxygen pages, please run the following command from the root of this +repository: ```shell doxygen docs/doxygen/config.doxyfile @@ -138,4 +216,5 @@ doxygen docs/doxygen/config.doxyfile ## Contributing -See [CONTRIBUTING.md](./.github/CONTRIBUTING.md) for information on contributing. +See [CONTRIBUTING.md](./.github/CONTRIBUTING.md) for information on +contributing. diff --git a/cspell.config.yaml b/cspell.config.yaml new file mode 100644 index 000000000..911ce1d8f --- /dev/null +++ b/cspell.config.yaml @@ -0,0 +1,31 @@ +--- +$schema: https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json +version: '0.2' +# Allows things like stringLength +allowCompoundWords: true + +# Read files not to spell check from the git ignore +useGitignore: true + +# Language settings for C +languageSettings: + - caseSensitive: false + enabled: true + languageId: c + locale: "*" + +# Add a dictionary, and the path to the word list +dictionaryDefinitions: + - name: freertos-words + path: '.github/.cSpellWords.txt' + addWords: true + +dictionaries: + - freertos-words + +# Paths and files to ignore +ignorePaths: + - 'dependency' + - 'docs' + - 'ThirdParty' + - 'History.txt' diff --git a/docs/doxygen/pages.dox b/docs/doxygen/pages.dox index 9836a8a13..c930badbf 100644 --- a/docs/doxygen/pages.dox +++ b/docs/doxygen/pages.dox @@ -17,8 +17,8 @@ The major functions that this library’s APIs provide are – AWS services can be used with this library to manage various cloud related topics such as sending firmware updates, monitoring large numbers of devices across multiple regions, reducing the blast radius of faulty deployments, and verifying the security of updates. -> **NOTE**: **Handling OTA and custom jobs in your application** -> If your application will process both OTA and custom types of jobs from AWS IoT, we recommend using the feature support for custom jobs in OTA library through the #OtaJobEventParseCustomJob event notification in the registered #OtaAppCallback_t callback. +> **NOTE**: **Handling OTA and custom jobs in your application** +> If your application will process both OTA and custom types of jobs from AWS IoT, we recommend using the feature support for custom jobs in OTA library through the #OtaJobEventParseCustomJob event notification in the registered #OtaAppCallback_t callback. > However, if your application chooses to use the [AWS IoT Jobs library](https://github.com/aws/Jobs-for-AWS-IoT-embedded-sdk) (for handling custom jobs) and the OTA library (for handling OTA jobs) to communicate with AWS IoT through a shared MQTT connection, we suggest that you keep the application logic that uses these libraries within a single task/thread. > As the OTA agent also makes calls to the AWS IoT Jobs service, keeping the use of libraries within the same thread context will avoid complexity of synchronizing communication with AWS IoT Jobs topics between multiple tasks/threads. > However, if you choose to use different tasks/threads for calling these libraries, please be aware that the OTA library will subscribe and configurably, unsubscribe from AWS IoT Jobs topics, and also attempt to send status updates for incoming non-OTA jobs, if your application configures the OTA library to handle custom jobs. diff --git a/manifest.yml b/manifest.yml index 4d2224bf9..9d535caad 100644 --- a/manifest.yml +++ b/manifest.yml @@ -1,17 +1,39 @@ -name : "ota-for-aws-iot-embedded-sdk" +name: "ota-for-aws-iot-embedded-sdk" version: "v3.4.0" -description: "Client library for using the AWS Over-the-air Update service on embedded devices." +description: + "Client library for using the AWS Over-the-air Update service on embedded + devices." license: "MIT" + dependencies: - - name : "coreJSON" + - name: "coreJSON" version: "v3.2.0" license: "MIT" repository: type: "git" url: "https://github.com/FreeRTOS/coreJSON.git" - - name : "tinycbor" + path: source/dependency/coreJSON + + - name: "tinycbor" version: "v0.5.4" license: "MIT" repository: type: "git" url: "https://github.com/intel/tinycbor.git" + path: source/dependency/3rdparty/tinycbor + + - name: "CMock" + version: "v2.5.2" + license: "MIT" + repository: + type: "git" + url: "https://github.com/ThrowTheSwitch/CMock.git" + path: test/unit-test/CMock + + - name: "FreeRTOS-Kernel" + version: "V10.4.5" + license: "MIT" + repository: + type: "git" + path: test/cbmc/FreeRTOS-Kernel + url: "https://github.com/FreeRTOS/FreeRTOS-Kernel.git" diff --git a/otaDependenyFilePaths.cmake b/otaDependencyFilePaths.cmake similarity index 100% rename from otaDependenyFilePaths.cmake rename to otaDependencyFilePaths.cmake diff --git a/source/include/ota.h b/source/include/ota.h index 9e026222c..a60286bf1 100644 --- a/source/include/ota.h +++ b/source/include/ota.h @@ -278,7 +278,7 @@ typedef struct OtaJobDocument * OtaJobEventActivate|OtaJobDocument_t|status and reason * OtaJobEventFail|OtaJobDocument_t|status, reason and subReason * OtaJobEventStartTest|NULL|nothing - * OtaJobEventProcessed|OtaEventData_t|data buffer inputed from user by OTA_SignalEvent + * OtaJobEventProcessed|OtaEventData_t|data buffer inputted from user by OTA_SignalEvent * OtaJobEventSelfTestFailed|NULL|nothing * OtaJobEventParseCustomJob|OtaJobDocument_t|pJobId, jobIdLength, pJobDocJson, and jobDocLength * OtaJobEventReceivedJob|OtaJobDocument_t|pJobId, jobIdLength, pJobDocJson, jobDocLength, and fileTypeId diff --git a/source/include/ota_private.h b/source/include/ota_private.h index 5640238b2..6c6fcc27a 100644 --- a/source/include/ota_private.h +++ b/source/include/ota_private.h @@ -190,24 +190,24 @@ typedef enum */ typedef enum { - DocParseErrUnknown = -1, /*!< The error code has not yet been set by a logic path. */ - DocParseErrNone = 0, /*!< No error in parsing the document. */ - DocParseErrOutOfMemory, /*!< We failed to allocate enough dynamic memory for a field. */ - DocParseErrUserBufferInsuffcient, /*!< The supplied user buffer is insufficient for a field. */ - DocParseErrFieldTypeMismatch, /*!< The field type parsed does not match the document model. */ - DocParseErrBase64Decode, /*!< There was an error decoding the base64 data. */ - DocParseErrInvalidNumChar, /*!< There was an invalid character in a numeric value field. */ - DocParseErrDuplicatesNotAllowed, /*!< A duplicate parameter was found in the job document. */ - DocParseErrMalformedDoc, /*!< The document didn't fulfill the model requirements. */ - DocParseErr_InvalidJSONBuffer, /*!< When the JSON is malformed and not parsed correctly. */ - DocParseErrNullModelPointer, /*!< The pointer to the document model was NULL. */ - DocParseErrNullBodyPointer, /*!< The document model's internal body pointer was NULL. */ - DocParseErrNullDocPointer, /*!< The pointer to the JSON document was NULL. */ - DocParseErrTooManyParams, /*!< The document model has more parameters than we can handle. */ - DocParseErrParamKeyNotInModel, /*!< The document model does not include the specified parameter key. */ - DocParseErrInvalidModelParamType, /*!< The document model specified an invalid parameter type. */ - DocParseErrInvalidToken, /*!< The Jasmine token was invalid, producing a NULL pointer. */ - DocParseErrEmptyJobDoc /*!< The document is valid but does not contain all necessary fields. */ + DocParseErrUnknown = -1, /*!< The error code has not yet been set by a logic path. */ + DocParseErrNone = 0, /*!< No error in parsing the document. */ + DocParseErrOutOfMemory, /*!< We failed to allocate enough dynamic memory for a field. */ + DocParseErrUserBufferInsufficient, /*!< The supplied user buffer is insufficient for a field. */ + DocParseErrFieldTypeMismatch, /*!< The field type parsed does not match the document model. */ + DocParseErrBase64Decode, /*!< There was an error decoding the base64 data. */ + DocParseErrInvalidNumChar, /*!< There was an invalid character in a numeric value field. */ + DocParseErrDuplicatesNotAllowed, /*!< A duplicate parameter was found in the job document. */ + DocParseErrMalformedDoc, /*!< The document didn't fulfill the model requirements. */ + DocParseErr_InvalidJSONBuffer, /*!< When the JSON is malformed and not parsed correctly. */ + DocParseErrNullModelPointer, /*!< The pointer to the document model was NULL. */ + DocParseErrNullBodyPointer, /*!< The document model's internal body pointer was NULL. */ + DocParseErrNullDocPointer, /*!< The pointer to the JSON document was NULL. */ + DocParseErrTooManyParams, /*!< The document model has more parameters than we can handle. */ + DocParseErrParamKeyNotInModel, /*!< The document model does not include the specified parameter key. */ + DocParseErrInvalidModelParamType, /*!< The document model specified an invalid parameter type. */ + DocParseErrInvalidToken, /*!< The Jasmine token was invalid, producing a NULL pointer. */ + DocParseErrEmptyJobDoc /*!< The document is valid but does not contain all necessary fields. */ } DocParseErr_t; /** diff --git a/source/ota.c b/source/ota.c index 465e27e46..e76a6f999 100644 --- a/source/ota.c +++ b/source/ota.c @@ -1675,7 +1675,7 @@ static DocParseErr_t extractAndStoreArray( const char * pKey, { if( *pParamSizeAdd < ( valueLength + 1U ) ) { - err = DocParseErrUserBufferInsuffcient; + err = DocParseErrUserBufferInsufficient; LogError( ( "Insufficient user memory: " "[key: valueLength]=[%s: %lu]", @@ -2175,13 +2175,35 @@ static void handleSelfTestJobDoc( const OtaFileContext_t * pFileContext ) LogInfo( ( "In self test mode." ) ); #if ( otaconfigAllowDowngrade == 1U ) + { + LogWarn( ( "OTA Config Allow Downgrade has been set to 1, bypassing version check: Begin testing file: File ID=%d", + ( int ) otaAgent.serverFileID ) ); + + /* Downgrade is allowed so this means we're ready to start self test phase. + * Set image state accordingly and update job status with self test identifier. + */ + otaErr = setImageStateWithReason( OtaImageStateTesting, ( uint32_t ) errVersionCheck ); + + if( otaErr != OtaErrNone ) + { + LogError( ( "Failed to set image state to testing: OtaErr_t=%s", OTA_Err_strerror( otaErr ) ) ); + } + } + #else /* if ( otaconfigAllowDowngrade == 1U ) */ + { + /* Validate version of the update received.*/ + errVersionCheck = validateUpdateVersion( pFileContext ); + + if( errVersionCheck == OtaErrNone ) { - LogWarn( ( "OTA Config Allow Downgrade has been set to 1, bypassing version check: Begin testing file: File ID=%d", + LogInfo( ( "Image version is valid: Begin testing file: File ID=%d", ( int ) otaAgent.serverFileID ) ); - /* Downgrade is allowed so this means we're ready to start self test phase. + /* The running firmware version is newer than the firmware that performed + * the update so this means we're ready to start the self test phase. * Set image state accordingly and update job status with self test identifier. */ + otaErr = setImageStateWithReason( OtaImageStateTesting, ( uint32_t ) errVersionCheck ); if( otaErr != OtaErrNone ) @@ -2189,48 +2211,26 @@ static void handleSelfTestJobDoc( const OtaFileContext_t * pFileContext ) LogError( ( "Failed to set image state to testing: OtaErr_t=%s", OTA_Err_strerror( otaErr ) ) ); } } - #else /* if ( otaconfigAllowDowngrade == 1U ) */ + else { - /* Validate version of the update received.*/ - errVersionCheck = validateUpdateVersion( pFileContext ); - - if( errVersionCheck == OtaErrNone ) - { - LogInfo( ( "Image version is valid: Begin testing file: File ID=%d", - ( int ) otaAgent.serverFileID ) ); + LogWarn( ( "New image is being rejected: Application version of the new image is invalid: " + "OtaErr_t=%s", OTA_Err_strerror( errVersionCheck ) ) ); - /* The running firmware version is newer than the firmware that performed - * the update so this means we're ready to start the self test phase. - * Set image state accordingly and update job status with self test identifier. - */ + otaErr = setImageStateWithReason( OtaImageStateRejected, ( uint32_t ) errVersionCheck ); - otaErr = setImageStateWithReason( OtaImageStateTesting, ( uint32_t ) errVersionCheck ); - - if( otaErr != OtaErrNone ) - { - LogError( ( "Failed to set image state to testing: OtaErr_t=%s", OTA_Err_strerror( otaErr ) ) ); - } - } - else + if( otaErr != OtaErrNone ) { - LogWarn( ( "New image is being rejected: Application version of the new image is invalid: " - "OtaErr_t=%s", OTA_Err_strerror( errVersionCheck ) ) ); - - otaErr = setImageStateWithReason( OtaImageStateRejected, ( uint32_t ) errVersionCheck ); - - if( otaErr != OtaErrNone ) - { - LogError( ( "Failed to set image state to rejected: OtaErr_t=%s", OTA_Err_strerror( otaErr ) ) ); - } + LogError( ( "Failed to set image state to rejected: OtaErr_t=%s", OTA_Err_strerror( otaErr ) ) ); + } - /* Application callback for self-test failure.*/ - callOtaCallback( OtaJobEventSelfTestFailed, NULL ); + /* Application callback for self-test failure.*/ + callOtaCallback( OtaJobEventSelfTestFailed, NULL ); - /* Handle self-test failure in the platform specific implementation, - * example, reset the device in case of firmware upgrade. */ - ( void ) otaAgent.pOtaInterface->pal.reset( &( otaAgent.fileContext ) ); - } + /* Handle self-test failure in the platform specific implementation, + * example, reset the device in case of firmware upgrade. */ + ( void ) otaAgent.pOtaInterface->pal.reset( &( otaAgent.fileContext ) ); } + } #endif /* if ( otaconfigAllowDowngrade == 1U ) */ } @@ -2998,7 +2998,7 @@ static void executeHandler( uint32_t index, } else if( err == OtaErrEmptyJobDocument ) { - LogInfo( ( "Empty job docuemnt found for event=[%s]", pOtaEventStrings[ pEventMsg->eventId ] ) ); + LogInfo( ( "Empty job document found for event=[%s]", pOtaEventStrings[ pEventMsg->eventId ] ) ); } else { diff --git a/source/ota_base64.c b/source/ota_base64.c index b5e38bef1..154ba9591 100644 --- a/source/ota_base64.c +++ b/source/ota_base64.c @@ -119,7 +119,7 @@ * This table assumes that the padding symbol is the Ascii character '=' * * Valid Base64 symbols will have an index ranging from 0-63. The Base64 digits being used - * are "ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxyz0123456789+/" where 'A' is the + * are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" where 'A' is the * 0th index of the Base64 symbols and '/' is the 63rd index. * * Outside of the numbers 0-63, there are magic numbers in this table: diff --git a/source/ota_http.c b/source/ota_http.c index 75f929003..1f169bbd8 100644 --- a/source/ota_http.c +++ b/source/ota_http.c @@ -66,7 +66,7 @@ OtaErr_t initFileTransfer_Http( const OtaAgentContext_t * pAgentCtx ) if( httpStatus != OtaHttpSuccess ) { - LogError( ( "Error occured while initializing http:" + LogError( ( "Error occurred while initializing http:" "OtaHttpStatus_t=%s" , OTA_HTTP_strerror( httpStatus ) ) ); } @@ -112,7 +112,7 @@ OtaErr_t requestDataBlock_Http( OtaAgentContext_t * pAgentCtx ) if( httpStatus != OtaHttpSuccess ) { - LogError( ( "Error occured while requesting data block:" + LogError( ( "Error occurred while requesting data block:" "OtaHttpStatus_t=%s" , OTA_HTTP_strerror( httpStatus ) ) ); } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index d584c0d37..d999d3ae4 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -37,7 +37,7 @@ set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib ) # Include filepaths for source and include. include( ${MODULE_ROOT_DIR}/otaFilePaths.cmake ) -include( ${MODULE_ROOT_DIR}/otaDependenyFilePaths.cmake ) +include( ${MODULE_ROOT_DIR}/otaDependencyFilePaths.cmake ) # Target for Coverity analysis that builds the library. add_library( coverity_analysis diff --git a/test/cbmc/include/FreeRTOSConfig.h b/test/cbmc/include/FreeRTOSConfig.h index 7e5ff2049..3e9d4d48e 100644 --- a/test/cbmc/include/FreeRTOSConfig.h +++ b/test/cbmc/include/FreeRTOSConfig.h @@ -173,7 +173,7 @@ extern void vLoggingPrint( const char * pcMessage ); /* The address of an echo server that will be used by the two demo echo client * tasks: - * http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_Echo_Clients.html, + * http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_Echo_Clients.html * http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/UDP_Echo_Clients.html. */ #define configECHO_SERVER_ADDR0 192 #define configECHO_SERVER_ADDR1 168 diff --git a/test/cbmc/proofs/Free_FreeRTOS/README.md b/test/cbmc/proofs/Free_FreeRTOS/README.md index 46ae8beb3..c749f0399 100644 --- a/test/cbmc/proofs/Free_FreeRTOS/README.md +++ b/test/cbmc/proofs/Free_FreeRTOS/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/Malloc_FreeRTOS/README.md b/test/cbmc/proofs/Malloc_FreeRTOS/README.md index 584f1c718..9fa14c806 100644 --- a/test/cbmc/proofs/Malloc_FreeRTOS/README.md +++ b/test/cbmc/proofs/Malloc_FreeRTOS/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_ActivateNewImage/README.md b/test/cbmc/proofs/OTA_ActivateNewImage/README.md index 54da45a97..ee1c858a0 100644 --- a/test/cbmc/proofs/OTA_ActivateNewImage/README.md +++ b/test/cbmc/proofs/OTA_ActivateNewImage/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_CBOR_Decode_GetStreamResponseMessage/README.md b/test/cbmc/proofs/OTA_CBOR_Decode_GetStreamResponseMessage/README.md index 3fa8603bf..80d72e088 100644 --- a/test/cbmc/proofs/OTA_CBOR_Decode_GetStreamResponseMessage/README.md +++ b/test/cbmc/proofs/OTA_CBOR_Decode_GetStreamResponseMessage/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_CBOR_Encode_GetStreamRequestMessage/README.md b/test/cbmc/proofs/OTA_CBOR_Encode_GetStreamRequestMessage/README.md index 24485c724..b92b548b3 100644 --- a/test/cbmc/proofs/OTA_CBOR_Encode_GetStreamRequestMessage/README.md +++ b/test/cbmc/proofs/OTA_CBOR_Encode_GetStreamRequestMessage/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_CheckForUpdate/README.md b/test/cbmc/proofs/OTA_CheckForUpdate/README.md index b167d205d..987049720 100644 --- a/test/cbmc/proofs/OTA_CheckForUpdate/README.md +++ b/test/cbmc/proofs/OTA_CheckForUpdate/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_Err_strerror/README.md b/test/cbmc/proofs/OTA_Err_strerror/README.md index db73f1f73..e8d968c81 100644 --- a/test/cbmc/proofs/OTA_Err_strerror/README.md +++ b/test/cbmc/proofs/OTA_Err_strerror/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_EventProcess/README.md b/test/cbmc/proofs/OTA_EventProcess/README.md index ad8e72da3..5eaa929e7 100644 --- a/test/cbmc/proofs/OTA_EventProcess/README.md +++ b/test/cbmc/proofs/OTA_EventProcess/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_EventProcessingTask/README.md b/test/cbmc/proofs/OTA_EventProcessingTask/README.md index 983036d7d..7e51790fe 100644 --- a/test/cbmc/proofs/OTA_EventProcessingTask/README.md +++ b/test/cbmc/proofs/OTA_EventProcessingTask/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_GetImageState/README.md b/test/cbmc/proofs/OTA_GetImageState/README.md index 4385f5eaa..dee4c92e6 100644 --- a/test/cbmc/proofs/OTA_GetImageState/README.md +++ b/test/cbmc/proofs/OTA_GetImageState/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_GetState/README.md b/test/cbmc/proofs/OTA_GetState/README.md index 02b4cd13a..fa4bf6f6c 100644 --- a/test/cbmc/proofs/OTA_GetState/README.md +++ b/test/cbmc/proofs/OTA_GetState/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_GetStatistics/README.md b/test/cbmc/proofs/OTA_GetStatistics/README.md index 672325121..7919e0de6 100644 --- a/test/cbmc/proofs/OTA_GetStatistics/README.md +++ b/test/cbmc/proofs/OTA_GetStatistics/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_HTTP_strerror/README.md b/test/cbmc/proofs/OTA_HTTP_strerror/README.md index 11353c7dd..182b15eaa 100644 --- a/test/cbmc/proofs/OTA_HTTP_strerror/README.md +++ b/test/cbmc/proofs/OTA_HTTP_strerror/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_Init/README.md b/test/cbmc/proofs/OTA_Init/README.md index 79f398f28..51c4595cc 100644 --- a/test/cbmc/proofs/OTA_Init/README.md +++ b/test/cbmc/proofs/OTA_Init/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_JobParse_strerror/README.md b/test/cbmc/proofs/OTA_JobParse_strerror/README.md index 287a81e58..8a9448d02 100644 --- a/test/cbmc/proofs/OTA_JobParse_strerror/README.md +++ b/test/cbmc/proofs/OTA_JobParse_strerror/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_MQTT_strerror/README.md b/test/cbmc/proofs/OTA_MQTT_strerror/README.md index fcbe70d66..20347cbfe 100644 --- a/test/cbmc/proofs/OTA_MQTT_strerror/README.md +++ b/test/cbmc/proofs/OTA_MQTT_strerror/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_OsStatus_strerror/README.md b/test/cbmc/proofs/OTA_OsStatus_strerror/README.md index 66aa7f527..5a60604f5 100644 --- a/test/cbmc/proofs/OTA_OsStatus_strerror/README.md +++ b/test/cbmc/proofs/OTA_OsStatus_strerror/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_PalStatus_strerror/README.md b/test/cbmc/proofs/OTA_PalStatus_strerror/README.md index 287a81e58..8a9448d02 100644 --- a/test/cbmc/proofs/OTA_PalStatus_strerror/README.md +++ b/test/cbmc/proofs/OTA_PalStatus_strerror/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_Resume/README.md b/test/cbmc/proofs/OTA_Resume/README.md index bb05c1f26..a15ec8f69 100644 --- a/test/cbmc/proofs/OTA_Resume/README.md +++ b/test/cbmc/proofs/OTA_Resume/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_SetImageState/README.md b/test/cbmc/proofs/OTA_SetImageState/README.md index c3601de1b..030463113 100644 --- a/test/cbmc/proofs/OTA_SetImageState/README.md +++ b/test/cbmc/proofs/OTA_SetImageState/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_Shutdown/README.md b/test/cbmc/proofs/OTA_Shutdown/README.md index 566e9f479..c49876f2d 100644 --- a/test/cbmc/proofs/OTA_Shutdown/README.md +++ b/test/cbmc/proofs/OTA_Shutdown/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_SignalEvent/README.md b/test/cbmc/proofs/OTA_SignalEvent/README.md index 983036d7d..7e51790fe 100644 --- a/test/cbmc/proofs/OTA_SignalEvent/README.md +++ b/test/cbmc/proofs/OTA_SignalEvent/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OTA_Suspend/README.md b/test/cbmc/proofs/OTA_Suspend/README.md index 428e06bbc..d29d7737c 100644 --- a/test/cbmc/proofs/OTA_Suspend/README.md +++ b/test/cbmc/proofs/OTA_Suspend/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OtaDeinitEvent_FreeRTOS/README.md b/test/cbmc/proofs/OtaDeinitEvent_FreeRTOS/README.md index 7e72d2da0..b1b3012d8 100644 --- a/test/cbmc/proofs/OtaDeinitEvent_FreeRTOS/README.md +++ b/test/cbmc/proofs/OtaDeinitEvent_FreeRTOS/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OtaDeleteTimer_FreeRTOS/README.md b/test/cbmc/proofs/OtaDeleteTimer_FreeRTOS/README.md index 5051b7406..488650d53 100644 --- a/test/cbmc/proofs/OtaDeleteTimer_FreeRTOS/README.md +++ b/test/cbmc/proofs/OtaDeleteTimer_FreeRTOS/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OtaInitEvent_FreeRTOS/README.md b/test/cbmc/proofs/OtaInitEvent_FreeRTOS/README.md index 8fb0b6716..984e6b452 100644 --- a/test/cbmc/proofs/OtaInitEvent_FreeRTOS/README.md +++ b/test/cbmc/proofs/OtaInitEvent_FreeRTOS/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OtaReceiveEvent_FreeRTOS/README.md b/test/cbmc/proofs/OtaReceiveEvent_FreeRTOS/README.md index 5804ec0ba..e0556fc45 100644 --- a/test/cbmc/proofs/OtaReceiveEvent_FreeRTOS/README.md +++ b/test/cbmc/proofs/OtaReceiveEvent_FreeRTOS/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OtaSendEvent_FreeRTOS/OtaSendEvent_FreeRTOS_harness.c b/test/cbmc/proofs/OtaSendEvent_FreeRTOS/OtaSendEvent_FreeRTOS_harness.c index c4e2f619f..c18fbee75 100644 --- a/test/cbmc/proofs/OtaSendEvent_FreeRTOS/OtaSendEvent_FreeRTOS_harness.c +++ b/test/cbmc/proofs/OtaSendEvent_FreeRTOS/OtaSendEvent_FreeRTOS_harness.c @@ -44,5 +44,5 @@ void OtaSendEvent_FreeRTOS_harness() osStatus = OtaSendEvent_FreeRTOS( pEventCtx, pEventMsg, timeout ); __CPROVER_assert( osStatus == OtaOsSuccess || osStatus == OtaOsEventQueueSendFailed, - "Invalid return value:osStatus should either be OtaOsSuccess or OtaOsEventeQueueSendFailed." ); + "Invalid return value:osStatus should either be OtaOsSuccess or OtaOsEventQueueSendFailed." ); } diff --git a/test/cbmc/proofs/OtaSendEvent_FreeRTOS/README.md b/test/cbmc/proofs/OtaSendEvent_FreeRTOS/README.md index 0e98e6f4f..13eaf27ca 100644 --- a/test/cbmc/proofs/OtaSendEvent_FreeRTOS/README.md +++ b/test/cbmc/proofs/OtaSendEvent_FreeRTOS/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OtaStartTimer_FreeRTOS/OtaStartTimer_FreeRTOS_harness.c b/test/cbmc/proofs/OtaStartTimer_FreeRTOS/OtaStartTimer_FreeRTOS_harness.c index 71dcc26c1..fb458fd28 100644 --- a/test/cbmc/proofs/OtaStartTimer_FreeRTOS/OtaStartTimer_FreeRTOS_harness.c +++ b/test/cbmc/proofs/OtaStartTimer_FreeRTOS/OtaStartTimer_FreeRTOS_harness.c @@ -53,7 +53,7 @@ void OtaStartTimer_FreeRTOS_harness() __CPROVER_assume( pTimerName != NULL ); /* callback is statically defined in ota.c before passing it to - * OtaStartTiemr_FreeRTOS. */ + * OtaStartTimer_FreeRTOS. */ __CPROVER_assume( callback != NULL ); /* To avoid pdMS_TO_TICKS from integer overflow. */ diff --git a/test/cbmc/proofs/OtaStartTimer_FreeRTOS/README.md b/test/cbmc/proofs/OtaStartTimer_FreeRTOS/README.md index df0aff2b6..9ec612f2d 100644 --- a/test/cbmc/proofs/OtaStartTimer_FreeRTOS/README.md +++ b/test/cbmc/proofs/OtaStartTimer_FreeRTOS/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/OtaStopTimer_FreeRTOS/README.md b/test/cbmc/proofs/OtaStopTimer_FreeRTOS/README.md index 275c209f8..e1a49d9a9 100644 --- a/test/cbmc/proofs/OtaStopTimer_FreeRTOS/README.md +++ b/test/cbmc/proofs/OtaStopTimer_FreeRTOS/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/Posix_OtaDeinitEvent/README.md b/test/cbmc/proofs/Posix_OtaDeinitEvent/README.md index 81c48027a..0f31f1d9d 100644 --- a/test/cbmc/proofs/Posix_OtaDeinitEvent/README.md +++ b/test/cbmc/proofs/Posix_OtaDeinitEvent/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/Posix_OtaDeleteTimer/README.md b/test/cbmc/proofs/Posix_OtaDeleteTimer/README.md index 67b5bdaf3..259485081 100644 --- a/test/cbmc/proofs/Posix_OtaDeleteTimer/README.md +++ b/test/cbmc/proofs/Posix_OtaDeleteTimer/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/Posix_OtaInitEvent/README.md b/test/cbmc/proofs/Posix_OtaInitEvent/README.md index c5a27efb0..d21f083f9 100644 --- a/test/cbmc/proofs/Posix_OtaInitEvent/README.md +++ b/test/cbmc/proofs/Posix_OtaInitEvent/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/Posix_OtaReceiveEvent/README.md b/test/cbmc/proofs/Posix_OtaReceiveEvent/README.md index 2a146fb8e..03f06af1f 100644 --- a/test/cbmc/proofs/Posix_OtaReceiveEvent/README.md +++ b/test/cbmc/proofs/Posix_OtaReceiveEvent/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/Posix_OtaSendEvent/README.md b/test/cbmc/proofs/Posix_OtaSendEvent/README.md index bc7d4eae2..96034e573 100644 --- a/test/cbmc/proofs/Posix_OtaSendEvent/README.md +++ b/test/cbmc/proofs/Posix_OtaSendEvent/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/Posix_OtaStartTimer/README.md b/test/cbmc/proofs/Posix_OtaStartTimer/README.md index e48f0baf7..7d58e2245 100644 --- a/test/cbmc/proofs/Posix_OtaStartTimer/README.md +++ b/test/cbmc/proofs/Posix_OtaStartTimer/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/Posix_OtaStopTimer/README.md b/test/cbmc/proofs/Posix_OtaStopTimer/README.md index a89af4e24..f0edd667a 100644 --- a/test/cbmc/proofs/Posix_OtaStopTimer/README.md +++ b/test/cbmc/proofs/Posix_OtaStopTimer/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/Posix_RequestTimerCallback/README.md b/test/cbmc/proofs/Posix_RequestTimerCallback/README.md index 5957ba24f..b60c284a8 100644 --- a/test/cbmc/proofs/Posix_RequestTimerCallback/README.md +++ b/test/cbmc/proofs/Posix_RequestTimerCallback/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/Posix_selfTestTimerCallback/README.md b/test/cbmc/proofs/Posix_selfTestTimerCallback/README.md index 825cae8d4..8c25fc162 100644 --- a/test/cbmc/proofs/Posix_selfTestTimerCallback/README.md +++ b/test/cbmc/proofs/Posix_selfTestTimerCallback/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/STDC_FREE/README.md b/test/cbmc/proofs/STDC_FREE/README.md index 37b67a072..79b6ff6e3 100644 --- a/test/cbmc/proofs/STDC_FREE/README.md +++ b/test/cbmc/proofs/STDC_FREE/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/STDC_Malloc/README.md b/test/cbmc/proofs/STDC_Malloc/README.md index f2f82411a..dee315d25 100644 --- a/test/cbmc/proofs/STDC_Malloc/README.md +++ b/test/cbmc/proofs/STDC_Malloc/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/agentShutdownCleanup/README.md b/test/cbmc/proofs/agentShutdownCleanup/README.md index 88d6b0fa8..a88d1ab29 100644 --- a/test/cbmc/proofs/agentShutdownCleanup/README.md +++ b/test/cbmc/proofs/agentShutdownCleanup/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/base64Decode/README.md b/test/cbmc/proofs/base64Decode/README.md index e63cbbbbc..f6b09e4cb 100644 --- a/test/cbmc/proofs/base64Decode/README.md +++ b/test/cbmc/proofs/base64Decode/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/buildStatusMessageReceiving/README.md b/test/cbmc/proofs/buildStatusMessageReceiving/README.md index 566e1e3e0..836f24627 100644 --- a/test/cbmc/proofs/buildStatusMessageReceiving/README.md +++ b/test/cbmc/proofs/buildStatusMessageReceiving/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/checkDataType/README.md b/test/cbmc/proofs/checkDataType/README.md index 7c4720744..76dcd78ab 100644 --- a/test/cbmc/proofs/checkDataType/README.md +++ b/test/cbmc/proofs/checkDataType/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/cleanupControl_Mqtt/README.md b/test/cbmc/proofs/cleanupControl_Mqtt/README.md index 32b9d7384..b163f2502 100644 --- a/test/cbmc/proofs/cleanupControl_Mqtt/README.md +++ b/test/cbmc/proofs/cleanupControl_Mqtt/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/cleanupData_Http/README.md b/test/cbmc/proofs/cleanupData_Http/README.md index 9437fdbde..2ec6f9277 100644 --- a/test/cbmc/proofs/cleanupData_Http/README.md +++ b/test/cbmc/proofs/cleanupData_Http/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/cleanupData_Mqtt/README.md b/test/cbmc/proofs/cleanupData_Mqtt/README.md index 3bd67d9a4..8a4747e25 100644 --- a/test/cbmc/proofs/cleanupData_Mqtt/README.md +++ b/test/cbmc/proofs/cleanupData_Mqtt/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/closeFileHandler/README.md b/test/cbmc/proofs/closeFileHandler/README.md index c377a55d3..dcc4d112a 100644 --- a/test/cbmc/proofs/closeFileHandler/README.md +++ b/test/cbmc/proofs/closeFileHandler/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/dataHandlerCleanup/README.md b/test/cbmc/proofs/dataHandlerCleanup/README.md index 68dd63f40..b88deaf85 100644 --- a/test/cbmc/proofs/dataHandlerCleanup/README.md +++ b/test/cbmc/proofs/dataHandlerCleanup/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/decodeAndStoreDataBlock/README.md b/test/cbmc/proofs/decodeAndStoreDataBlock/README.md index ab08e19b0..0b89ad54e 100644 --- a/test/cbmc/proofs/decodeAndStoreDataBlock/README.md +++ b/test/cbmc/proofs/decodeAndStoreDataBlock/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/decodeAndStoreKey/README.md b/test/cbmc/proofs/decodeAndStoreKey/README.md index 62c82a954..02daff4a4 100644 --- a/test/cbmc/proofs/decodeAndStoreKey/README.md +++ b/test/cbmc/proofs/decodeAndStoreKey/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/decodeBase64IndexBuffer/README.md b/test/cbmc/proofs/decodeBase64IndexBuffer/README.md index 57ddefb5e..32bee2847 100644 --- a/test/cbmc/proofs/decodeBase64IndexBuffer/README.md +++ b/test/cbmc/proofs/decodeBase64IndexBuffer/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/decodeFileBlock_Http/README.md b/test/cbmc/proofs/decodeFileBlock_Http/README.md index 0b498dad8..e1eeec33a 100644 --- a/test/cbmc/proofs/decodeFileBlock_Http/README.md +++ b/test/cbmc/proofs/decodeFileBlock_Http/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/decodeFileBlock_Mqtt/README.md b/test/cbmc/proofs/decodeFileBlock_Mqtt/README.md index 53d48cbc3..36e8e23fe 100644 --- a/test/cbmc/proofs/decodeFileBlock_Mqtt/README.md +++ b/test/cbmc/proofs/decodeFileBlock_Mqtt/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/executeHandler/README.md b/test/cbmc/proofs/executeHandler/README.md index 533bf0744..3c0f26e28 100644 --- a/test/cbmc/proofs/executeHandler/README.md +++ b/test/cbmc/proofs/executeHandler/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/extractAndStoreArray/README.md b/test/cbmc/proofs/extractAndStoreArray/README.md index 2db4e0319..ad76f4890 100644 --- a/test/cbmc/proofs/extractAndStoreArray/README.md +++ b/test/cbmc/proofs/extractAndStoreArray/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/extractAndStoreArray/extractAndStoreArray_harness.c b/test/cbmc/proofs/extractAndStoreArray/extractAndStoreArray_harness.c index a6f654413..880609ca9 100644 --- a/test/cbmc/proofs/extractAndStoreArray/extractAndStoreArray_harness.c +++ b/test/cbmc/proofs/extractAndStoreArray/extractAndStoreArray_harness.c @@ -77,7 +77,7 @@ void extractAndStoreArray_harness() /* The maximum returned by extractAndStoreArray is the length of the otaTransitionTable which * is defined by TRANSITION_TABLE_LEN in the Makefile. */ __CPROVER_assert( ( err == DocParseErrNone ) || ( err == DocParseErrOutOfMemory ) || - ( err == DocParseErrUserBufferInsuffcient ), + ( err == DocParseErrUserBufferInsufficient ), "Error: Return value from processValidFileContext should follow values of OtaErr_t enum." ); free( pParamAdd ); diff --git a/test/cbmc/proofs/extractParameter/README.md b/test/cbmc/proofs/extractParameter/README.md index c12975dfe..28ba63669 100644 --- a/test/cbmc/proofs/extractParameter/README.md +++ b/test/cbmc/proofs/extractParameter/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/freeFileContextMem/README.md b/test/cbmc/proofs/freeFileContextMem/README.md index 730c15feb..a79029481 100644 --- a/test/cbmc/proofs/freeFileContextMem/README.md +++ b/test/cbmc/proofs/freeFileContextMem/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/getFileContextFromJob/README.md b/test/cbmc/proofs/getFileContextFromJob/README.md index 16fd14e71..0770ae7b6 100644 --- a/test/cbmc/proofs/getFileContextFromJob/README.md +++ b/test/cbmc/proofs/getFileContextFromJob/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/handleCustomJob/README.md b/test/cbmc/proofs/handleCustomJob/README.md index fac862cee..be8ee007b 100644 --- a/test/cbmc/proofs/handleCustomJob/README.md +++ b/test/cbmc/proofs/handleCustomJob/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/handleJobParsingError/README.md b/test/cbmc/proofs/handleJobParsingError/README.md index f79b2c199..4608e2e2f 100644 --- a/test/cbmc/proofs/handleJobParsingError/README.md +++ b/test/cbmc/proofs/handleJobParsingError/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/handleSelfTestJobDoc/README.md b/test/cbmc/proofs/handleSelfTestJobDoc/README.md index d77cae628..2795cf07e 100644 --- a/test/cbmc/proofs/handleSelfTestJobDoc/README.md +++ b/test/cbmc/proofs/handleSelfTestJobDoc/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/handleUnexpectedEvents/README.md b/test/cbmc/proofs/handleUnexpectedEvents/README.md index 0cad0e9c3..5de794c55 100644 --- a/test/cbmc/proofs/handleUnexpectedEvents/README.md +++ b/test/cbmc/proofs/handleUnexpectedEvents/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/inSelfTestHandler/README.md b/test/cbmc/proofs/inSelfTestHandler/README.md index 79faa3eb4..d672ee64f 100644 --- a/test/cbmc/proofs/inSelfTestHandler/README.md +++ b/test/cbmc/proofs/inSelfTestHandler/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/ingestDataBlock/README.md b/test/cbmc/proofs/ingestDataBlock/README.md index cd2619a52..2b7da2e64 100644 --- a/test/cbmc/proofs/ingestDataBlock/README.md +++ b/test/cbmc/proofs/ingestDataBlock/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/ingestDataBlockCleanup/README.md b/test/cbmc/proofs/ingestDataBlockCleanup/README.md index 0830ce252..8822e0303 100644 --- a/test/cbmc/proofs/ingestDataBlockCleanup/README.md +++ b/test/cbmc/proofs/ingestDataBlockCleanup/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/initDocModel/README.md b/test/cbmc/proofs/initDocModel/README.md index da8392542..98c55ec80 100644 --- a/test/cbmc/proofs/initDocModel/README.md +++ b/test/cbmc/proofs/initDocModel/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/initFileHandler/README.md b/test/cbmc/proofs/initFileHandler/README.md index 12d458652..f5eb4ba7f 100644 --- a/test/cbmc/proofs/initFileHandler/README.md +++ b/test/cbmc/proofs/initFileHandler/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/initFileTransfer_Http/README.md b/test/cbmc/proofs/initFileTransfer_Http/README.md index d5f9890a8..0233454e4 100644 --- a/test/cbmc/proofs/initFileTransfer_Http/README.md +++ b/test/cbmc/proofs/initFileTransfer_Http/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/initFileTransfer_Mqtt/README.md b/test/cbmc/proofs/initFileTransfer_Mqtt/README.md index eb42c15c2..c5c108985 100644 --- a/test/cbmc/proofs/initFileTransfer_Mqtt/README.md +++ b/test/cbmc/proofs/initFileTransfer_Mqtt/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/initializeAppBuffers/README.md b/test/cbmc/proofs/initializeAppBuffers/README.md index 567d51182..22aa3ec9e 100644 --- a/test/cbmc/proofs/initializeAppBuffers/README.md +++ b/test/cbmc/proofs/initializeAppBuffers/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/initializeLocalBuffers/README.md b/test/cbmc/proofs/initializeLocalBuffers/README.md index 6a413bc10..046b5c1ec 100644 --- a/test/cbmc/proofs/initializeLocalBuffers/README.md +++ b/test/cbmc/proofs/initializeLocalBuffers/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/jobNotificationHandler/README.md b/test/cbmc/proofs/jobNotificationHandler/README.md index 832fc91be..779db7f70 100644 --- a/test/cbmc/proofs/jobNotificationHandler/README.md +++ b/test/cbmc/proofs/jobNotificationHandler/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/otaClose/README.md b/test/cbmc/proofs/otaClose/README.md index 6ba2f200a..c25233620 100644 --- a/test/cbmc/proofs/otaClose/README.md +++ b/test/cbmc/proofs/otaClose/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/otaTimerCallback/README.md b/test/cbmc/proofs/otaTimerCallback/README.md index fe3173e48..3efbd27ab 100644 --- a/test/cbmc/proofs/otaTimerCallback/README.md +++ b/test/cbmc/proofs/otaTimerCallback/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/parseJSONbyModel/README.md b/test/cbmc/proofs/parseJSONbyModel/README.md index 1642e6879..fec182ef7 100644 --- a/test/cbmc/proofs/parseJSONbyModel/README.md +++ b/test/cbmc/proofs/parseJSONbyModel/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/parseJobDoc/README.md b/test/cbmc/proofs/parseJobDoc/README.md index 426b44767..89de333d1 100644 --- a/test/cbmc/proofs/parseJobDoc/README.md +++ b/test/cbmc/proofs/parseJobDoc/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/platformInSelftest/README.md b/test/cbmc/proofs/platformInSelftest/README.md index 9cc02bbd7..526314952 100644 --- a/test/cbmc/proofs/platformInSelftest/README.md +++ b/test/cbmc/proofs/platformInSelftest/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/preprocessBase64Index/README.md b/test/cbmc/proofs/preprocessBase64Index/README.md index 025445dae..af143cfab 100644 --- a/test/cbmc/proofs/preprocessBase64Index/README.md +++ b/test/cbmc/proofs/preprocessBase64Index/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/processDataBlock/README.md b/test/cbmc/proofs/processDataBlock/README.md index ab3512ef1..25731a088 100644 --- a/test/cbmc/proofs/processDataBlock/README.md +++ b/test/cbmc/proofs/processDataBlock/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/processDataHandler/README.md b/test/cbmc/proofs/processDataHandler/README.md index 7af7ba1c1..6e3c7c35b 100644 --- a/test/cbmc/proofs/processDataHandler/README.md +++ b/test/cbmc/proofs/processDataHandler/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/processJobHandler/README.md b/test/cbmc/proofs/processJobHandler/README.md index 0a13b3131..8b56cda7c 100644 --- a/test/cbmc/proofs/processJobHandler/README.md +++ b/test/cbmc/proofs/processJobHandler/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/processNullFileContext/README.md b/test/cbmc/proofs/processNullFileContext/README.md index fbd4c1ad1..c7b1f8810 100644 --- a/test/cbmc/proofs/processNullFileContext/README.md +++ b/test/cbmc/proofs/processNullFileContext/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/processValidFileContext/README.md b/test/cbmc/proofs/processValidFileContext/README.md index b2d0b184e..553945983 100644 --- a/test/cbmc/proofs/processValidFileContext/README.md +++ b/test/cbmc/proofs/processValidFileContext/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/prvBuildStatusMessageFinish/README.md b/test/cbmc/proofs/prvBuildStatusMessageFinish/README.md index be3ec328f..06670cf6c 100644 --- a/test/cbmc/proofs/prvBuildStatusMessageFinish/README.md +++ b/test/cbmc/proofs/prvBuildStatusMessageFinish/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/prvBuildStatusMessageSelfTest/README.md b/test/cbmc/proofs/prvBuildStatusMessageSelfTest/README.md index 8987a2158..dd1ed1aef 100644 --- a/test/cbmc/proofs/prvBuildStatusMessageSelfTest/README.md +++ b/test/cbmc/proofs/prvBuildStatusMessageSelfTest/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/publishStatusMessage/README.md b/test/cbmc/proofs/publishStatusMessage/README.md index acdc2cec8..4b0dcc23a 100644 --- a/test/cbmc/proofs/publishStatusMessage/README.md +++ b/test/cbmc/proofs/publishStatusMessage/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/receiveAndProcessOtaEvent/README.md b/test/cbmc/proofs/receiveAndProcessOtaEvent/README.md index 7ef0a69cc..5a84bce7d 100644 --- a/test/cbmc/proofs/receiveAndProcessOtaEvent/README.md +++ b/test/cbmc/proofs/receiveAndProcessOtaEvent/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/requestDataBlock_Http/README.md b/test/cbmc/proofs/requestDataBlock_Http/README.md index eda7955a1..f6783b8f3 100644 --- a/test/cbmc/proofs/requestDataBlock_Http/README.md +++ b/test/cbmc/proofs/requestDataBlock_Http/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/requestDataHandler/README.md b/test/cbmc/proofs/requestDataHandler/README.md index c82f76448..890a4b8db 100644 --- a/test/cbmc/proofs/requestDataHandler/README.md +++ b/test/cbmc/proofs/requestDataHandler/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/requestFileBlock_Mqtt/README.md b/test/cbmc/proofs/requestFileBlock_Mqtt/README.md index 7986e9edf..0b9d7924f 100644 --- a/test/cbmc/proofs/requestFileBlock_Mqtt/README.md +++ b/test/cbmc/proofs/requestFileBlock_Mqtt/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/requestJobHandler/README.md b/test/cbmc/proofs/requestJobHandler/README.md index 8981a866a..0553170e2 100644 --- a/test/cbmc/proofs/requestJobHandler/README.md +++ b/test/cbmc/proofs/requestJobHandler/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/requestJob_Mqtt/README.md b/test/cbmc/proofs/requestJob_Mqtt/README.md index b561067dc..c3327a678 100644 --- a/test/cbmc/proofs/requestJob_Mqtt/README.md +++ b/test/cbmc/proofs/requestJob_Mqtt/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/requestTimerCallback/README.md b/test/cbmc/proofs/requestTimerCallback/README.md index 5957ba24f..b60c284a8 100644 --- a/test/cbmc/proofs/requestTimerCallback/README.md +++ b/test/cbmc/proofs/requestTimerCallback/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/resetEventQueue/README.md b/test/cbmc/proofs/resetEventQueue/README.md index 8e4e49fd4..db267dbad 100644 --- a/test/cbmc/proofs/resetEventQueue/README.md +++ b/test/cbmc/proofs/resetEventQueue/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/resumeHandler/README.md b/test/cbmc/proofs/resumeHandler/README.md index 7043ad9bf..5f625cf8f 100644 --- a/test/cbmc/proofs/resumeHandler/README.md +++ b/test/cbmc/proofs/resumeHandler/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/searchTransition/README.md b/test/cbmc/proofs/searchTransition/README.md index 2536571b9..40edb4be4 100644 --- a/test/cbmc/proofs/searchTransition/README.md +++ b/test/cbmc/proofs/searchTransition/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/selfTestTimerCallback/README.md b/test/cbmc/proofs/selfTestTimerCallback/README.md index 825cae8d4..8c25fc162 100644 --- a/test/cbmc/proofs/selfTestTimerCallback/README.md +++ b/test/cbmc/proofs/selfTestTimerCallback/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/setControlInterface/README.md b/test/cbmc/proofs/setControlInterface/README.md index 367930992..c124f0c26 100644 --- a/test/cbmc/proofs/setControlInterface/README.md +++ b/test/cbmc/proofs/setControlInterface/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/setDataInterface/README.md b/test/cbmc/proofs/setDataInterface/README.md index 48169f993..febabba4a 100644 --- a/test/cbmc/proofs/setDataInterface/README.md +++ b/test/cbmc/proofs/setDataInterface/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/setImageStateWithReason/README.md b/test/cbmc/proofs/setImageStateWithReason/README.md index 5003406b7..acda13a4e 100644 --- a/test/cbmc/proofs/setImageStateWithReason/README.md +++ b/test/cbmc/proofs/setImageStateWithReason/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/shutdownHandler/README.md b/test/cbmc/proofs/shutdownHandler/README.md index 8c5cc25a8..a2c434102 100644 --- a/test/cbmc/proofs/shutdownHandler/README.md +++ b/test/cbmc/proofs/shutdownHandler/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/startHandler/README.md b/test/cbmc/proofs/startHandler/README.md index 5f1abacc9..b1bbe291a 100644 --- a/test/cbmc/proofs/startHandler/README.md +++ b/test/cbmc/proofs/startHandler/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/stringBuilder/README.md b/test/cbmc/proofs/stringBuilder/README.md index a3f94c8a2..d788a4ea5 100644 --- a/test/cbmc/proofs/stringBuilder/README.md +++ b/test/cbmc/proofs/stringBuilder/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/stringBuilderUInt32Decimal/README.md b/test/cbmc/proofs/stringBuilderUInt32Decimal/README.md index 0bf3518f5..3bda6af8a 100644 --- a/test/cbmc/proofs/stringBuilderUInt32Decimal/README.md +++ b/test/cbmc/proofs/stringBuilderUInt32Decimal/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/stringBuilderUInt32Hex/README.md b/test/cbmc/proofs/stringBuilderUInt32Hex/README.md index 79871a26e..a5174f327 100644 --- a/test/cbmc/proofs/stringBuilderUInt32Hex/README.md +++ b/test/cbmc/proofs/stringBuilderUInt32Hex/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/subscribeToJobNotificationTopics/README.md b/test/cbmc/proofs/subscribeToJobNotificationTopics/README.md index 3a5c1d513..a7a0b3c93 100644 --- a/test/cbmc/proofs/subscribeToJobNotificationTopics/README.md +++ b/test/cbmc/proofs/subscribeToJobNotificationTopics/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/suspendHandler/README.md b/test/cbmc/proofs/suspendHandler/README.md index a7f88ead0..c58c77464 100644 --- a/test/cbmc/proofs/suspendHandler/README.md +++ b/test/cbmc/proofs/suspendHandler/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/unsubscribeFromDataStream/README.md b/test/cbmc/proofs/unsubscribeFromDataStream/README.md index 7d53356f7..45a9308af 100644 --- a/test/cbmc/proofs/unsubscribeFromDataStream/README.md +++ b/test/cbmc/proofs/unsubscribeFromDataStream/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/unsubscribeFromJobNotificationTopic/README.md b/test/cbmc/proofs/unsubscribeFromJobNotificationTopic/README.md index 940da9926..66e03b424 100644 --- a/test/cbmc/proofs/unsubscribeFromJobNotificationTopic/README.md +++ b/test/cbmc/proofs/unsubscribeFromJobNotificationTopic/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/updateBase64DecodingBuffer/README.md b/test/cbmc/proofs/updateBase64DecodingBuffer/README.md index 09e6b9db3..5561a9583 100644 --- a/test/cbmc/proofs/updateBase64DecodingBuffer/README.md +++ b/test/cbmc/proofs/updateBase64DecodingBuffer/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/updateJobStatusFromImageState/README.md b/test/cbmc/proofs/updateJobStatusFromImageState/README.md index f5d53797a..e142c8d7d 100644 --- a/test/cbmc/proofs/updateJobStatusFromImageState/README.md +++ b/test/cbmc/proofs/updateJobStatusFromImageState/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/updateJobStatus_Mqtt/README.md b/test/cbmc/proofs/updateJobStatus_Mqtt/README.md index 3a4235625..39cb1389e 100644 --- a/test/cbmc/proofs/updateJobStatus_Mqtt/README.md +++ b/test/cbmc/proofs/updateJobStatus_Mqtt/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/userAbortHandler/README.md b/test/cbmc/proofs/userAbortHandler/README.md index 82d561389..a07c507c2 100644 --- a/test/cbmc/proofs/userAbortHandler/README.md +++ b/test/cbmc/proofs/userAbortHandler/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/validateAndStartJob/README.md b/test/cbmc/proofs/validateAndStartJob/README.md index aa91256ce..86e9de970 100644 --- a/test/cbmc/proofs/validateAndStartJob/README.md +++ b/test/cbmc/proofs/validateAndStartJob/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/validateDataBlock/README.md b/test/cbmc/proofs/validateDataBlock/README.md index 7cb6baf04..8bf3ab6e2 100644 --- a/test/cbmc/proofs/validateDataBlock/README.md +++ b/test/cbmc/proofs/validateDataBlock/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/validateJSON/README.md b/test/cbmc/proofs/validateJSON/README.md index a09d67ec9..a57d602e2 100644 --- a/test/cbmc/proofs/validateJSON/README.md +++ b/test/cbmc/proofs/validateJSON/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/validateUpdateVersion/README.md b/test/cbmc/proofs/validateUpdateVersion/README.md index c3ce4967f..faa64aeda 100644 --- a/test/cbmc/proofs/validateUpdateVersion/README.md +++ b/test/cbmc/proofs/validateUpdateVersion/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/verifyActiveJobStatus/README.md b/test/cbmc/proofs/verifyActiveJobStatus/README.md index f0e1d4863..b74bb3353 100644 --- a/test/cbmc/proofs/verifyActiveJobStatus/README.md +++ b/test/cbmc/proofs/verifyActiveJobStatus/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/cbmc/proofs/verifyRequiredParamsExtracted/README.md b/test/cbmc/proofs/verifyRequiredParamsExtracted/README.md index c376ce84f..591d66785 100644 --- a/test/cbmc/proofs/verifyRequiredParamsExtracted/README.md +++ b/test/cbmc/proofs/verifyRequiredParamsExtracted/README.md @@ -11,7 +11,7 @@ To run the proof. * Run `make`. * Open html/index.html in a web browser. -To use [`arpa`](https://github.com/awslabs/aws-proof-build-assistant) to simplify writing Makefiles. +To use [`arpa`](https://awslabs.github.io/aws-proof-build-assistant) to simplify writing Makefiles. ------------- * Run `make arpa` to generate a Makefile.arpa that contains relevant build information for the proof. diff --git a/test/unit-test/CMakeLists.txt b/test/unit-test/CMakeLists.txt index 835972a62..d1423c652 100644 --- a/test/unit-test/CMakeLists.txt +++ b/test/unit-test/CMakeLists.txt @@ -1,6 +1,6 @@ # Include filepaths for source and include. include( ${MODULE_ROOT_DIR}/otaFilePaths.cmake ) -include( ${MODULE_ROOT_DIR}/otaDependenyFilePaths.cmake ) +include( ${MODULE_ROOT_DIR}/otaDependencyFilePaths.cmake ) # ==================== Define your project name (edit) ======================== set(project_name "aws_ota") diff --git a/test/unit-test/ota_os_posix_utest.c b/test/unit-test/ota_os_posix_utest.c index 66caec044..62f6c71f2 100644 --- a/test/unit-test/ota_os_posix_utest.c +++ b/test/unit-test/ota_os_posix_utest.c @@ -45,11 +45,11 @@ static OtaTimerInterface_t timer; static OtaEventInterface_t event; static OtaEventContext_t * pEventContext = NULL; -static bool timerCallbackInovked = false; +static bool timerCallbackInvoked = false; static void timerCallback() { - timerCallbackInovked = true; + timerCallbackInvoked = true; } /* ============================ UNITY FIXTURES ============================ */ @@ -68,7 +68,7 @@ void setUp( void ) void tearDown( void ) { - timerCallbackInovked = false; + timerCallbackInvoked = false; } /* ========================================================================== */ @@ -123,14 +123,14 @@ void timerCreateAndStop( OtaTimerId_t timer_id ) TEST_ASSERT_EQUAL( OtaOsSuccess, result ); /* Wait for the timer callback to be invoked. */ - while( timerCallbackInovked == false && wait > 0 ) + while( timerCallbackInvoked == false && wait > 0 ) { /* Sleep 1 ms. */ usleep( 1000 ); --wait; } - TEST_ASSERT_EQUAL( true, timerCallbackInovked ); + TEST_ASSERT_EQUAL( true, timerCallbackInvoked ); result = timer.stop( timer_id ); TEST_ASSERT_EQUAL( OtaOsSuccess, result ); diff --git a/test/unit-test/ota_utest.c b/test/unit-test/ota_utest.c index ae7677155..67c36cf94 100644 --- a/test/unit-test/ota_utest.c +++ b/test/unit-test/ota_utest.c @@ -469,11 +469,11 @@ static OtaMqttStatus_t stubMqttPublish( const char * const unused_1, return OtaMqttSuccess; } -static OtaMqttStatus_t stubMqttPublishOnlySuccedsTopicIsCorrect( const char * const topic, - uint16_t topicLength, - const char * unused_1, - uint32_t unused_2, - uint8_t unused_3 ) +static OtaMqttStatus_t stubMqttPublishOnlySucceedsTopicIsCorrect( const char * const topic, + uint16_t topicLength, + const char * unused_1, + uint32_t unused_2, + uint8_t unused_3 ) { ( void ) unused_1; ( void ) unused_2; @@ -494,11 +494,11 @@ static OtaMqttStatus_t stubMqttPublishOnlySuccedsTopicIsCorrect( const char * co return OtaMqttSuccess; } -static OtaMqttStatus_t stubMqttPublishOnlySuccedsIfTruncatedValue( const char * const unused_1, - uint16_t unused_2, - const char * msg, - uint32_t msgSize, - uint8_t unused_3 ) +static OtaMqttStatus_t stubMqttPublishOnlySucceedsIfTruncatedValue( const char * const unused_1, + uint16_t unused_2, + const char * msg, + uint32_t msgSize, + uint8_t unused_3 ) { ( void ) unused_1; ( void ) unused_2; @@ -1536,7 +1536,7 @@ void test_OTA_ImageStateAbortUpdateStatusFail() TEST_ASSERT_EQUAL( OtaImageStateAborted, OTA_GetImageState() ); } -void test_OTA_ImageStateRjectWithActiveJob() +void test_OTA_ImageStateRejectWithActiveJob() { otaGoToState( OtaAgentStateWaitingForFileBlock ); @@ -1544,7 +1544,7 @@ void test_OTA_ImageStateRjectWithActiveJob() TEST_ASSERT_EQUAL( OtaImageStateRejected, OTA_GetImageState() ); } -void test_OTA_ImageStateRjectWithNoJob() +void test_OTA_ImageStateRejectWithNoJob() { otaGoToState( OtaAgentStateReady ); TEST_ASSERT_EQUAL( OtaAgentStateReady, OTA_GetState() ); @@ -2865,7 +2865,7 @@ void test_OTA_MQTT_PublishesToCorrectTopic() otaInitDefault(); otaInterfaces.mqtt.subscribe = stubMqttSubscribe; - otaInterfaces.mqtt.publish = stubMqttPublishOnlySuccedsTopicIsCorrect; + otaInterfaces.mqtt.publish = stubMqttPublishOnlySucceedsTopicIsCorrect; err = requestJob_Mqtt( &otaAgent ); @@ -2879,7 +2879,7 @@ void test_OTA_MQTT_ThingNameTruncated() otaInit( longestThingname, mockAppCallback ); otaInterfaces.mqtt.subscribe = stubMqttSubscribe; - otaInterfaces.mqtt.publish = stubMqttPublishOnlySuccedsIfTruncatedValue; + otaInterfaces.mqtt.publish = stubMqttPublishOnlySucceedsIfTruncatedValue; err = requestJob_Mqtt( &otaAgent ); @@ -3823,7 +3823,7 @@ void test_OTA_jobIdMaxLength() /* Enlarge job name and size in doc param to simulate if the size of pJobNameBuffer in ota.c * and pActiveJobName in OtaAgentContext_t is different. */ -void test_OTA_jobBufferLargerThanpActiveJobName() +void test_OTA_jobBufferLargerThanActiveJobName() { pOtaJobDoc = JOB_DOC_INVALID_JOB_ID_LEN_MAX; diff --git a/tools/lexicon.txt b/tools/lexicon.txt deleted file mode 100644 index 67a48b261..000000000 --- a/tools/lexicon.txt +++ /dev/null @@ -1,920 +0,0 @@ -123456789 -abcdefghijklmnopqrstuvwxyz -abortupdate -activatenewimage -activejobname -addrinfo -addtogroup -afr -agentshutdowncleanup -allocateaddrinfolinkedlist -alpn -alpnprotoslen -api -apis -app -appfirmwareversion -ascii -asciidigits -attemptsdone -attr -auth -authscheme -authschememaxsize -authschemesize -aws -backoff -backoffdelay -basedefs -bitmaplen -bitmask -blockbitmapmaxsize -blockbitmapsize -blockid -blockindex -blockindex -blockoffset -blocksize -blocksremaining -bodylen -bool -bootloader -br -buf -buffersizebytes -bufferused -buildstatusmessagereceiving -bytesreceived -bytessent -bytestorecv -bytestosend -byteswritten -c89 -c90 -ca -cbmc -cbor -cborarray -cborerror -cbormap -cbormaptype -cborstring -cborvalue -cborwork -certfile -certfilepath -certfilepathmaxsize -certfilepathsize -checkdatatype -checkforupdate -cli -clienttoken -clienttokensize -closefile -closefilehandler -closeresult -cmock -co -colspan -com -completecallback -cond -config -configassert -configpagestyle -configprintf -configs -configurably -connectsuccessindex -const -constantspage -container -contextbase -contextbaseaddr -contextsize -copydoc -corejson -coremqtt -couldn -coverity -cpu -cr -createfile -createfileforrx -crt -crypto -csdk -css -currblock -currentstate -cwd -datablock -datacallback -datahandlercleanup -datalength -decodeandstoredatablock -decodeandstorekey -decodefileblock -decodemem -decodememmaxsize -decodememorysize -deduplicate -defaultotacompletecallback -defaultotacompletecallback -defgroup -deinit -deinitialize -deinitializing -deletetimer -destlen -destoffset -developerguide -didn -div -dns -docmodel -docparam -docparseerrduplicatesnotallowed -docparseerremptyjobdoc -docparseerrfieldtypemismatch -docparseerrinvalidmodelparamtype -docparseerrinvalidnumchar -docparseerrinvalidtoken -docparseerrmalformeddoc -docparseerrnone -docparseerrnullbodypointer -docparseerrnulldocpointer -docparseerrnullmodelpointer -docparseerroutofmemory -docparseerrparamkeynotinmodel -docparseerrtoomanyparams -docparseerrunknown -docparseerruserbufferinsuffcient -doesn't -doxygen -eagain -ecdsa -eevent -encodedlen -encodedsize -endcode -endcond -enddot -endian -endif -enum -enums -errno -errornumber -establishconnection -ethernet -eventdata -eventid -eventmsg -ewouldblock -executehandler -executionnumber -expectedstatus -expectedtype -extractandstorearray -extractparameter -failedwithval -faqmem -fclose -fd -fileattributes -filebitmapsize -fileblock -filecontext -filehandle -fileid -fileindex -filelabel -fileparameters -filepath -filepathmaxsize -filepaths -filesize -filetype -filetypeid -fillcolor -fixme -fontname -fontsize -fopen -freefilecontextmem -freertos -freertosipconfig -freertos.org -functionname -functionpage -functionpointers -functionspage -functiontofail -gcc -generater -getaddrinfo -getagentstate -getcwd -getfilecontextfromjob -getimagestate -getpacketsdropped -getpacketsprocessed -getpacketsqueued -getpacketsreceived -getplatformimagestate -github -handlecustomjob -handledatafromhttpservice -handlejobparsingerror -handlenetworkerrors -handlereconnect -handleselftestjobdoc -handleunexpectedevents -helvetica -hostnamelength -html -http -httpdeinit -httpinit -httpinterface -httprequest -https -iblocksize -ifndef -imagestate -implemenation -inc -ingestdatablock -ingestdatablockcleanup -ingestresultbaddata -ingestresultbadfilehandle -ingestresultblockoutofrange -ingestresultfileclosefail -ingestresultfilecomplete -ingestresultfilecomplete -ingestresultnodecodememory -ingestresultnullcontext -ingestresultnullinput -ingestresultnullresultpointer -ingestresultsigcheckfail -ingestresultunexpectedblock -ingestresultuninitialized -ingestresultwriteblockfailed -ingroup -init -initdocmodel -initfilehandler -initfiletransfer -initializeappbuffers -initializelocalbuffers -inout -inprogress -inselftesthandler -int -intel -ioffset -iot -iotcore -ip -ip -isinselftest -iso -isotainterfaceinited -jobcallback -jobdoc -jobdoclength -jobdocument -jobid -jobidlength -jobname -jobnamemaxsize -jobnotificationhandler -jobreasonaborted -jobreasonaccepted -jobreasonreceiving -jobreasonrejected -jobreasonselftestactive -jobreasonsigcheckpassed -jobstatusfailedwithval -jobstatusinprogress -jobstatusrejected -json -jsondoc -lastbyte -lastupdatedat -len -lf -li -linux -logdebug -logerror -loginfo -logpath -logwarn -longjmp -mainpage -malloc -mac -maxattempts -maxfragmentlength -maxlen -mcu -md -mem -memcpy -messagebuffersize -messagelength -messagelevel -messagesize -mfln -min -misra -mit -mockoseventsendthenstop -modelparams -modelparamtype -modelparamtypestringindoc -mqtt -mqttinterface -mqttpublish -mqttsubscribe -mqttunsubscribe -msec -msgbuffersize -msgsize -msgtailsize -msgvalidity -mutexhandle -mynetworkrecvimplementation -mynetworksendimplementation -mytcpsocketcontext -mythreadsleepfunction -mytime -mytimefunction -mytlscontext -nan -nano -nanosleep -netmask -networkcontext -newversion -nextjittermax -nextstate -noninfringement -numblocks -numblocksrequest -numjobparams -numjobstatusmappings -nummodelparams -numofblocksrequested -numofblockstoreceive -numpadding -numstrings -numwhitespace -ok -onlinepubs -opendns -opengroup -openssl -openssl_invalid_parameter -org -os -ota -ota_mqtt_component -otaagent -otaagenteventclosefile -otaagenteventcreatefile -otaagenteventcreatefile -otaagenteventmax -otaagenteventreceivedfileblock -otaagenteventreceivedjobdocument -otaagenteventrequestfileblock -otaagenteventrequestjobdocument -otaagenteventrequesttimer -otaagenteventresume -otaagenteventshutdown -otaagenteventstart -otaagenteventstartselftest -otaagenteventsuspend -otaagenteventuserabort -otaagentstatecreatingfile -otaagentstatenotready -otaagentstatenotready -otaagentstateready -otaagentstateshuttingdown -otaagentstatestopped -otaagentstatestopped -otaagentstatesuspended -otaagentstatewaitingforjob -otaagentstubs -otaappcallback -otabuffer -otacallback -otaclose -otaconfigallowdowngrade -otacontrolinterface -otaerr -otaerractivatefailed -otaerragentstopped -otaerrcleanupcontrolfailed -otaerrcleanupdatafailed -otaerrdowngradenotallowed -otaerremptyjobdocument -otaerrfailedtodecodecbor -otaerrfailedtoencodecbor -otaerrfilesizeoverflow -otaerrimagestatemismatch -otaerrinitfiletransferfailed -otaerrinvalidarg -otaerrinvaliddataprotocol -otaerrjobparsererror -otaerrmomentumabort -otaerrnoactivejob -otaerrnone -otaerrpanic -otaerrrequestfileblockfailed -otaerrrequestjobfailed -otaerrsamefirmwareversion -otaerrsignaleventfailed -otaerruninitialized -otaerrupdatejobstatusfailed -otaerruserabort -otaeventbufferget -otaeventbufferget -otaeventtorecv -otaeventtosend -otahttpdeinit -otahttpdeinitfailed -otahttpinitfailed -otahttppage -otahttprequestfailed -otahttpsectionoverview -otahttpsuccess -otaimagestateaborted -otaimagestateaccepted -otaimagestaterejected -otaimagestatetesting -otaimagestateunknown -otainterface -otainterfaces -otajobdocmodelparamstructure -otajobeventactivate -otajobeventfail -otajobeventnoactivejob -otajobeventparsecustomjob -otajobeventprocessed -otajobeventreceivedjob -otajobeventselftestfailed -otajobeventstarttest -otajobeventupdatecomplete -otajobparseerrbadmodelinitparams -otajobparseerrnoactivejobs -otajobparseerrnocontextavailable -otajobparseerrnonconformingjobdoc -otajobparseerrnone -otajobparseerrnulljob -otajobparseerrunknown -otajobparseerrupdatecurrentjob -otajobparseerrzerofilesize -otalastimagestate -otamqttpage -otamqttpublishfailed -otamqttsectionoverview -otamqttsubscribefailed -otamqttsuccess -otamqttunsubscribefailed -otanumoftimers -otaoseventqueuecreatefailed -otaoseventqueuedeletefailed -otaoseventqueuereceivefailed -otaoseventqueuesendfailed -otaosfipage -otaosfisectionoverview -otaossuccess -otaostimercreatefailed -otaostimerdeletefailed -otaostimerrestartfailed -otaostimerstartfailed -otaostimerstopfailed -otapacketsdropped -otapacketsprocessed -otapacketsqueued -otapacketsreceived -otapalabortfailed -otapalactivatefailed -otapalbadimagestate -otapalbadsignercert -otapalbootinfocreatefailed -otapalcommitfailed -otapalfileabort -otapalfileclose -otapalimagestateinvalid -otapalimagestatependingcommit -otapalimagestateunknown -otapalimagestatevalid -otapalnullfilecontext -otapaloutofmemory -otapalpage -otapalrejectfailed -otapalrxfilecreatefailed -otapalrxfiletoolarge -otapalsectionoverview -otapalsignaturecheckfailed -otapalsuberr -otapalsuccess -otapaluninitialized -otarequesttimer -otaselftesttimer -otastarttimer -otastatistics -otatimer -otatimercallback -otatimerid -otatransitiontable -outputlen -pacdata -pactivejobname -pactopic -paddrinfo -pagentctx -palcallbacks -paldefaultactivatenewimage -paldefaultactivatenewimage -paldefaultgetplatformimagestate -paldefaultgetplatformimagestate -paldefaultresetdevice -paldefaultresetdevice -paldefaultsetplatformimagestate -paldefaultsetplatformimagestate -palerr -palpnprotos -param -paramaddr -paramindex -params -paramsreceivedbitmap -paramsrequiredbitmap -parseerr -parsejobdoc -parsejsonbymodel -pauthscheme -pblockbitmap -pblockid -pblockindex -pblocksize -pbody -pbodydef -pbuffer -pc -pcallbacks -pcertfilepath -pcjobtopic -pcjson -pclientcertpath -pclientidentifier -pclienttoken -pclienttokenfromjob -pcloseresult -pcmsg -pcmsgbuffer -pconnection -pconnectioncontext -pcontextbase -pcontrolinterface -pctimername -pctopicbuffer -pcur -pdata -pdatainterface -pdecodemem -pdecodememory -pdest -pdestoffset -pdestsizeoffset -pdocmodel -pdocmodel -pem -pencodeddata -pencodedmessage -pencodedmessagesize -peventcontext -peventctx -peventdata -peventmsg -pfile -pfilebitmap -pfilecontext -pfileid -pfilepath -pfinalfile -pformat -phostname -phttp -pjobdocjson -pjobid -pjobname -pjobnamebuffer -pjobtopic -pjobtopicgetnext -pjobtopicnotifynext -pjson -pjsondoc -pjsonexpectedparams -pjsonsize -pkey -plaintext -platforminselftest -platfrom -plblockid -plblocksize -plisthead -pmessagebuffer -pmodelparam -pmsg -pmsgbuffer -pnetworkcontext -png -pnumdatainbuffer -pnumpadding -pnumwhitespace -pollin -pollout -popensslcredentials -portsleep -posix -potaagentstatestrings -potabuffer -potaeventstrings -potafilectx -potafiles -potafiles -potagetnextjobmsgtemplate -potagetstreamtopictemplate -potahttpinterface -potainterface -potainterfaces -potajobsgetnextacceptedtopictemplate -potajobsgetnexttopictemplate -potajobsnotifynexttopictemplate -potajobstatusreasonstrtemplate -potajobstatusreasonvaltemplate -potajobstatusreceivedetailstemplate -potajobstatusselftestdetailstemplate -potajobstatusstatustemplate -potajobstatussucceededstrtemplate -potajobstatustopictemplate -potamqttinterface -potaosctx -potarxstreamtopic -potasingletonactivejobname -potastreamdatatopictemplate -potastringfailed -potastringinprogress -potastringreceive -potastringrejected -potastringsucceeded -poutputlen -pparam -pparamadd -pparamsizeadd -ppayload -ppayloadparts -ppayloadsize -pprivatekeypath -pprotocol -pprotocolbuffer -pprotocols -ppucpayload -pquerykey -prawmsg -pre -presigned -presponse -presultlen -pretryparams -previousversion -printf -processdatablock -processdatahandler -processjobhandler -processvalidfilecontext -processnullfilecontext -prootcapath -protocolmaxsize -prvbuildstatusmessagefinish -prvbuildstatusmessageselftest -prvpal -prxblockbitmap -prxstreamtopic -pserverinfo -psig -psignature -psrckey -pssl -psslcontext -pstreamname -ptcpsocket -pthingname -ptimercallback -ptimerctx -ptimername -ptopicbuffer -ptopicfilter -ptr -publishstatusmessage -punused -pupdatefile -pupdatefilepath -pupdatejob -pupdateurlpath -pvalueinjson -pvcallback -pvportmalloc -pxconnection -pxcontrolinterface -pxdatainterface -qos -querykeylength -queuedat -ramdom -rand -rangeend -rangestart -rdy -reasontoset -receiveandprocessotaevent -reconnectparam -receiveandprocessotaevent -recv -recvtimeout -recvtimeoutms -repo -requestdata -requestdatahandler -requestfileblock -requestjob -requestjobhandler -requestmomentum -requesttimercallback -resetdevice -reseteventqueue -resumehandler -retryutilsretriesexhausted -retryutilssuccess -returnstatus -returnvalue -retvalue -rm -rollout -rsa -rtos -rx -rxstreamtopicbuffersize -sd -sdk -searchtransition -selftest -selftesttimercallback -sendtimeout -sendtimeoutms -serverfileid -serverinfo -servicequotas -setcontrolinterface -setdatainterface -setimagestate -setimagestatewithreason -setplatformimagestate -shutdownhandler -sig -sigalrm -sigbuffer -sizeof -sleeptimems -sni -snihostname -sockaddr -sockets_invalid_parameter -socketstatus -spdx -sprintf -srand -src -ssl -stacksize -starthandler -startselftesttimer -startselftimer -statetoset -statuscode -statusdetails -stddef -stdlib -str -streamname -streamnamemaxsize -streamnamesize -strerror -stringsize -stringbuilder -stringsize -strlength -stringbuilder -stringsize -strnlen -struct -structs -sublicense -subreason -subscribetojobnotificationtopics -suspendhandler -suspendtimeout -sys -tcp -tcpsocket -tcpsocketcontext -td -testclient -thingname -thisisaclienttoken -tickstowait -timeinseconds -timerhandle -timespec -timestampfromjob -tinycbor -tls -tlscontext -tlsrecv -tlssend -todo -toolchain -topicfilter -topicfilterlength -topiclen -tq -tr -transportcallback -transportinterface -transportpage -transportsectionimplementation -transportsectionoverview -transportstruct -ttimer -typecasted -twe -typecasted -uart -ublockindex -ublocksize -ucqos -udp -ul -ulblockindex -ulblocksize -ulmsglen -ulmsgsize -uloffset -ulreceived -ultopiclen -unhandled -uniqueclientid -unistd -unsignedversion32 -unsubscribeflag -unsubscribefromjobnotificationtopic -unsubscribeonshutdown -unsubscribefromjobnotificationtopic -unsubscribefromdatastream -updatedby -updatefilepath -updatefilepathsize -updatejobstatus -updatejobstatusfromimagestate -updaterversion -updateurl -updateurlmaxsize -url -urlsize -useraborthandler -ustopiclen -utils -uxtaskgetsystemstate -validateandstartjob -validatedatablock -validatejson -validateupdateversion -valuecopy -valuelength -verifyactivejobstatus -verifyrequiredparamsextracted -versionnumber -vportfree -vtasklist -wifi -writeblock -www -xaa -xyz -zg diff --git a/tools/uncrustify.cfg b/tools/uncrustify.cfg deleted file mode 100644 index 0cb7d3fbd..000000000 --- a/tools/uncrustify.cfg +++ /dev/null @@ -1,160 +0,0 @@ -# Uncrustify-0.67 -input_tab_size = 4 # unsigned number -output_tab_size = 4 # unsigned number -sp_arith = force # ignore/add/remove/force -sp_assign = force # ignore/add/remove/force -sp_assign_default = force # ignore/add/remove/force -sp_before_assign = force # ignore/add/remove/force -sp_after_assign = force # ignore/add/remove/force -sp_enum_assign = force # ignore/add/remove/force -sp_enum_before_assign = force # ignore/add/remove/force -sp_enum_after_assign = force # ignore/add/remove/force -sp_pp_stringify = add # ignore/add/remove/force -sp_bool = force # ignore/add/remove/force -sp_compare = force # ignore/add/remove/force -sp_inside_paren = force # ignore/add/remove/force -sp_paren_paren = force # ignore/add/remove/force -sp_paren_brace = force # ignore/add/remove/force -sp_before_ptr_star = force # ignore/add/remove/force -sp_before_unnamed_ptr_star = force # ignore/add/remove/force -sp_between_ptr_star = remove # ignore/add/remove/force -sp_after_ptr_star = force # ignore/add/remove/force -sp_before_byref = force # ignore/add/remove/force -sp_after_byref = remove # ignore/add/remove/force -sp_after_byref_func = remove # ignore/add/remove/force -sp_before_angle = remove # ignore/add/remove/force -sp_inside_angle = remove # ignore/add/remove/force -sp_after_angle = force # ignore/add/remove/force -sp_before_sparen = remove # ignore/add/remove/force -sp_inside_sparen = force # ignore/add/remove/force -sp_after_sparen = force # ignore/add/remove/force -sp_sparen_brace = force # ignore/add/remove/force -sp_before_semi_for = remove # ignore/add/remove/force -sp_before_semi_for_empty = add # ignore/add/remove/force -sp_after_semi_for_empty = force # ignore/add/remove/force -sp_before_square = remove # ignore/add/remove/force -sp_before_squares = remove # ignore/add/remove/force -sp_inside_square = force # ignore/add/remove/force -sp_after_comma = force # ignore/add/remove/force -sp_after_cast = force # ignore/add/remove/force -sp_inside_paren_cast = force # ignore/add/remove/force -sp_sizeof_paren = remove # ignore/add/remove/force -sp_inside_braces_enum = force # ignore/add/remove/force -sp_inside_braces_struct = force # ignore/add/remove/force -sp_inside_braces = force # ignore/add/remove/force -sp_inside_braces_empty = remove # ignore/add/remove/force -sp_type_func = force # ignore/add/remove/force -sp_func_proto_paren = remove # ignore/add/remove/force -sp_func_def_paren = remove # ignore/add/remove/force -sp_inside_fparens = remove # ignore/add/remove/force -sp_inside_fparen = force # ignore/add/remove/force -sp_fparen_brace = add # ignore/add/remove/force -sp_func_call_paren = remove # ignore/add/remove/force -sp_func_class_paren = remove # ignore/add/remove/force -sp_return_paren = remove # ignore/add/remove/force -sp_attribute_paren = remove # ignore/add/remove/force -sp_defined_paren = remove # ignore/add/remove/force -sp_macro = force # ignore/add/remove/force -sp_macro_func = force # ignore/add/remove/force -sp_brace_typedef = force # ignore/add/remove/force -sp_before_dc = remove # ignore/add/remove/force -sp_after_dc = remove # ignore/add/remove/force -sp_cond_colon = force # ignore/add/remove/force -sp_cond_question = force # ignore/add/remove/force -sp_case_label = force # ignore/add/remove/force -sp_endif_cmt = force # ignore/add/remove/force -sp_before_tr_emb_cmt = force # ignore/add/remove/force -sp_num_before_tr_emb_cmt = 1 # unsigned number -indent_columns = 4 # unsigned number -indent_with_tabs = 0 # unsigned number -indent_align_string = true # false/true -indent_class = true # false/true -indent_class_colon = true # false/true -indent_member = 3 # unsigned number -indent_switch_case = 4 # unsigned number -indent_case_brace = 3 # number -nl_assign_leave_one_liners = true # false/true -nl_class_leave_one_liners = true # false/true -nl_start_of_file = remove # ignore/add/remove/force -nl_end_of_file = force # ignore/add/remove/force -nl_end_of_file_min = 1 # unsigned number -nl_assign_brace = add # ignore/add/remove/force -nl_func_var_def_blk = 1 # unsigned number -nl_fcall_brace = add # ignore/add/remove/force -nl_enum_brace = force # ignore/add/remove/force -nl_struct_brace = force # ignore/add/remove/force -nl_union_brace = force # ignore/add/remove/force -nl_if_brace = add # ignore/add/remove/force -nl_brace_else = add # ignore/add/remove/force -nl_else_brace = add # ignore/add/remove/force -nl_getset_brace = force # ignore/add/remove/force -nl_for_brace = add # ignore/add/remove/force -nl_while_brace = add # ignore/add/remove/force -nl_do_brace = add # ignore/add/remove/force -nl_switch_brace = add # ignore/add/remove/force -nl_multi_line_define = true # false/true -nl_before_case = true # false/true -nl_after_case = true # false/true -nl_func_type_name = remove # ignore/add/remove/force -nl_func_proto_type_name = remove # ignore/add/remove/force -nl_func_paren = remove # ignore/add/remove/force -nl_func_def_paren = remove # ignore/add/remove/force -nl_func_decl_start = remove # ignore/add/remove/force -nl_func_def_start = remove # ignore/add/remove/force -nl_func_decl_args = add # ignore/add/remove/force -nl_func_def_args = add # ignore/add/remove/force -nl_func_decl_end = remove # ignore/add/remove/force -nl_func_def_end = remove # ignore/add/remove/force -nl_fdef_brace = add # ignore/add/remove/force -nl_after_semicolon = true # false/true -nl_after_brace_open = true # false/true -nl_after_brace_close = true # false/true -nl_squeeze_ifdef = true # false/true -nl_before_if = force # ignore/add/remove/force -nl_after_if = force # ignore/add/remove/force -nl_before_for = force # ignore/add/remove/force -nl_after_for = force # ignore/add/remove/force -nl_before_while = force # ignore/add/remove/force -nl_after_while = force # ignore/add/remove/force -nl_before_switch = force # ignore/add/remove/force -nl_after_switch = force # ignore/add/remove/force -nl_before_do = force # ignore/add/remove/force -nl_after_do = force # ignore/add/remove/force -nl_max = 4 # unsigned number -nl_after_func_proto_group = 1 # unsigned number -nl_after_func_body_class = 2 # unsigned number -nl_before_block_comment = 2 # unsigned number -eat_blanks_after_open_brace = true # false/true -eat_blanks_before_close_brace = true # false/true -nl_after_return = true # false/true -pos_bool = trail # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force -align_var_def_amp_style = 1 # unsigned number -align_var_def_thresh = 16 # unsigned number -align_assign_thresh = 12 # unsigned number -align_struct_init_span = 3 # unsigned number -align_typedef_gap = 3 # unsigned number -align_typedef_span = 5 # unsigned number -align_typedef_star_style = 1 # unsigned number -align_typedef_amp_style = 1 # unsigned number -align_right_cmt_span = 3 # unsigned number -align_nl_cont = true # false/true -align_pp_define_gap = 4 # unsigned number -align_pp_define_span = 3 # unsigned number -cmt_cpp_to_c = true # false/true -cmt_star_cont = true # false/true -mod_full_brace_do = add # ignore/add/remove/force -mod_full_brace_for = add # ignore/add/remove/force -mod_full_brace_if = add # ignore/add/remove/force -mod_full_brace_while = add # ignore/add/remove/force -mod_full_paren_if_bool = true # false/true -mod_remove_extra_semicolon = true # false/true -mod_add_long_ifdef_endif_comment = 10 # unsigned number -mod_add_long_ifdef_else_comment = 10 # unsigned number -mod_case_brace = remove # ignore/add/remove/force -mod_remove_empty_return = true # false/true -pp_indent = force # ignore/add/remove/force -pp_indent_at_level = true # false/true -pp_indent_count = 4 # unsigned number -pp_space = remove # ignore/add/remove/force -pp_if_indent_code = true # false/true -# option(s) with 'not default' value: 158 From 8856e873257e31963be2c6065ea3fc6d077818a7 Mon Sep 17 00:00:00 2001 From: Kody Stribrny <89810515+kstribrnAmzn@users.noreply.github.com> Date: Tue, 12 Sep 2023 11:04:43 -0700 Subject: [PATCH 23/25] Update OTA library readme with 2024 plans (#495) * Update OTA library readme with 2024 plans Provide 'future releases' section describing the 2023/24 release of the future OTA library. --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 726bfaec3..d20072166 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,12 @@ is part of the [FreeRTOS 202012.01 LTS](https://github.com/FreeRTOS/FreeRTOS-LTS/tree/202012.01-LTS) release.** +## Upcoming Changes + +Intended for release in Q4 2023, a major version update of this library will make it compliant with the FreeRTOS “core” branded libraries design goal of being free of any dependencies other than the C library. The monolithic design of the existing OTA library doesn't make it easy to make use case specific modifications, such as changing the OTA update source. The new major version will refactor the library, amongst other things, to increase modularity and simplify the use of any firmware source or communication mechanism, both supported by AWS and not. + +While the old version of this library will remain available, we will not be developing it further and will instead focus on the newer major versions going forward. To see our current progress towards this goal, please see [FreeRTOS/Labs-Project-ota-example-for-aws-iot-core](https://github.com/FreeRTOS/Labs-Project-ota-example-for-aws-iot-core). + ## AWS IoT Over-the-air Updates Config File The AWS IoT Over-the-air Updates library exposes configuration macros that are From d85b8d74d8108a0e3bea0810a83ccc5fef78ed94 Mon Sep 17 00:00:00 2001 From: Kody Stribrny <89810515+kstribrnAmzn@users.noreply.github.com> Date: Thu, 14 Sep 2023 15:54:02 -0700 Subject: [PATCH 24/25] Explicitly set pointer to NULL (#497) Fixing test cases by explicitly setting pContext pointer to NULL for later check. --- test/unit-test/ota_utest.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/unit-test/ota_utest.c b/test/unit-test/ota_utest.c index 67c36cf94..863a818de 100644 --- a/test/unit-test/ota_utest.c +++ b/test/unit-test/ota_utest.c @@ -3587,7 +3587,7 @@ void test_OTA_parseJobFailsNullJsonDocument() void test_OTA_parseJobFailsMoreBlocksThanBitmap() { - OtaFileContext_t * pContext; + OtaFileContext_t * pContext = NULL; bool updateJob = false; DocParseErr_t err; JsonDocParam_t otaCustomJobDocModelParamStructure[ 1 ] = @@ -3607,7 +3607,7 @@ void test_OTA_parseJobFailsMoreBlocksThanBitmap() void test_OTA_extractParameterFailInvalidJobDocModel() { - OtaFileContext_t * pContext; + OtaFileContext_t * pContext = NULL; bool updateJob = false; DocParseErr_t err; JsonDocParam_t otaCustomJobDocModelParamStructure[ 1 ] = From e2833bb0e4927ed37932a584e4d1ce3e4fb68bce Mon Sep 17 00:00:00 2001 From: Soren Ptak Date: Thu, 5 Oct 2023 09:38:27 -0700 Subject: [PATCH 25/25] Apply formatting bot fix (#498) --- .github/workflows/formatting.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/formatting.yml b/.github/workflows/formatting.yml index 8257addac..04786bad5 100644 --- a/.github/workflows/formatting.yml +++ b/.github/workflows/formatting.yml @@ -13,9 +13,9 @@ env: jobs: Formatting: name: Run Formatting Check - if: ${{ github.event.issue.pull_request }} && + if: ${{ github.event.issue.pull_request && ( ( github.event.comment.body == '/bot run uncrustify' ) || - ( github.event.comment.body == '/bot run formatting' ) ) + ( github.event.comment.body == '/bot run formatting' ) ) }} runs-on: ubuntu-20.04 steps: - name: Apply Formatting Fix