Skip to content

Commit

Permalink
Fix integration test bugs reported by Coverity. (#167, #168)
Browse files Browse the repository at this point in the history
  • Loading branch information
huguesBouvier authored and gordonwang0 committed Apr 24, 2018
1 parent c9e98d2 commit 45c3a05
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 18 deletions.
2 changes: 1 addition & 1 deletion src/aws_iot_mqtt_client.c
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ IoT_Error_t aws_iot_mqtt_free(AWS_IoT_Client *pClient)
{
rc = aws_iot_thread_mutex_destroy(&(pClient->clientData.tls_write_mutex));
}else{
(void)aws_iot_thread_mutex_destroy(&(pClient->clientData.tls_read_mutex));
(void)aws_iot_thread_mutex_destroy(&(pClient->clientData.tls_write_mutex));
}
#endif
}
Expand Down
2 changes: 1 addition & 1 deletion src/aws_iot_shadow.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ IoT_Error_t aws_iot_shadow_free(AWS_IoT_Client *pClient)
}

IoT_Error_t aws_iot_shadow_init(AWS_IoT_Client *pClient, ShadowInitParameters_t *pParams) {
IoT_Client_Init_Params mqttInitParams;
IoT_Client_Init_Params mqttInitParams = IoT_Client_Init_Params_initializer;
IoT_Error_t rc;

FUNC_ENTRY;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,11 @@ static void aws_iot_mqtt_tests_message_aggregator(AWS_IoT_Client *pClient, char
tempRow = atoi(temp);
temp = strtok_r(NULL, " ,:", &next_token);
temp = strtok_r(NULL, " ,:", &next_token);

if(NULL == temp) {
return;
}

tempCol = atoi(temp);
if(NULL == temp) {
return;
Expand Down Expand Up @@ -181,6 +186,8 @@ static void *aws_iot_mqtt_tests_sub_unsub_thread_runner(void *ptr) {
IOT_ERROR("Unsubscribe Returned : %d ", rc);
}
}

return NULL;
}

int aws_iot_mqtt_tests_multi_threading_validation() {
Expand All @@ -192,7 +199,7 @@ int aws_iot_mqtt_tests_multi_threading_validation() {
char root_CA[PATH_MAX + 1];

char clientId[50];
IoT_Client_Init_Params initParams;
IoT_Client_Init_Params initParams = IoT_Client_Init_Params_initializer;
IoT_Client_Connect_Params connectParams;
int threadId[MAX_PUB_THREAD_COUNT];
int pubThreadReturn[MAX_PUB_THREAD_COUNT];
Expand All @@ -201,7 +208,7 @@ int aws_iot_mqtt_tests_multi_threading_validation() {
int finishedThreadCount = 0;
IoT_Error_t rc = SUCCESS;
int i, rxMsgCount = 0, j = 0;
struct timeval connectTime, subscribeTopic;
struct timeval subscribeTopic;
unsigned int connectCounter = 0;
int test_result = 0;
ThreadData threadData[MAX_PUB_THREAD_COUNT];
Expand Down Expand Up @@ -262,7 +269,7 @@ int aws_iot_mqtt_tests_multi_threading_validation() {
} while(SUCCESS != rc && connectCounter < CONNECT_MAX_ATTEMPT_COUNT);

if(SUCCESS == rc) {
printf("\n## Connect Success. Time sec: %d, usec: %d\n", connectTime.tv_sec, connectTime.tv_usec);
printf("\n## Connect Success.\n");
} else {
IOT_ERROR("## Connect Failed. error code %d\n", rc);
return -1;
Expand Down
6 changes: 4 additions & 2 deletions tests/integration/src/aws_iot_test_auto_reconnect.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ void aws_iot_mqtt_tests_block_tls_connect(AWS_IoT_Client *pClient) {
/**
* Always ensure this function is called after block_tls_connect
*/
int aws_iot_mqtt_tests_unblock_tls_connect(AWS_IoT_Client *pClient) {
void aws_iot_mqtt_tests_unblock_tls_connect(AWS_IoT_Client *pClient) {
pClient->networkStack.tlsConnectParams.pRootCALocation = savedLocation;
}

Expand All @@ -62,6 +62,8 @@ void *aws_iot_mqtt_tests_yield_with_rc(void *ptr) {
yieldRC = rc;
}
}

return NULL;
}

unsigned int disconnectedCounter = 0;
Expand Down Expand Up @@ -91,7 +93,7 @@ int aws_iot_mqtt_tests_auto_reconnect() {
snprintf(clientId, 50, "%s_%d", INTEGRATION_TEST_CLIENT_ID, rand() % 10000);

printf(" Root CA Path : %s\n clientCRT : %s\n clientKey : %s\n", root_CA, clientCRT, clientKey);
IoT_Client_Init_Params initParams;
IoT_Client_Init_Params initParams = IoT_Client_Init_Params_initializer;
initParams.pHostURL = AWS_IOT_MQTT_HOST;
initParams.port = AWS_IOT_MQTT_PORT;
initParams.pRootCALocation = root_CA;
Expand Down
12 changes: 10 additions & 2 deletions tests/integration/src/aws_iot_test_basic_connectivity.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,12 @@ static void aws_iot_mqtt_tests_message_aggregator(AWS_IoT_Client *pClient, char
tempRow = atoi(temp);
temp = strtok_r(NULL, " ,:", &next_token);
temp = strtok_r(NULL, " ,:", &next_token);
tempCol = atoi(temp);
if(NULL == temp) {
return;
}

tempCol = atoi(temp);

if(tempCol > 0 && tempCol <= PUBLISH_COUNT) {
countArray[tempCol - 1]++;
} else {
Expand Down Expand Up @@ -107,6 +109,8 @@ static void *aws_iot_mqtt_tests_yield_thread_runner(void *ptr) {
IOT_DEBUG("\nYield Returned : %d ", rc);
}
}

return NULL;
}

static void *aws_iot_mqtt_tests_publish_thread_runner(void *ptr) {
Expand Down Expand Up @@ -196,6 +200,10 @@ int aws_iot_mqtt_tests_basic_connectivity() {
initParams.pDevicePrivateKeyLocation = clientKey;
initParams.mqttCommandTimeout_ms = 10000;
initParams.tlsHandshakeTimeout_ms = 10000;
initParams.mqttPacketTimeout_ms = 5000;
initParams.isSSLHostnameVerify = true;
initParams.disconnectHandlerData = NULL;
initParams.isBlockOnThreadLockEnabled = true;
initParams.disconnectHandler = aws_iot_mqtt_tests_disconnect_callback_handler;
initParams.enableAutoReconnect = false;
aws_iot_mqtt_init(&client, &initParams);
Expand All @@ -211,7 +219,7 @@ int aws_iot_mqtt_tests_basic_connectivity() {
connectParams.pPassword = NULL;
connectParams.passwordLen = 0;

gettimeofday(&connectTime, NULL);
gettimeofday(&start, NULL);
rc = aws_iot_mqtt_connect(&client, &connectParams);
gettimeofday(&end, NULL);
timersub(&end, &start, &connectTime);
Expand Down
15 changes: 10 additions & 5 deletions tests/integration/src/aws_iot_test_jobs_api.c
Original file line number Diff line number Diff line change
Expand Up @@ -170,11 +170,11 @@ int aws_iot_jobs_basic_test() {
char CurrentWD[PATH_MAX + 1];
char clientId[50];
char cPayload[100];
IoT_Client_Init_Params initParams;
IoT_Client_Init_Params initParams = IoT_Client_Init_Params_initializer;
IoT_Client_Connect_Params connectParams;
IoT_Publish_Message_Params paramsQOS0;
IoT_Error_t rc = SUCCESS;
struct timeval connectTime;
struct timeval connectTime, waitCallBackTime;
struct timeval start, end;
unsigned int connectCounter = 0;

Expand Down Expand Up @@ -212,7 +212,7 @@ int aws_iot_jobs_basic_test() {
connectParams.pPassword = NULL;
connectParams.passwordLen = 0;

gettimeofday(&connectTime, NULL);
gettimeofday(&start, NULL);
rc = aws_iot_mqtt_connect(&client, &connectParams);
gettimeofday(&end, NULL);
timersub(&end, &start, &connectTime);
Expand All @@ -221,7 +221,7 @@ int aws_iot_jobs_basic_test() {
} while(rc != SUCCESS && connectCounter < CONNECT_MAX_ATTEMPT_COUNT);

if(SUCCESS == rc) {
IOT_DEBUG("## Connect Success. Time sec: %d, usec: %d\n", connectTime.tv_sec, connectTime.tv_usec);
IOT_DEBUG("## Connect Success. Time sec: %ld, usec: %ld\n", (long int)connectTime.tv_sec, (long int)connectTime.tv_usec);
} else {
IOT_ERROR("## Connect Failed. error code %d\n", rc);
return -1;
Expand Down Expand Up @@ -267,9 +267,14 @@ int aws_iot_jobs_basic_test() {
paramsQOS0.payloadLen = strlen(cPayload);

rc = aws_iot_jobs_send_query(&client, QOS0, AWS_IOT_MY_THING_NAME, NULL, NULL, topicToPublishGetPending, sizeof(topicToPublishGetPending), NULL, 0, JOB_GET_PENDING_TOPIC);

gettimeofday(&start, NULL);
while (!callbackDone) {
aws_iot_mqtt_yield(&client, 5000);

gettimeofday(&end, NULL);
timersub(&end, &start, &waitCallBackTime);

if(waitCallBackTime.tv_sec > 10) break;
}

return 0;
Expand Down
16 changes: 12 additions & 4 deletions tests/integration/src/aws_iot_test_multiple_clients.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,10 @@ static void aws_iot_mqtt_tests_message_aggregator(AWS_IoT_Client *pClient, char
if( params->payloadLen > MAX_ERROR_DISPLAY)
{
((char *)params->payload)[MAX_ERROR_DISPLAY-1] = '\0';
IOT_ERROR("\nWrong Msg received : %s", params->payload);
IOT_ERROR("\nWrong Msg received : %s", (char *)params->payload);
}else
{
IOT_ERROR("\nWrong Msg received : %s", params->payload);
IOT_ERROR("\nWrong Msg received : %s", (char *)params->payload);
}
rxMsgBufferTooBigCounter++;
}
Expand All @@ -81,6 +81,10 @@ static IoT_Error_t aws_iot_mqtt_tests_connect_client_to_service(AWS_IoT_Client *
initParams.pDevicePrivateKeyLocation = clientKey;
initParams.mqttCommandTimeout_ms = 5000;
initParams.tlsHandshakeTimeout_ms = 2000;
initParams.mqttPacketTimeout_ms = 5000;
initParams.isSSLHostnameVerify = true;
initParams.disconnectHandlerData = NULL;
initParams.isBlockOnThreadLockEnabled = true;
initParams.disconnectHandler = aws_iot_mqtt_tests_disconnect_callback_handler;
initParams.enableAutoReconnect = false;
rc = aws_iot_mqtt_init(pClient, &initParams);
Expand Down Expand Up @@ -136,6 +140,8 @@ static void *aws_iot_mqtt_tests_yield_thread_runner(void *ptr) {
IOT_ERROR("\nYield Returned : %d ", rc);
}
}

return NULL;
}

static void *aws_iot_mqtt_tests_publish_thread_runner(void *ptr) {
Expand Down Expand Up @@ -164,6 +170,8 @@ static void *aws_iot_mqtt_tests_publish_thread_runner(void *ptr) {
}
usleep(300000);
}

return NULL;
}


Expand Down Expand Up @@ -221,7 +229,7 @@ int aws_iot_mqtt_tests_multiple_clients() {
} while(SUCCESS != rc && CONNECT_MAX_ATTEMPT_COUNT > connectCounter);

if(SUCCESS == rc) {
printf("\n## Connect Success. Time sec: %d, usec: %d\n", connectTime.tv_sec, connectTime.tv_usec);
printf("\n## Connect Success. Time sec: %ld, usec: %ld\n", (long int)connectTime.tv_sec, (long int)connectTime.tv_usec);
} else {
printf("\n## Connect Failed. error code %d\n", rc);
return -1;
Expand All @@ -235,7 +243,7 @@ int aws_iot_mqtt_tests_multiple_clients() {
} while(SUCCESS != rc && connectCounter < CONNECT_MAX_ATTEMPT_COUNT);

if(SUCCESS == rc) {
printf("## Connect Success. Time sec: %d, usec: %d\n", connectTime.tv_sec, connectTime.tv_usec);
printf("## Connect Success. Time sec: %ld, usec: %ld\n", (long int)connectTime.tv_sec, (long int)connectTime.tv_usec);
} else {
printf("## Connect Failed. error code %d\n", rc);
return -1;
Expand Down

0 comments on commit 45c3a05

Please sign in to comment.