[修改] 增加freeRTOS
1. 版本FreeRTOSv202212.01,命名为kernel;
This commit is contained in:
@ -0,0 +1,46 @@
|
||||
# Include filepaths for Fleet Provisioning library.
|
||||
include( ${MODULE_ROOT_DIR}/fleetprovisioningFilePaths.cmake )
|
||||
|
||||
set( library_name "fleet_provisioning" )
|
||||
set( library_target_name "${library_name}_target" )
|
||||
set( utest_binary_name "${library_name}_utest" )
|
||||
|
||||
# =========================== Library ==============================
|
||||
|
||||
# List of library source files.
|
||||
list( APPEND library_source_files
|
||||
${FLEET_PROVISIONING_SOURCES} )
|
||||
|
||||
# List of library include directories.
|
||||
list( APPEND library_include_directories
|
||||
${FLEET_PROVISIONING_INCLUDE_PUBLIC_DIRS}
|
||||
"${CMAKE_CURRENT_LIST_DIR}/../include" )
|
||||
|
||||
# Create a target for building library.
|
||||
create_library_target( ${library_target_name}
|
||||
"${library_source_files}"
|
||||
"${library_include_directories}" )
|
||||
|
||||
# =========================== Test Binary ==============================
|
||||
|
||||
# The source file containing the unit tests.
|
||||
set( utest_source_file "fleet_provisioning_utest.c" )
|
||||
|
||||
# The list of include directories for the test binary target.
|
||||
list( APPEND utest_include_directories
|
||||
${FLEET_PROVISIONING_INCLUDE_PUBLIC_DIRS} )
|
||||
|
||||
# Libraries to be linked while building the test binary.
|
||||
list( APPEND utest_link_list
|
||||
lib${library_target_name}.a )
|
||||
|
||||
# The targets on which the test binary target depends.
|
||||
list( APPEND utest_dep_list
|
||||
${library_target_name} )
|
||||
|
||||
# Create a target for the test binary.
|
||||
create_test_binary_target( ${utest_binary_name}
|
||||
${utest_source_file}
|
||||
"${utest_link_list}"
|
||||
"${utest_dep_list}"
|
||||
"${test_include_directories}" )
|
||||
@ -0,0 +1,940 @@
|
||||
/*
|
||||
* AWS IoT Fleet Provisioning v1.1.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
|
||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
* the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file fleet_provisioning_utest.c
|
||||
* @brief Unit tests for the Fleet Provisioning library.
|
||||
*/
|
||||
|
||||
/* Standard includes. */
|
||||
#include <string.h>
|
||||
|
||||
/* Test framework include. */
|
||||
#include "unity.h"
|
||||
|
||||
/* Fleet Provisioning API include. */
|
||||
#include "fleet_provisioning.h"
|
||||
|
||||
/* Helper macro to calculate the length of a string literal. */
|
||||
#define STRING_LITERAL_LENGTH( literal ) ( ( uint16_t ) ( sizeof( literal ) - 1U ) )
|
||||
|
||||
/* Template name used in the tests. */
|
||||
#define TEST_TEMPLATE_NAME "TestTemplateName"
|
||||
#define TEST_TEMPLATE_NAME_LENGTH STRING_LITERAL_LENGTH( TEST_TEMPLATE_NAME )
|
||||
|
||||
/* Topics used in the tests. */
|
||||
#define TEST_CREATE_CERT_JSON_PUBLISH_TOPIC "$aws/certificates/create-from-csr/json"
|
||||
#define TEST_CREATE_CERT_JSON_PUBLISH_LENGTH STRING_LITERAL_LENGTH( TEST_CREATE_CERT_JSON_PUBLISH_TOPIC )
|
||||
|
||||
#define TEST_CREATE_CERT_JSON_ACCEPTED_TOPIC "$aws/certificates/create-from-csr/json/accepted"
|
||||
#define TEST_CREATE_CERT_JSON_ACCEPTED_LENGTH STRING_LITERAL_LENGTH( TEST_CREATE_CERT_JSON_ACCEPTED_TOPIC )
|
||||
|
||||
#define TEST_CREATE_CERT_JSON_REJECTED_TOPIC "$aws/certificates/create-from-csr/json/rejected"
|
||||
#define TEST_CREATE_CERT_JSON_REJECTED_LENGTH STRING_LITERAL_LENGTH( TEST_CREATE_CERT_JSON_REJECTED_TOPIC )
|
||||
|
||||
#define TEST_CREATE_CERT_CBOR_PUBLISH_TOPIC "$aws/certificates/create-from-csr/cbor"
|
||||
#define TEST_CREATE_CERT_CBOR_PUBLISH_LENGTH STRING_LITERAL_LENGTH( TEST_CREATE_CERT_CBOR_PUBLISH_TOPIC )
|
||||
|
||||
#define TEST_CREATE_CERT_CBOR_ACCEPTED_TOPIC "$aws/certificates/create-from-csr/cbor/accepted"
|
||||
#define TEST_CREATE_CERT_CBOR_ACCEPTED_LENGTH STRING_LITERAL_LENGTH( TEST_CREATE_CERT_CBOR_ACCEPTED_TOPIC )
|
||||
|
||||
#define TEST_CREATE_CERT_CBOR_REJECTED_TOPIC "$aws/certificates/create-from-csr/cbor/rejected"
|
||||
#define TEST_CREATE_CERT_CBOR_REJECTED_LENGTH STRING_LITERAL_LENGTH( TEST_CREATE_CERT_CBOR_REJECTED_TOPIC )
|
||||
|
||||
#define TEST_CREATE_KEYS_JSON_PUBLISH_TOPIC "$aws/certificates/create/json"
|
||||
#define TEST_CREATE_KEYS_JSON_PUBLISH_LENGTH STRING_LITERAL_LENGTH( TEST_CREATE_KEYS_JSON_PUBLISH_TOPIC )
|
||||
|
||||
#define TEST_CREATE_KEYS_JSON_ACCEPTED_TOPIC "$aws/certificates/create/json/accepted"
|
||||
#define TEST_CREATE_KEYS_JSON_ACCEPTED_LENGTH STRING_LITERAL_LENGTH( TEST_CREATE_KEYS_JSON_ACCEPTED_TOPIC )
|
||||
|
||||
#define TEST_CREATE_KEYS_JSON_REJECTED_TOPIC "$aws/certificates/create/json/rejected"
|
||||
#define TEST_CREATE_KEYS_JSON_REJECTED_LENGTH STRING_LITERAL_LENGTH( TEST_CREATE_KEYS_JSON_REJECTED_TOPIC )
|
||||
|
||||
#define TEST_CREATE_KEYS_CBOR_PUBLISH_TOPIC "$aws/certificates/create/cbor"
|
||||
#define TEST_CREATE_KEYS_CBOR_PUBLISH_LENGTH STRING_LITERAL_LENGTH( TEST_CREATE_KEYS_CBOR_PUBLISH_TOPIC )
|
||||
|
||||
#define TEST_CREATE_KEYS_CBOR_ACCEPTED_TOPIC "$aws/certificates/create/cbor/accepted"
|
||||
#define TEST_CREATE_KEYS_CBOR_ACCEPTED_LENGTH STRING_LITERAL_LENGTH( TEST_CREATE_KEYS_CBOR_ACCEPTED_TOPIC )
|
||||
|
||||
#define TEST_CREATE_KEYS_CBOR_REJECTED_TOPIC "$aws/certificates/create/cbor/rejected"
|
||||
#define TEST_CREATE_KEYS_CBOR_REJECTED_LENGTH STRING_LITERAL_LENGTH( TEST_CREATE_KEYS_CBOR_REJECTED_TOPIC )
|
||||
|
||||
#define TEST_REGISTER_JSON_PUBLISH_TOPIC "$aws/provisioning-templates/" TEST_TEMPLATE_NAME "/provision/json"
|
||||
#define TEST_REGISTER_JSON_PUBLISH_LENGTH STRING_LITERAL_LENGTH( TEST_REGISTER_JSON_PUBLISH_TOPIC )
|
||||
|
||||
#define TEST_REGISTER_JSON_ACCEPTED_TOPIC "$aws/provisioning-templates/" TEST_TEMPLATE_NAME "/provision/json/accepted"
|
||||
#define TEST_REGISTER_JSON_ACCEPTED_LENGTH STRING_LITERAL_LENGTH( TEST_REGISTER_JSON_ACCEPTED_TOPIC )
|
||||
|
||||
#define TEST_REGISTER_JSON_REJECTED_TOPIC "$aws/provisioning-templates/" TEST_TEMPLATE_NAME "/provision/json/rejected"
|
||||
#define TEST_REGISTER_JSON_REJECTED_LENGTH STRING_LITERAL_LENGTH( TEST_REGISTER_JSON_REJECTED_TOPIC )
|
||||
|
||||
#define TEST_REGISTER_CBOR_PUBLISH_TOPIC "$aws/provisioning-templates/" TEST_TEMPLATE_NAME "/provision/cbor"
|
||||
#define TEST_REGISTER_CBOR_PUBLISH_LENGTH STRING_LITERAL_LENGTH( TEST_REGISTER_CBOR_PUBLISH_TOPIC )
|
||||
|
||||
#define TEST_REGISTER_CBOR_ACCEPTED_TOPIC "$aws/provisioning-templates/" TEST_TEMPLATE_NAME "/provision/cbor/accepted"
|
||||
#define TEST_REGISTER_CBOR_ACCEPTED_LENGTH STRING_LITERAL_LENGTH( TEST_REGISTER_CBOR_ACCEPTED_TOPIC )
|
||||
|
||||
#define TEST_REGISTER_CBOR_REJECTED_TOPIC "$aws/provisioning-templates/" TEST_TEMPLATE_NAME "/provision/cbor/rejected"
|
||||
#define TEST_REGISTER_CBOR_REJECTED_LENGTH STRING_LITERAL_LENGTH( TEST_REGISTER_CBOR_REJECTED_TOPIC )
|
||||
|
||||
/* Length of the topic buffer used in tests. Guard buffers are placed before and
|
||||
* after the topic buffer to verify that Fleet Provisioning APIs do not write
|
||||
* out of bounds. The memory layout is:
|
||||
*
|
||||
* +--------------+-------------------------------+------------+
|
||||
* | Guard | Writable Topic Buffer | Guard |
|
||||
* +--------------+-------------------------------+------------+
|
||||
*
|
||||
* Both guard buffers are filled with a known pattern before each test and are
|
||||
* verified to remain unchanged after each test.
|
||||
*/
|
||||
#define TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH 32
|
||||
#define TEST_TOPIC_BUFFER_WRITABLE_LENGTH 256
|
||||
#define TEST_TOPIC_BUFFER_SUFFIX_GUARD_LENGTH 32
|
||||
#define TEST_TOPIC_BUFFER_TOTAL_LENGTH \
|
||||
( TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH + \
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH + \
|
||||
TEST_TOPIC_BUFFER_SUFFIX_GUARD_LENGTH )
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* @brief Topic buffer used in tests.
|
||||
*/
|
||||
static char testTopicBuffer[ TEST_TOPIC_BUFFER_TOTAL_LENGTH ];
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* ============================ UNITY FIXTURES ============================ */
|
||||
|
||||
/* Called before each test method. */
|
||||
void setUp()
|
||||
{
|
||||
/* Initialize the topic buffer with 0xA5. */
|
||||
memset( &( testTopicBuffer[ 0 ] ), 0xA5, TEST_TOPIC_BUFFER_TOTAL_LENGTH );
|
||||
}
|
||||
|
||||
/* Called after each test method. */
|
||||
void tearDown()
|
||||
{
|
||||
/* Prefix and Suffix guard buffers must never change. */
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8( 0xA5,
|
||||
&( testTopicBuffer[ 0 ] ),
|
||||
TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH );
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8( 0xA5,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH +
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_SUFFIX_GUARD_LENGTH );
|
||||
}
|
||||
|
||||
/* Called at the beginning of the whole suite. */
|
||||
void suiteSetUp()
|
||||
{
|
||||
}
|
||||
|
||||
/* Called at the end of the whole suite. */
|
||||
int suiteTearDown( int numFailures )
|
||||
{
|
||||
return numFailures;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* Prototypes for test functions. */
|
||||
void test_RegisterThing_MacrosString( void );
|
||||
void test_RegisterThing_MacrosLength( void );
|
||||
void test_FleetProvisioning_GetRegisterThingTopic_BadParams( void );
|
||||
void test_FleetProvisioning_GetRegisterThingTopic_BufferTooSmall( void );
|
||||
void test_FleetProvisioning_GetRegisterThingTopic_JsonPublishHappyPath( void );
|
||||
void test_FleetProvisioning_GetRegisterThingTopic_JsonAcceptedHappyPath( void );
|
||||
void test_FleetProvisioning_GetRegisterThingTopic_JsonRejectedHappyPath( void );
|
||||
void test_FleetProvisioning_GetRegisterThingTopic_CborPublishHappyPath( void );
|
||||
void test_FleetProvisioning_GetRegisterThingTopic_CborAcceptedHappyPath( void );
|
||||
void test_FleetProvisioning_GetRegisterThingTopic_CborRejectedHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_BadParams( void );
|
||||
void test_FleetProvisioning_MatchTopic_InvalidFormat( void );
|
||||
void test_FleetProvisioning_MatchTopic_ZeroLengthTemplateName( void );
|
||||
void test_FleetProvisioning_MatchTopic_RegisterThingMissingSuffix( void );
|
||||
void test_FleetProvisioning_MatchTopic_InvalidSuffix( void );
|
||||
void test_FleetProvisioning_MatchTopic_ExtraData( void );
|
||||
void test_FleetProvisioning_MatchTopic_CreateCertificateFromCsrJsonPublishHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_CreateCertificateFromCsrJsonAcceptedHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_CreateCertificateFromCsrJsonRejectedHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_CreateCertificateFromCsrCborPublishHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_CreateCertificateFromCsrCborAcceptedHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_CreateCertificateFromCsrCborRejectedHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_CreateKeysAndCertificateJsonPublishHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_CreateKeysAndCertificateJsonAcceptedHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_CreateKeysAndCertificateJsonRejectedHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_CreateKeysAndCertificateCborPublishHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_CreateKeysAndCertificateCborAcceptedHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_CreateKeysAndCertificateCborRejectedHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_RegisterThingJsonPublishHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_RegisterThingJsonAcceptedHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_RegisterThingJsonRejectedHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_RegisterThingCborPublishHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_RegisterThingCborAcceptedHappyPath( void );
|
||||
void test_FleetProvisioning_MatchTopic_RegisterThingCborRejectedHappyPath( void );
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* @brief Test that macros generate expected strings.
|
||||
*/
|
||||
void test_RegisterThing_MacrosString( void )
|
||||
{
|
||||
TEST_ASSERT_EQUAL_STRING_LEN( TEST_REGISTER_JSON_PUBLISH_TOPIC,
|
||||
FP_JSON_REGISTER_PUBLISH_TOPIC( TEST_TEMPLATE_NAME ),
|
||||
TEST_REGISTER_JSON_PUBLISH_LENGTH );
|
||||
|
||||
TEST_ASSERT_EQUAL_STRING_LEN( TEST_REGISTER_JSON_ACCEPTED_TOPIC,
|
||||
FP_JSON_REGISTER_ACCEPTED_TOPIC( TEST_TEMPLATE_NAME ),
|
||||
TEST_REGISTER_JSON_ACCEPTED_LENGTH );
|
||||
|
||||
TEST_ASSERT_EQUAL_STRING_LEN( TEST_REGISTER_JSON_REJECTED_TOPIC,
|
||||
FP_JSON_REGISTER_REJECTED_TOPIC( TEST_TEMPLATE_NAME ),
|
||||
TEST_REGISTER_JSON_REJECTED_LENGTH );
|
||||
|
||||
TEST_ASSERT_EQUAL_STRING_LEN( TEST_REGISTER_CBOR_PUBLISH_TOPIC,
|
||||
FP_CBOR_REGISTER_PUBLISH_TOPIC( TEST_TEMPLATE_NAME ),
|
||||
TEST_REGISTER_CBOR_PUBLISH_LENGTH );
|
||||
|
||||
TEST_ASSERT_EQUAL_STRING_LEN( TEST_REGISTER_CBOR_ACCEPTED_TOPIC,
|
||||
FP_CBOR_REGISTER_ACCEPTED_TOPIC( TEST_TEMPLATE_NAME ),
|
||||
TEST_REGISTER_CBOR_ACCEPTED_LENGTH );
|
||||
|
||||
TEST_ASSERT_EQUAL_STRING_LEN( TEST_REGISTER_CBOR_REJECTED_TOPIC,
|
||||
FP_CBOR_REGISTER_REJECTED_TOPIC( TEST_TEMPLATE_NAME ),
|
||||
TEST_REGISTER_CBOR_REJECTED_LENGTH );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* @brief Test that macros generates expected string lengths.
|
||||
*/
|
||||
void test_RegisterThing_MacrosLength( void )
|
||||
{
|
||||
TEST_ASSERT_EQUAL( TEST_REGISTER_JSON_PUBLISH_LENGTH,
|
||||
FP_JSON_REGISTER_PUBLISH_LENGTH( TEST_TEMPLATE_NAME_LENGTH ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( TEST_REGISTER_JSON_ACCEPTED_LENGTH,
|
||||
FP_JSON_REGISTER_ACCEPTED_LENGTH( TEST_TEMPLATE_NAME_LENGTH ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( TEST_REGISTER_JSON_REJECTED_LENGTH,
|
||||
FP_JSON_REGISTER_REJECTED_LENGTH( TEST_TEMPLATE_NAME_LENGTH ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( TEST_REGISTER_CBOR_PUBLISH_LENGTH,
|
||||
FP_CBOR_REGISTER_PUBLISH_LENGTH( TEST_TEMPLATE_NAME_LENGTH ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( TEST_REGISTER_CBOR_ACCEPTED_LENGTH,
|
||||
FP_CBOR_REGISTER_ACCEPTED_LENGTH( TEST_TEMPLATE_NAME_LENGTH ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( TEST_REGISTER_CBOR_REJECTED_LENGTH,
|
||||
FP_CBOR_REGISTER_REJECTED_LENGTH( TEST_TEMPLATE_NAME_LENGTH ) );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_GetRegisterThingTopic_BadParams( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
uint16_t topicLength;
|
||||
|
||||
/* Null buffer. */
|
||||
ret = FleetProvisioning_GetRegisterThingTopic( NULL,
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH,
|
||||
FleetProvisioningJson,
|
||||
FleetProvisioningPublish,
|
||||
TEST_TEMPLATE_NAME,
|
||||
TEST_TEMPLATE_NAME_LENGTH,
|
||||
&( topicLength ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningBadParameter, ret );
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8( 0xA5,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH );
|
||||
|
||||
/* Invalid Format. */
|
||||
ret = FleetProvisioning_GetRegisterThingTopic( &( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH,
|
||||
( FleetProvisioningFormat_t ) ( FleetProvisioningCbor + 1 ),
|
||||
FleetProvisioningPublish,
|
||||
TEST_TEMPLATE_NAME,
|
||||
TEST_TEMPLATE_NAME_LENGTH,
|
||||
&( topicLength ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningBadParameter, ret );
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8( 0xA5,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH );
|
||||
|
||||
/* Invalid api. */
|
||||
ret = FleetProvisioning_GetRegisterThingTopic( &( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH,
|
||||
FleetProvisioningCbor,
|
||||
( FleetProvisioningApiTopics_t ) ( FleetProvisioningRejected + 1 ),
|
||||
TEST_TEMPLATE_NAME,
|
||||
TEST_TEMPLATE_NAME_LENGTH,
|
||||
&( topicLength ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningBadParameter, ret );
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8( 0xA5,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH );
|
||||
|
||||
/* NULL template name. */
|
||||
ret = FleetProvisioning_GetRegisterThingTopic( &( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH,
|
||||
FleetProvisioningJson,
|
||||
FleetProvisioningPublish,
|
||||
NULL,
|
||||
TEST_TEMPLATE_NAME_LENGTH,
|
||||
&( topicLength ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningBadParameter, ret );
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8( 0xA5,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH );
|
||||
|
||||
/* Zero length thing name. */
|
||||
ret = FleetProvisioning_GetRegisterThingTopic( &( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH,
|
||||
FleetProvisioningJson,
|
||||
FleetProvisioningPublish,
|
||||
TEST_TEMPLATE_NAME,
|
||||
0,
|
||||
&( topicLength ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningBadParameter, ret );
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8( 0xA5,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH );
|
||||
|
||||
/* Thing name length more than the maximum allowed. */
|
||||
ret = FleetProvisioning_GetRegisterThingTopic( &( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH,
|
||||
FleetProvisioningJson,
|
||||
FleetProvisioningPublish,
|
||||
TEST_TEMPLATE_NAME,
|
||||
FP_TEMPLATENAME_MAX_LENGTH + 1,
|
||||
&( topicLength ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningBadParameter, ret );
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8( 0xA5,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH );
|
||||
|
||||
/* NULL output parameter. */
|
||||
ret = FleetProvisioning_GetRegisterThingTopic( &( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH,
|
||||
FleetProvisioningJson,
|
||||
FleetProvisioningPublish,
|
||||
TEST_TEMPLATE_NAME,
|
||||
TEST_TEMPLATE_NAME_LENGTH,
|
||||
NULL );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningBadParameter, ret );
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8( 0xA5,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_GetRegisterThingTopic_BufferTooSmall( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
uint16_t topicLength;
|
||||
|
||||
ret = FleetProvisioning_GetRegisterThingTopic( &( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
5, /* Length too small to fit the entire topic. */
|
||||
FleetProvisioningJson,
|
||||
FleetProvisioningPublish,
|
||||
TEST_TEMPLATE_NAME,
|
||||
TEST_TEMPLATE_NAME_LENGTH,
|
||||
&( topicLength ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningBufferTooSmall, ret );
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8( 0xA5,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_GetRegisterThingTopic_JsonPublishHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
uint16_t topicLength;
|
||||
|
||||
ret = FleetProvisioning_GetRegisterThingTopic( &( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH,
|
||||
FleetProvisioningJson,
|
||||
FleetProvisioningPublish,
|
||||
TEST_TEMPLATE_NAME,
|
||||
TEST_TEMPLATE_NAME_LENGTH,
|
||||
&( topicLength ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( TEST_REGISTER_JSON_PUBLISH_LENGTH, topicLength );
|
||||
|
||||
TEST_ASSERT_EQUAL_STRING_LEN( TEST_REGISTER_JSON_PUBLISH_TOPIC,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
topicLength );
|
||||
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8( 0xA5,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH + topicLength ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH - topicLength );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_GetRegisterThingTopic_JsonAcceptedHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
uint16_t topicLength;
|
||||
|
||||
ret = FleetProvisioning_GetRegisterThingTopic( &( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH,
|
||||
FleetProvisioningJson,
|
||||
FleetProvisioningAccepted,
|
||||
TEST_TEMPLATE_NAME,
|
||||
TEST_TEMPLATE_NAME_LENGTH,
|
||||
&( topicLength ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( TEST_REGISTER_JSON_ACCEPTED_LENGTH, topicLength );
|
||||
|
||||
TEST_ASSERT_EQUAL_STRING_LEN( TEST_REGISTER_JSON_ACCEPTED_TOPIC,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
topicLength );
|
||||
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8( 0xA5,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH + topicLength ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH - topicLength );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_GetRegisterThingTopic_JsonRejectedHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
uint16_t topicLength;
|
||||
|
||||
ret = FleetProvisioning_GetRegisterThingTopic( &( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH,
|
||||
FleetProvisioningJson,
|
||||
FleetProvisioningRejected,
|
||||
TEST_TEMPLATE_NAME,
|
||||
TEST_TEMPLATE_NAME_LENGTH,
|
||||
&( topicLength ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( TEST_REGISTER_JSON_REJECTED_LENGTH, topicLength );
|
||||
|
||||
TEST_ASSERT_EQUAL_STRING_LEN( TEST_REGISTER_JSON_REJECTED_TOPIC,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
topicLength );
|
||||
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8( 0xA5,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH + topicLength ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH - topicLength );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_GetRegisterThingTopic_CborPublishHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
uint16_t topicLength;
|
||||
|
||||
ret = FleetProvisioning_GetRegisterThingTopic( &( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH,
|
||||
FleetProvisioningCbor,
|
||||
FleetProvisioningPublish,
|
||||
TEST_TEMPLATE_NAME,
|
||||
TEST_TEMPLATE_NAME_LENGTH,
|
||||
&( topicLength ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( TEST_REGISTER_CBOR_PUBLISH_LENGTH, topicLength );
|
||||
|
||||
TEST_ASSERT_EQUAL_STRING_LEN( TEST_REGISTER_CBOR_PUBLISH_TOPIC,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
topicLength );
|
||||
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8( 0xA5,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH + topicLength ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH - topicLength );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_GetRegisterThingTopic_CborAcceptedHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
uint16_t topicLength;
|
||||
|
||||
ret = FleetProvisioning_GetRegisterThingTopic( &( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH,
|
||||
FleetProvisioningCbor,
|
||||
FleetProvisioningAccepted,
|
||||
TEST_TEMPLATE_NAME,
|
||||
TEST_TEMPLATE_NAME_LENGTH,
|
||||
&( topicLength ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( TEST_REGISTER_CBOR_ACCEPTED_LENGTH, topicLength );
|
||||
|
||||
TEST_ASSERT_EQUAL_STRING_LEN( TEST_REGISTER_CBOR_ACCEPTED_TOPIC,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
topicLength );
|
||||
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8( 0xA5,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH + topicLength ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH - topicLength );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_GetRegisterThingTopic_CborRejectedHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
uint16_t topicLength;
|
||||
|
||||
ret = FleetProvisioning_GetRegisterThingTopic( &( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH,
|
||||
FleetProvisioningCbor,
|
||||
FleetProvisioningRejected,
|
||||
TEST_TEMPLATE_NAME,
|
||||
TEST_TEMPLATE_NAME_LENGTH,
|
||||
&( topicLength ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( TEST_REGISTER_CBOR_REJECTED_LENGTH, topicLength );
|
||||
|
||||
TEST_ASSERT_EQUAL_STRING_LEN( TEST_REGISTER_CBOR_REJECTED_TOPIC,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH ] ),
|
||||
topicLength );
|
||||
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8( 0xA5,
|
||||
&( testTopicBuffer[ TEST_TOPIC_BUFFER_PREFIX_GUARD_LENGTH + topicLength ] ),
|
||||
TEST_TOPIC_BUFFER_WRITABLE_LENGTH - topicLength );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_BadParams( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
/* NULL topic. */
|
||||
ret = FleetProvisioning_MatchTopic( NULL,
|
||||
TEST_CREATE_CERT_JSON_PUBLISH_LENGTH,
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningBadParameter, ret );
|
||||
|
||||
/* NULL output parameter. */
|
||||
ret = FleetProvisioning_MatchTopic( TEST_CREATE_CERT_JSON_PUBLISH_TOPIC,
|
||||
TEST_CREATE_CERT_JSON_PUBLISH_LENGTH,
|
||||
NULL );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningBadParameter, ret );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_InvalidFormat( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/cert",
|
||||
STRING_LITERAL_LENGTH( "$aws/cert" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/certificates/create-from-csr/bad",
|
||||
STRING_LITERAL_LENGTH( "$aws/certificates/create-from-csr/bad" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/certificates/create/bad",
|
||||
STRING_LITERAL_LENGTH( "$aws/certificates/create/bad" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/provisioning-templates/TestTemplate/provision/bad",
|
||||
STRING_LITERAL_LENGTH( "$aws/provisioning-templates/TestTemplate/provision/bad" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_ZeroLengthTemplateName( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/provisioning-templates//provision",
|
||||
STRING_LITERAL_LENGTH( "$aws/provisioning-templates//provision" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_RegisterThingMissingSuffix( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/provisioning-templates/TestTemplate",
|
||||
STRING_LITERAL_LENGTH( "$aws/provisioning-templates/TestTemplate" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_InvalidSuffix( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/certificates/create-from-csr/json/bad",
|
||||
STRING_LITERAL_LENGTH( "$aws/certificates/create-from-csr/json/bad" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/certificates/create/json/bad",
|
||||
STRING_LITERAL_LENGTH( "$aws/certificates/create/json/bad" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/provisioning-templates/TestTemplate/provision/json/bad",
|
||||
STRING_LITERAL_LENGTH( "$aws/provisioning-templates/TestTemplate/provision/json/bad" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/certificates/create-from-csr/cbor/bad",
|
||||
STRING_LITERAL_LENGTH( "$aws/certificates/create-from-csr/cbor/bad" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/certificates/create/cbor/bad",
|
||||
STRING_LITERAL_LENGTH( "$aws/certificates/create/cbor/bad" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/provisioning-templates/TestTemplate/provision/cbor/bad",
|
||||
STRING_LITERAL_LENGTH( "$aws/provisioning-templates/TestTemplate/provision/cbor/bad" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_ExtraData( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/certificates/create-from-csr/json/gibberish",
|
||||
STRING_LITERAL_LENGTH( "$aws/certificates/create-from-csr/json/gibberish" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/certificates/create-from-csr/json/accepted/gibberish",
|
||||
STRING_LITERAL_LENGTH( "$aws/certificates/create-from-csr/json/accepted/gibberish" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/certificates/create-from-csr/json/rejected/gibberish",
|
||||
STRING_LITERAL_LENGTH( "$aws/certificates/create-from-csr/json/accepted/gibberish" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/certificates/create-from-csr/cbor/gibberish",
|
||||
STRING_LITERAL_LENGTH( "$aws/certificates/create-from-csr/json/accepted/gibberish" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/certificates/create-from-csr/cbor/accepted/gibberish",
|
||||
STRING_LITERAL_LENGTH( "$aws/certificates/create-from-csr/json/accepted/gibberish" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( "$aws/certificates/create-from-csr/cbor/rejected/gibberish",
|
||||
STRING_LITERAL_LENGTH( "$aws/certificates/create-from-csr/json/accepted/gibberish" ),
|
||||
&( api ) );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningNoMatch, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningInvalidTopic, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_CreateCertificateFromCsrJsonPublishHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_CREATE_CERT_JSON_PUBLISH_TOPIC,
|
||||
TEST_CREATE_CERT_JSON_PUBLISH_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvJsonCreateCertFromCsrPublish, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_CreateCertificateFromCsrJsonAcceptedHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_CREATE_CERT_JSON_ACCEPTED_TOPIC,
|
||||
TEST_CREATE_CERT_JSON_ACCEPTED_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvJsonCreateCertFromCsrAccepted, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_CreateCertificateFromCsrJsonRejectedHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_CREATE_CERT_JSON_REJECTED_TOPIC,
|
||||
TEST_CREATE_CERT_JSON_REJECTED_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvJsonCreateCertFromCsrRejected, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_CreateCertificateFromCsrCborPublishHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_CREATE_CERT_CBOR_PUBLISH_TOPIC,
|
||||
TEST_CREATE_CERT_CBOR_PUBLISH_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvCborCreateCertFromCsrPublish, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_CreateCertificateFromCsrCborAcceptedHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_CREATE_CERT_CBOR_ACCEPTED_TOPIC,
|
||||
TEST_CREATE_CERT_CBOR_ACCEPTED_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvCborCreateCertFromCsrAccepted, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_CreateCertificateFromCsrCborRejectedHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_CREATE_CERT_CBOR_REJECTED_TOPIC,
|
||||
TEST_CREATE_CERT_CBOR_REJECTED_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvCborCreateCertFromCsrRejected, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_CreateKeysAndCertificateJsonPublishHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_CREATE_KEYS_JSON_PUBLISH_TOPIC,
|
||||
TEST_CREATE_KEYS_JSON_PUBLISH_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvJsonCreateKeysAndCertPublish, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_CreateKeysAndCertificateJsonAcceptedHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_CREATE_KEYS_JSON_ACCEPTED_TOPIC,
|
||||
TEST_CREATE_KEYS_JSON_ACCEPTED_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvJsonCreateKeysAndCertAccepted, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_CreateKeysAndCertificateJsonRejectedHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_CREATE_KEYS_JSON_REJECTED_TOPIC,
|
||||
TEST_CREATE_KEYS_JSON_REJECTED_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvJsonCreateKeysAndCertRejected, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_CreateKeysAndCertificateCborPublishHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_CREATE_KEYS_CBOR_PUBLISH_TOPIC,
|
||||
TEST_CREATE_KEYS_CBOR_PUBLISH_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvCborCreateKeysAndCertPublish, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_CreateKeysAndCertificateCborAcceptedHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_CREATE_KEYS_CBOR_ACCEPTED_TOPIC,
|
||||
TEST_CREATE_KEYS_CBOR_ACCEPTED_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvCborCreateKeysAndCertAccepted, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_CreateKeysAndCertificateCborRejectedHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_CREATE_KEYS_CBOR_REJECTED_TOPIC,
|
||||
TEST_CREATE_KEYS_CBOR_REJECTED_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvCborCreateKeysAndCertRejected, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_RegisterThingJsonPublishHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_REGISTER_JSON_PUBLISH_TOPIC,
|
||||
TEST_REGISTER_JSON_PUBLISH_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvJsonRegisterThingPublish, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_RegisterThingJsonAcceptedHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_REGISTER_JSON_ACCEPTED_TOPIC,
|
||||
TEST_REGISTER_JSON_ACCEPTED_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvJsonRegisterThingAccepted, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_RegisterThingJsonRejectedHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_REGISTER_JSON_REJECTED_TOPIC,
|
||||
TEST_REGISTER_JSON_REJECTED_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvJsonRegisterThingRejected, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_RegisterThingCborPublishHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_REGISTER_CBOR_PUBLISH_TOPIC,
|
||||
TEST_REGISTER_CBOR_PUBLISH_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvCborRegisterThingPublish, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_RegisterThingCborAcceptedHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_REGISTER_CBOR_ACCEPTED_TOPIC,
|
||||
TEST_REGISTER_CBOR_ACCEPTED_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvCborRegisterThingAccepted, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void test_FleetProvisioning_MatchTopic_RegisterThingCborRejectedHappyPath( void )
|
||||
{
|
||||
FleetProvisioningStatus_t ret;
|
||||
FleetProvisioningTopic_t api;
|
||||
|
||||
ret = FleetProvisioning_MatchTopic( TEST_REGISTER_CBOR_REJECTED_TOPIC,
|
||||
TEST_REGISTER_CBOR_REJECTED_LENGTH,
|
||||
&( api ) );
|
||||
|
||||
TEST_ASSERT_EQUAL( FleetProvisioningSuccess, ret );
|
||||
TEST_ASSERT_EQUAL( FleetProvCborRegisterThingRejected, api );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
@ -0,0 +1,32 @@
|
||||
# Macro to clone the Unity submodule.
|
||||
macro( clone_unity )
|
||||
find_package( Git REQUIRED )
|
||||
message( "Cloning Unity submodule." )
|
||||
execute_process( COMMAND rm -rf ${UNITY_DIR}
|
||||
COMMAND ${GIT_EXECUTABLE} submodule update --checkout --init --recursive ${UNITY_DIR}
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
RESULT_VARIABLE UNITY_CLONE_RESULT )
|
||||
|
||||
if( NOT ${UNITY_CLONE_RESULT} STREQUAL "0" )
|
||||
message( FATAL_ERROR "Failed to clone Unity submodule." )
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# Macro to add library target for Unity to build configuration.
|
||||
macro( add_unity_target )
|
||||
add_library( unity STATIC
|
||||
"${UNITY_DIR}/src/unity.c"
|
||||
"${UNITY_DIR}/extras/fixture/src/unity_fixture.c"
|
||||
"${UNITY_DIR}/extras/memory/src/unity_memory.c" )
|
||||
|
||||
target_include_directories( unity PUBLIC
|
||||
"${UNITY_DIR}/src/"
|
||||
"${UNITY_DIR}/extras/fixture/src"
|
||||
"${UNITY_DIR}/extras/memory/src" )
|
||||
|
||||
set_target_properties( unity PROPERTIES
|
||||
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
|
||||
POSITION_INDEPENDENT_CODE ON )
|
||||
|
||||
target_link_libraries( unity )
|
||||
endmacro()
|
||||
Reference in New Issue
Block a user