Skip to content

Commit bf083ee

Browse files
Kiro added UTs
1 parent d55ea8b commit bf083ee

File tree

2 files changed

+100
-10
lines changed

2 files changed

+100
-10
lines changed

test/unit-test/core_mqtt_serializer_utest.c

Lines changed: 98 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1161,6 +1161,35 @@ void test_MQTTV5_DeserializeConnackOnlyUserProperty( void )
11611161
TEST_ASSERT_EQUAL_INT( MQTTBadResponse, status );
11621162
}
11631163

1164+
void test_MQTTV5_DeserializeConnack_ReasonCodes( void )
1165+
{
1166+
uint8_t buffer[ 50 ];
1167+
bool sessionPresent = false;
1168+
MQTTPropBuilder_t propBuffer = { 0 };
1169+
1170+
memset( &properties, 0x00, sizeof( properties ) );
1171+
properties.maxPacketSize = 100;
1172+
1173+
packetInfo.pRemainingData = buffer;
1174+
packetInfo.type = MQTT_PACKET_TYPE_CONNACK;
1175+
packetInfo.remainingLength = 3;
1176+
1177+
buffer[ 0 ] = 0x00;
1178+
buffer[ 2 ] = 0x00;
1179+
1180+
buffer[ 1 ] = MQTT_REASON_CONNACK_USE_ANOTHER_SERVER;
1181+
status = MQTT_DeserializeConnAck( &packetInfo, &sessionPresent, &propBuffer, &properties );
1182+
TEST_ASSERT_EQUAL_INT( MQTTServerRefused, status );
1183+
1184+
buffer[ 1 ] = MQTT_REASON_CONNACK_SERVER_MOVED;
1185+
status = MQTT_DeserializeConnAck( &packetInfo, &sessionPresent, &propBuffer, &properties );
1186+
TEST_ASSERT_EQUAL_INT( MQTTServerRefused, status );
1187+
1188+
buffer[ 1 ] = MQTT_REASON_CONNACK_CONNECTION_RATE_EXCEEDED;
1189+
status = MQTT_DeserializeConnAck( &packetInfo, &sessionPresent, &propBuffer, &properties );
1190+
TEST_ASSERT_EQUAL_INT( MQTTServerRefused, status );
1191+
}
1192+
11641193
void test_MQTTV5_GetConnectPacketSize( void )
11651194
{
11661195
uint32_t remainingLength = 0;
@@ -2458,6 +2487,14 @@ void test_MQTTV5_GetSubscribePacketSize( void )
24582487
subscribeInfo.topicFilterLength = 65536;
24592488
status = MQTT_GetSubscribePacketSize( &subscribeInfo, 1, NULL, &remainingLength, &packetSize, 100 );
24602489
TEST_ASSERT_EQUAL_INT( MQTTBadParameter, status );
2490+
2491+
subscribeInfo.topicFilterLength = MQTT_MAX_REMAINING_LENGTH;
2492+
status = MQTT_GetSubscribePacketSize( &subscribeInfo, 1, NULL, &remainingLength, &packetSize, MQTT_MAX_PACKET_SIZE );
2493+
TEST_ASSERT_EQUAL_INT( MQTTBadParameter, status );
2494+
2495+
subscribeInfo.topicFilterLength = TEST_TOPIC_NAME_LENGTH;
2496+
status = MQTT_GetSubscribePacketSize( &subscribeInfo, 1, NULL, &remainingLength, &packetSize, 10 );
2497+
TEST_ASSERT_EQUAL_INT( MQTTBadParameter, status );
24612498
}
24622499

24632500
void test_MQTTV5_GetSubscribePacketSize_HappyPath( void )
@@ -2761,6 +2798,44 @@ void test_MQTT_SerializeSubscribe( void )
27612798
TEST_ASSERT_EQUAL_INT( MQTTSuccess, status );
27622799
}
27632800

2801+
void test_MQTT_SerializeSubscribe_NullTopicFilter( void )
2802+
{
2803+
MQTTSubscribeInfo_t subscriptionList;
2804+
uint32_t remainingLength = 20;
2805+
uint8_t buffer[ 100 ];
2806+
MQTTFixedBuffer_t fixedBuffer = { .pBuffer = buffer, .size = sizeof( buffer ) };
2807+
MQTTStatus_t status;
2808+
2809+
subscriptionList.pTopicFilter = NULL;
2810+
subscriptionList.topicFilterLength = 10;
2811+
status = MQTT_SerializeSubscribe( &subscriptionList, 1, NULL, 1, remainingLength, &fixedBuffer );
2812+
TEST_ASSERT_EQUAL_INT( MQTTBadParameter, status );
2813+
2814+
subscriptionList.pTopicFilter = "test";
2815+
subscriptionList.topicFilterLength = 0;
2816+
status = MQTT_SerializeSubscribe( &subscriptionList, 1, NULL, 1, remainingLength, &fixedBuffer );
2817+
TEST_ASSERT_EQUAL_INT( MQTTBadParameter, status );
2818+
}
2819+
2820+
void test_MQTT_SerializeUnsubscribe_NullTopicFilter( void )
2821+
{
2822+
MQTTSubscribeInfo_t subscriptionList;
2823+
uint32_t remainingLength = 20;
2824+
uint8_t buffer[ 100 ];
2825+
MQTTFixedBuffer_t fixedBuffer = { .pBuffer = buffer, .size = sizeof( buffer ) };
2826+
MQTTStatus_t status;
2827+
2828+
subscriptionList.pTopicFilter = NULL;
2829+
subscriptionList.topicFilterLength = 10;
2830+
status = MQTT_SerializeUnsubscribe( &subscriptionList, 1, NULL, 1, remainingLength, &fixedBuffer );
2831+
TEST_ASSERT_EQUAL_INT( MQTTBadParameter, status );
2832+
2833+
subscriptionList.pTopicFilter = "test";
2834+
subscriptionList.topicFilterLength = 0;
2835+
status = MQTT_SerializeUnsubscribe( &subscriptionList, 1, NULL, 1, remainingLength, &fixedBuffer );
2836+
TEST_ASSERT_EQUAL_INT( MQTTBadParameter, status );
2837+
}
2838+
27642839
/**
27652840
* @brief Tests that MQTT_SerializeUnsubscribe works as intended.
27662841
*/
@@ -3031,6 +3106,20 @@ void test_MQTTV5_GetUnsubscribePacketSize( void )
30313106
status = MQTT_GetUnsubscribePacketSize( &subscribeInfo, 0, NULL, &remainingLength, &packetSize, MQTT_MAX_PACKET_SIZE );
30323107
TEST_ASSERT_EQUAL_INT( MQTTBadParameter, status );
30333108

3109+
subscribeInfo.topicFilterLength = 65536;
3110+
status = MQTT_GetUnsubscribePacketSize( &subscribeInfo, 1, NULL, &remainingLength, &packetSize, MQTT_MAX_PACKET_SIZE );
3111+
TEST_ASSERT_EQUAL_INT( MQTTBadParameter, status );
3112+
subscribeInfo.topicFilterLength = TEST_TOPIC_NAME_LENGTH;
3113+
3114+
subscribeInfo.topicFilterLength = MQTT_MAX_REMAINING_LENGTH;
3115+
status = MQTT_GetUnsubscribePacketSize( &subscribeInfo, 1, NULL, &remainingLength, &packetSize, MQTT_MAX_PACKET_SIZE );
3116+
TEST_ASSERT_EQUAL_INT( MQTTBadParameter, status );
3117+
subscribeInfo.topicFilterLength = TEST_TOPIC_NAME_LENGTH;
3118+
3119+
subscribeInfo.topicFilterLength = TEST_TOPIC_NAME_LENGTH;
3120+
status = MQTT_GetUnsubscribePacketSize( &subscribeInfo, 1, NULL, &remainingLength, &packetSize, 10 );
3121+
TEST_ASSERT_EQUAL_INT( MQTTBadParameter, status );
3122+
30343123
MQTTPropBuilder_t propBuffer;
30353124
propBuffer.pBuffer = NULL;
30363125
status = MQTT_GetUnsubscribePacketSize( &subscribeInfo, 1, &propBuffer, &remainingLength, &packetSize, MQTT_MAX_PACKET_SIZE );
@@ -3321,29 +3410,30 @@ void test_MQTT_SerializeDisconnect( void )
33213410
MQTTStatus_t status = MQTTSuccess;
33223411
uint32_t remainingLength = 0;
33233412
MQTTPropBuilder_t propBuffer = { 0 };
3413+
MQTTSuccessFailReasonCode_t reasonCode = MQTT_REASON_DISCONNECT_NORMAL_DISCONNECTION;
33243414

33253415
/* Buffer size less than disconnect request fails. */
33263416
fixedBuffer.size = 1;
3327-
status = MQTT_SerializeDisconnect( NULL, MQTT_REASON_DISCONNECT_NORMAL_DISCONNECTION, remainingLength, &fixedBuffer );
3417+
status = MQTT_SerializeDisconnect( NULL, &reasonCode, remainingLength, &fixedBuffer );
33283418
TEST_ASSERT_EQUAL_INT( MQTTNoMemory, status );
33293419

33303420
status = MQTT_SerializeDisconnect( &propBuffer, NULL, remainingLength, &fixedBuffer );
33313421
TEST_ASSERT_EQUAL_INT( MQTTBadParameter, status );
33323422

33333423
/* NULL buffer fails. */
3334-
status = MQTT_SerializeDisconnect( NULL, MQTT_REASON_DISCONNECT_NORMAL_DISCONNECTION, remainingLength, NULL );
3424+
status = MQTT_SerializeDisconnect( NULL, &reasonCode, remainingLength, NULL );
33353425
TEST_ASSERT_EQUAL_INT( MQTTBadParameter, status );
33363426

33373427
/* Restore the fixed buffer. */
33383428
padAndResetBuffer( buffer, sizeof( buffer ) );
33393429
fixedBuffer.pBuffer = &buffer[ BUFFER_PADDING_LENGTH ];
33403430
fixedBuffer.size = bufferSize;
3341-
status = MQTT_GetDisconnectPacketSize( NULL, &remainingLength, &packetSize, MQTT_MAX_PACKET_SIZE, MQTT_REASON_DISCONNECT_NORMAL_DISCONNECTION );
3431+
status = MQTT_GetDisconnectPacketSize( NULL, &remainingLength, &packetSize, MQTT_MAX_PACKET_SIZE, &reasonCode );
33423432
TEST_ASSERT_EQUAL_INT( MQTTSuccess, status );
33433433
/* Make sure buffer has enough space */
33443434
TEST_ASSERT_GREATER_OR_EQUAL( packetSize, bufferSize );
33453435
/* Good case succeeds. */
3346-
status = MQTT_SerializeDisconnect( NULL, MQTT_REASON_DISCONNECT_NORMAL_DISCONNECTION, remainingLength, &fixedBuffer );
3436+
status = MQTT_SerializeDisconnect( NULL, &reasonCode, remainingLength, &fixedBuffer );
33473437
TEST_ASSERT_EQUAL_INT( MQTTSuccess, status );
33483438
checkBufferOverflow( buffer, sizeof( buffer ) );
33493439
*pIterator++ = MQTT_PACKET_TYPE_DISCONNECT;
@@ -3357,8 +3447,6 @@ void test_MQTT_SerializeDisconnect( void )
33573447
propBuffer.pBuffer = buf;
33583448
propBuffer.bufferLength = sizeof( buf );
33593449

3360-
MQTTSuccessFailReasonCode_t reasonCode = MQTT_REASON_DISCONNECT_NORMAL_DISCONNECTION;
3361-
33623450
MQTTPropAdd_SessionExpiry( &propBuffer, 10, NULL );
33633451
status = MQTT_GetDisconnectPacketSize( &propBuffer,
33643452
&remainingLength,
@@ -3463,8 +3551,8 @@ void test_MQTT_DeserializeAck_pingresp( void )
34633551
( void ) memset( &mqttPacketInfo, 0x00, sizeof( mqttPacketInfo ) );
34643552
mqttPacketInfo.type = MQTT_PACKET_TYPE_PINGRESP;
34653553
mqttPacketInfo.remainingLength = MQTT_PACKET_PINGRESP_REMAINING_LENGTH + 1;
3466-
status = MQTT_DeserializeAck( &mqttPacketInfo, NULL, NULL, NULL, &properties );
3467-
TEST_ASSERT_EQUAL_INT( MQTTBadParameter, status );
3554+
status = MQTT_DeserializeAck( &mqttPacketInfo, NULL, &reasonCode, NULL, &properties );
3555+
TEST_ASSERT_EQUAL_INT( MQTTBadResponse, status );
34683556

34693557
/* Process a valid PINGRESP. */
34703558
mqttPacketInfo.type = MQTT_PACKET_TYPE_PINGRESP;
@@ -4966,8 +5054,9 @@ void test_getProps( void )
49665054
const char * pAuthData;
49675055
size_t authDataLength;
49685056
MQTTUserProperty_t userProp;
4969-
49705057
size_t counter = 0U;
5058+
5059+
( void ) counter;
49715060
status = MQTT_GetNextPropertyType( NULL, &propCurrentIndex, &propertyId );
49725061
TEST_ASSERT_EQUAL_INT( MQTTBadParameter, status );
49735062

test/unit-test/core_mqtt_utest.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4735,7 +4735,8 @@ void test_MQTT_Disconnect_already_disconnected( void )
47354735
/* Send failure with network error. */
47364736
MQTT_GetDisconnectPacketSize_ExpectAnyArgsAndReturn( MQTTSuccess );
47374737
MQTT_GetDisconnectPacketSize_ReturnThruPtr_pPacketSize( &disconnectSize );
4738-
status = MQTT_Disconnect( &mqttContext, NULL, MQTT_REASON_DISCONNECT_NORMAL_DISCONNECTION );
4738+
MQTTSuccessFailReasonCode_t reasonCode = MQTT_REASON_DISCONNECT_NORMAL_DISCONNECTION;
4739+
status = MQTT_Disconnect( &mqttContext, NULL, &reasonCode );
47394740
TEST_ASSERT_EQUAL( MQTTStatusNotConnected, status );
47404741
}
47414742

0 commit comments

Comments
 (0)