Fix potential crashes on memory alloc failure in tests only.

pull/1239/head
Roger A. Light 7 years ago
parent fb8a2baaad
commit 2fcf246f07

@ -128,9 +128,11 @@ static void string_read_helper(
rc = packet__read_string(&packet, (char **)&value, &length);
CU_ASSERT_EQUAL(rc, rc_expected);
if(value_expected){
CU_ASSERT_NSTRING_EQUAL(value, value_expected, length_expected);
if(value){
CU_ASSERT_NSTRING_EQUAL(value, value_expected, length_expected);
}
}else{
CU_ASSERT_EQUAL(value, NULL);
CU_ASSERT_PTR_NULL(value);
}
CU_ASSERT_EQUAL(length, length_expected);
free(value);

@ -359,13 +359,15 @@ static void packet_helper_reason_string_user_property(int command)
CU_ASSERT_EQUAL(p->value.s.len, strlen("reason"));
p = p->next;
CU_ASSERT_PTR_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_USER_PROPERTY);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "value");
CU_ASSERT_EQUAL(p->value.s.len, strlen("value"));
CU_ASSERT_STRING_EQUAL(p->name.v, "name");
CU_ASSERT_EQUAL(p->name.len, strlen("name"));
if(p){
CU_ASSERT_PTR_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_USER_PROPERTY);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "value");
CU_ASSERT_EQUAL(p->value.s.len, strlen("value"));
CU_ASSERT_STRING_EQUAL(p->name.v, "name");
CU_ASSERT_EQUAL(p->name.len, strlen("name"));
}
mosquitto_property_free_all(&properties);
}
@ -1220,58 +1222,83 @@ static void TEST_packet_connect(void)
rc = property__read_all(CMD_CONNECT, &packet, &properties);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
CU_ASSERT_PTR_NOT_NULL(properties->next);
p = properties;
CU_ASSERT_PTR_NOT_NULL(properties);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SESSION_EXPIRY_INTERVAL);
CU_ASSERT_EQUAL(p->value.i32, 0x12450000);
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SESSION_EXPIRY_INTERVAL);
CU_ASSERT_EQUAL(p->value.i32, 0x12450000);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_RECEIVE_MAXIMUM);
CU_ASSERT_EQUAL(p->value.i16, 0x0005);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_MAXIMUM_PACKET_SIZE);
CU_ASSERT_EQUAL(p->value.i32, 0x12450000);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_TOPIC_ALIAS_MAXIMUM);
CU_ASSERT_EQUAL(p->value.i16, 0x0002);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_REQUEST_PROBLEM_INFORMATION);
CU_ASSERT_EQUAL(p->value.i8, 1);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_REQUEST_RESPONSE_INFORMATION);
CU_ASSERT_EQUAL(p->value.i8, 1);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_USER_PROPERTY);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "value");
CU_ASSERT_EQUAL(p->value.s.len, strlen("value"));
CU_ASSERT_STRING_EQUAL(p->name.v, "name");
CU_ASSERT_EQUAL(p->name.len, strlen("name"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_AUTHENTICATION_METHOD);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "none");
CU_ASSERT_EQUAL(p->value.s.len, strlen("none"));
p = p->next;
CU_ASSERT_PTR_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_AUTHENTICATION_DATA);
CU_ASSERT_EQUAL(p->value.bin.v[0], 1);
CU_ASSERT_EQUAL(p->value.bin.v[1], 2);
CU_ASSERT_EQUAL(p->value.s.len, 2);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_RECEIVE_MAXIMUM);
CU_ASSERT_EQUAL(p->value.i16, 0x0005);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_MAXIMUM_PACKET_SIZE);
CU_ASSERT_EQUAL(p->value.i32, 0x12450000);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_TOPIC_ALIAS_MAXIMUM);
CU_ASSERT_EQUAL(p->value.i16, 0x0002);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_REQUEST_PROBLEM_INFORMATION);
CU_ASSERT_EQUAL(p->value.i8, 1);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_REQUEST_RESPONSE_INFORMATION);
CU_ASSERT_EQUAL(p->value.i8, 1);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_USER_PROPERTY);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "value");
CU_ASSERT_EQUAL(p->value.s.len, strlen("value"));
CU_ASSERT_STRING_EQUAL(p->name.v, "name");
CU_ASSERT_EQUAL(p->name.len, strlen("name"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_AUTHENTICATION_METHOD);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "none");
CU_ASSERT_EQUAL(p->value.s.len, strlen("none"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_AUTHENTICATION_DATA);
CU_ASSERT_EQUAL(p->value.bin.v[0], 1);
CU_ASSERT_EQUAL(p->value.bin.v[1], 2);
CU_ASSERT_EQUAL(p->value.s.len, 2);
}
}
}
}
}
}
}
}
}
mosquitto_property_free_all(&properties);
}
@ -1309,102 +1336,152 @@ static void TEST_packet_connack(void)
rc = property__read_all(CMD_CONNACK, &packet, &properties);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
CU_ASSERT_PTR_NOT_NULL(properties->next);
CU_ASSERT_PTR_NOT_NULL(properties);
p = properties;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SESSION_EXPIRY_INTERVAL);
CU_ASSERT_EQUAL(p->value.i32, 0x12450000);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_RECEIVE_MAXIMUM);
CU_ASSERT_EQUAL(p->value.i16, 0x0005);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_MAXIMUM_QOS);
CU_ASSERT_EQUAL(p->value.i8, 1);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_RETAIN_AVAILABLE);
CU_ASSERT_EQUAL(p->value.i8, 0);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_MAXIMUM_PACKET_SIZE);
CU_ASSERT_EQUAL(p->value.i32, 0x12450000);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_ASSIGNED_CLIENT_IDENTIFIER);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "ab");
CU_ASSERT_EQUAL(p->value.s.len, strlen("ab"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_TOPIC_ALIAS_MAXIMUM);
CU_ASSERT_EQUAL(p->value.i16, 0x0002);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_REASON_STRING);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "reason");
CU_ASSERT_EQUAL(p->value.s.len, strlen("reason"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_USER_PROPERTY);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "value");
CU_ASSERT_EQUAL(p->value.s.len, strlen("value"));
CU_ASSERT_STRING_EQUAL(p->name.v, "name");
CU_ASSERT_EQUAL(p->name.len, strlen("name"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_WILDCARD_SUB_AVAILABLE);
CU_ASSERT_EQUAL(p->value.i8, 0);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SUBSCRIPTION_ID_AVAILABLE);
CU_ASSERT_EQUAL(p->value.i8, 0);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SHARED_SUB_AVAILABLE);
CU_ASSERT_EQUAL(p->value.i8, 0);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SERVER_KEEP_ALIVE);
CU_ASSERT_EQUAL(p->value.i16, 0x00FF);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_RESPONSE_INFORMATION);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "rsp");
CU_ASSERT_EQUAL(p->value.s.len, strlen("rsp"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SERVER_REFERENCE);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "serv");
CU_ASSERT_EQUAL(p->value.s.len, strlen("serv"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_AUTHENTICATION_METHOD);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "none");
CU_ASSERT_EQUAL(p->value.s.len, strlen("none"));
p = p->next;
CU_ASSERT_PTR_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_AUTHENTICATION_DATA);
CU_ASSERT_EQUAL(p->value.bin.v[0], 1);
CU_ASSERT_EQUAL(p->value.bin.v[1], 2);
CU_ASSERT_EQUAL(p->value.s.len, 2);
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SESSION_EXPIRY_INTERVAL);
CU_ASSERT_EQUAL(p->value.i32, 0x12450000);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_RECEIVE_MAXIMUM);
CU_ASSERT_EQUAL(p->value.i16, 0x0005);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_MAXIMUM_QOS);
CU_ASSERT_EQUAL(p->value.i8, 1);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_RETAIN_AVAILABLE);
CU_ASSERT_EQUAL(p->value.i8, 0);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_MAXIMUM_PACKET_SIZE);
CU_ASSERT_EQUAL(p->value.i32, 0x12450000);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_ASSIGNED_CLIENT_IDENTIFIER);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "ab");
CU_ASSERT_EQUAL(p->value.s.len, strlen("ab"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_TOPIC_ALIAS_MAXIMUM);
CU_ASSERT_EQUAL(p->value.i16, 0x0002);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_REASON_STRING);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "reason");
CU_ASSERT_EQUAL(p->value.s.len, strlen("reason"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_USER_PROPERTY);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "value");
CU_ASSERT_EQUAL(p->value.s.len, strlen("value"));
CU_ASSERT_STRING_EQUAL(p->name.v, "name");
CU_ASSERT_EQUAL(p->name.len, strlen("name"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_WILDCARD_SUB_AVAILABLE);
CU_ASSERT_EQUAL(p->value.i8, 0);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SUBSCRIPTION_ID_AVAILABLE);
CU_ASSERT_EQUAL(p->value.i8, 0);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SHARED_SUB_AVAILABLE);
CU_ASSERT_EQUAL(p->value.i8, 0);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SERVER_KEEP_ALIVE);
CU_ASSERT_EQUAL(p->value.i16, 0x00FF);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_RESPONSE_INFORMATION);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "rsp");
CU_ASSERT_EQUAL(p->value.s.len, strlen("rsp"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SERVER_REFERENCE);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "serv");
CU_ASSERT_EQUAL(p->value.s.len, strlen("serv"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_AUTHENTICATION_METHOD);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "none");
CU_ASSERT_EQUAL(p->value.s.len, strlen("none"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_AUTHENTICATION_DATA);
CU_ASSERT_EQUAL(p->value.bin.v[0], 1);
CU_ASSERT_EQUAL(p->value.bin.v[1], 2);
CU_ASSERT_EQUAL(p->value.s.len, 2);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
mosquitto_property_free_all(&properties);
}
@ -1433,54 +1510,77 @@ static void TEST_packet_publish(void)
rc = property__read_all(CMD_PUBLISH, &packet, &properties);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
CU_ASSERT_PTR_NOT_NULL(properties->next);
p = properties;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_PAYLOAD_FORMAT_INDICATOR);
CU_ASSERT_EQUAL(p->value.i8, 1);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_MESSAGE_EXPIRY_INTERVAL);
CU_ASSERT_EQUAL(p->value.i32, 0x12450000);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_TOPIC_ALIAS);
CU_ASSERT_EQUAL(p->value.i16, 0x0002);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_RESPONSE_TOPIC);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "respon");
CU_ASSERT_EQUAL(p->value.s.len, strlen("respon"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_CORRELATION_DATA);
CU_ASSERT_EQUAL(p->value.bin.v[0], 1);
CU_ASSERT_EQUAL(p->value.bin.v[1], 2);
CU_ASSERT_EQUAL(p->value.bin.len, 2);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_USER_PROPERTY);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "value");
CU_ASSERT_EQUAL(p->value.s.len, strlen("value"));
CU_ASSERT_STRING_EQUAL(p->name.v, "name");
CU_ASSERT_EQUAL(p->name.len, strlen("name"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SUBSCRIPTION_IDENTIFIER);
CU_ASSERT_EQUAL(p->value.varint, 0x00000004);
p = p->next;
CU_ASSERT_PTR_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_CONTENT_TYPE);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "empty");
CU_ASSERT_EQUAL(p->value.s.len, strlen("empty"));
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_PAYLOAD_FORMAT_INDICATOR);
CU_ASSERT_EQUAL(p->value.i8, 1);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_MESSAGE_EXPIRY_INTERVAL);
CU_ASSERT_EQUAL(p->value.i32, 0x12450000);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_TOPIC_ALIAS);
CU_ASSERT_EQUAL(p->value.i16, 0x0002);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_RESPONSE_TOPIC);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "respon");
CU_ASSERT_EQUAL(p->value.s.len, strlen("respon"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_CORRELATION_DATA);
CU_ASSERT_EQUAL(p->value.bin.v[0], 1);
CU_ASSERT_EQUAL(p->value.bin.v[1], 2);
CU_ASSERT_EQUAL(p->value.bin.len, 2);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_USER_PROPERTY);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "value");
CU_ASSERT_EQUAL(p->value.s.len, strlen("value"));
CU_ASSERT_STRING_EQUAL(p->name.v, "name");
CU_ASSERT_EQUAL(p->name.len, strlen("name"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SUBSCRIPTION_IDENTIFIER);
CU_ASSERT_EQUAL(p->value.varint, 0x00000004);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_CONTENT_TYPE);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "empty");
CU_ASSERT_EQUAL(p->value.s.len, strlen("empty"));
}
}
}
}
}
}
}
}
mosquitto_property_free_all(&properties);
}
@ -1523,20 +1623,25 @@ static void TEST_packet_subscribe(void)
rc = property__read_all(CMD_SUBSCRIBE, &packet, &properties);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
CU_ASSERT_PTR_NOT_NULL(properties->next);
p = properties;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_USER_PROPERTY);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "value");
CU_ASSERT_EQUAL(p->value.s.len, strlen("value"));
CU_ASSERT_STRING_EQUAL(p->name.v, "name");
CU_ASSERT_EQUAL(p->name.len, strlen("name"));
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_USER_PROPERTY);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "value");
CU_ASSERT_EQUAL(p->value.s.len, strlen("value"));
CU_ASSERT_STRING_EQUAL(p->name.v, "name");
CU_ASSERT_EQUAL(p->name.len, strlen("name"));
p = p->next;
CU_ASSERT_PTR_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SUBSCRIPTION_IDENTIFIER);
CU_ASSERT_EQUAL(p->value.varint, 0x00000004);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SUBSCRIPTION_IDENTIFIER);
CU_ASSERT_EQUAL(p->value.varint, 0x00000004);
}
}
mosquitto_property_free_all(&properties);
}
@ -1565,12 +1670,15 @@ static void TEST_packet_unsubscribe(void)
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
p = properties;
CU_ASSERT_PTR_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_USER_PROPERTY);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "value");
CU_ASSERT_EQUAL(p->value.s.len, strlen("value"));
CU_ASSERT_STRING_EQUAL(p->name.v, "name");
CU_ASSERT_EQUAL(p->name.len, strlen("name"));
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_USER_PROPERTY);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "value");
CU_ASSERT_EQUAL(p->value.s.len, strlen("value"));
CU_ASSERT_STRING_EQUAL(p->name.v, "name");
CU_ASSERT_EQUAL(p->name.len, strlen("name"));
}
mosquitto_property_free_all(&properties);
}
@ -1599,26 +1707,34 @@ static void TEST_packet_disconnect(void)
rc = property__read_all(CMD_DISCONNECT, &packet, &properties);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
CU_ASSERT_PTR_NOT_NULL(properties->next);
p = properties;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SESSION_EXPIRY_INTERVAL);
CU_ASSERT_EQUAL(p->value.i32, 0x12450000);
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_SESSION_EXPIRY_INTERVAL);
CU_ASSERT_EQUAL(p->value.i32, 0x12450000);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_REASON_STRING);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "reason");
CU_ASSERT_EQUAL(p->value.s.len, strlen("reason"));
p = p->next;
CU_ASSERT_PTR_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_USER_PROPERTY);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "value");
CU_ASSERT_EQUAL(p->value.s.len, strlen("value"));
CU_ASSERT_STRING_EQUAL(p->name.v, "name");
CU_ASSERT_EQUAL(p->name.len, strlen("name"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_REASON_STRING);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "reason");
CU_ASSERT_EQUAL(p->value.s.len, strlen("reason"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_USER_PROPERTY);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "value");
CU_ASSERT_EQUAL(p->value.s.len, strlen("value"));
CU_ASSERT_STRING_EQUAL(p->name.v, "name");
CU_ASSERT_EQUAL(p->name.len, strlen("name"));
}
}
}
mosquitto_property_free_all(&properties);
}
@ -1643,34 +1759,45 @@ static void TEST_packet_auth(void)
rc = property__read_all(CMD_AUTH, &packet, &properties);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
CU_ASSERT_PTR_NOT_NULL(properties->next);
p = properties;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_AUTHENTICATION_METHOD);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "none");
CU_ASSERT_EQUAL(p->value.s.len, strlen("none"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_AUTHENTICATION_DATA);
CU_ASSERT_EQUAL(p->value.bin.v[0], 1);
CU_ASSERT_EQUAL(p->value.bin.v[1], 2);
CU_ASSERT_EQUAL(p->value.s.len, 2);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_REASON_STRING);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "reason");
CU_ASSERT_EQUAL(p->value.s.len, strlen("reason"));
p = p->next;
CU_ASSERT_PTR_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_USER_PROPERTY);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "value");
CU_ASSERT_EQUAL(p->value.s.len, strlen("value"));
CU_ASSERT_STRING_EQUAL(p->name.v, "name");
CU_ASSERT_EQUAL(p->name.len, strlen("name"));
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_AUTHENTICATION_METHOD);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "none");
CU_ASSERT_EQUAL(p->value.s.len, strlen("none"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_AUTHENTICATION_DATA);
CU_ASSERT_EQUAL(p->value.bin.v[0], 1);
CU_ASSERT_EQUAL(p->value.bin.v[1], 2);
CU_ASSERT_EQUAL(p->value.s.len, 2);
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NOT_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_REASON_STRING);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "reason");
CU_ASSERT_EQUAL(p->value.s.len, strlen("reason"));
p = p->next;
CU_ASSERT_PTR_NOT_NULL(p);
if(p){
CU_ASSERT_PTR_NULL(p->next);
CU_ASSERT_EQUAL(p->identifier, MQTT_PROP_USER_PROPERTY);
CU_ASSERT_STRING_EQUAL(p->value.s.v, "value");
CU_ASSERT_EQUAL(p->value.s.len, strlen("value"));
CU_ASSERT_STRING_EQUAL(p->name.v, "name");
CU_ASSERT_EQUAL(p->name.len, strlen("name"));
}
}
}
}
mosquitto_property_free_all(&properties);
}

@ -13,56 +13,82 @@ static void generate_full_proplist(mosquitto_property **proplist)
* property. Very useful for testing though. */
rc = mosquitto_property_add_byte(proplist, MQTT_PROP_PAYLOAD_FORMAT_INDICATOR, 1);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_int32(proplist, MQTT_PROP_MESSAGE_EXPIRY_INTERVAL, 3600);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_string(proplist, MQTT_PROP_CONTENT_TYPE, "application/json");
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_string(proplist, MQTT_PROP_RESPONSE_TOPIC, "response/topic");
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_binary(proplist, MQTT_PROP_CORRELATION_DATA, "correlation-data", strlen("correlation-data"));
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_varint(proplist, MQTT_PROP_SUBSCRIPTION_IDENTIFIER, 63);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_int32(proplist, MQTT_PROP_SESSION_EXPIRY_INTERVAL, 86400);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_string(proplist, MQTT_PROP_ASSIGNED_CLIENT_IDENTIFIER, "mosquitto-test");
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_int16(proplist, MQTT_PROP_SERVER_KEEP_ALIVE, 180);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_string(proplist, MQTT_PROP_AUTHENTICATION_METHOD, "basic");
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_binary(proplist, MQTT_PROP_AUTHENTICATION_DATA, "password", strlen("password"));
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_byte(proplist, MQTT_PROP_REQUEST_PROBLEM_INFORMATION, 1);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_int32(proplist, MQTT_PROP_WILL_DELAY_INTERVAL, 1800);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_byte(proplist, MQTT_PROP_REQUEST_RESPONSE_INFORMATION, 1);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_string(proplist, MQTT_PROP_RESPONSE_INFORMATION, "response");
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_string(proplist, MQTT_PROP_SERVER_REFERENCE, "localhost");
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_string(proplist, MQTT_PROP_REASON_STRING, "reason");
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_int16(proplist, MQTT_PROP_RECEIVE_MAXIMUM, 1024);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_int16(proplist, MQTT_PROP_TOPIC_ALIAS_MAXIMUM, 64);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_int16(proplist, MQTT_PROP_TOPIC_ALIAS, 15);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_byte(proplist, MQTT_PROP_MAXIMUM_QOS, 0);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_byte(proplist, MQTT_PROP_RETAIN_AVAILABLE, 0);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_string_pair(proplist, MQTT_PROP_USER_PROPERTY, "user-agent", "mosquitto/test");
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_int32(proplist, MQTT_PROP_MAXIMUM_PACKET_SIZE, 200000000);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_byte(proplist, MQTT_PROP_WILDCARD_SUB_AVAILABLE, 0);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_byte(proplist, MQTT_PROP_SUBSCRIPTION_ID_AVAILABLE, 0);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
if(rc != MOSQ_ERR_SUCCESS) return;
rc = mosquitto_property_add_byte(proplist, MQTT_PROP_SHARED_SUB_AVAILABLE, 0);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
}
@ -167,36 +193,50 @@ static void read_varint_helper(const mosquitto_property *proplist, int identifie
static void read_binary_helper(const mosquitto_property *proplist, int identifier, void *expected_value, int expected_length)
{
const mosquitto_property *prop;
void *value;
void *value = NULL;
int length;
prop = mosquitto_property_read_binary(proplist, identifier, &value, &length, false);
CU_ASSERT_PTR_NOT_NULL(prop);
CU_ASSERT_EQUAL(length, expected_length);
CU_ASSERT_NSTRING_EQUAL(value, expected_value, expected_length);
CU_ASSERT_PTR_NOT_NULL(value);
if(value){
CU_ASSERT_NSTRING_EQUAL(value, expected_value, expected_length);
}
free(value);
}
static void read_string_helper(const mosquitto_property *proplist, int identifier, char *expected_value)
{
const mosquitto_property *prop;
char *value;
char *value = NULL;
prop = mosquitto_property_read_string(proplist, identifier, &value, false);
CU_ASSERT_PTR_NOT_NULL(prop);
CU_ASSERT_STRING_EQUAL(value, expected_value);
CU_ASSERT_PTR_NOT_NULL(value);
if(value){
CU_ASSERT_STRING_EQUAL(value, expected_value);
}
free(value);
}
static void read_string_pair_helper(const mosquitto_property *proplist, int identifier, char *expected_key, char *expected_value)
{
const mosquitto_property *prop;
char *key, *value;
char *key = NULL, *value = NULL;
prop = mosquitto_property_read_string_pair(proplist, identifier, &key, &value, false);
CU_ASSERT_PTR_NOT_NULL(prop);
CU_ASSERT_STRING_EQUAL(key, expected_key);
CU_ASSERT_STRING_EQUAL(value, expected_value);
CU_ASSERT_PTR_NOT_NULL(key);
if(key){
CU_ASSERT_STRING_EQUAL(key, expected_key);
}
CU_ASSERT_PTR_NOT_NULL(value);
if(value){
CU_ASSERT_STRING_EQUAL(value, expected_value);
}
free(key);
free(value);
}
@ -323,8 +363,10 @@ static void TEST_read_single_binary(void)
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
CU_ASSERT_PTR_NOT_NULL(proplist_copy);
read_binary_helper(proplist_copy, MQTT_PROP_CORRELATION_DATA, "correlation-data", strlen("correlation-data"));
read_binary_helper(proplist_copy, MQTT_PROP_AUTHENTICATION_DATA, "password", strlen("password"));
if(proplist_copy){
read_binary_helper(proplist_copy, MQTT_PROP_CORRELATION_DATA, "correlation-data", strlen("correlation-data"));
read_binary_helper(proplist_copy, MQTT_PROP_AUTHENTICATION_DATA, "password", strlen("password"));
}
mosquitto_property_free_all(&proplist);
mosquitto_property_free_all(&proplist_copy);
@ -350,13 +392,15 @@ static void TEST_read_single_string(void)
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
CU_ASSERT_PTR_NOT_NULL(proplist_copy);
read_string_helper(proplist_copy, MQTT_PROP_CONTENT_TYPE, "application/json");
read_string_helper(proplist_copy, MQTT_PROP_RESPONSE_TOPIC, "response/topic");
read_string_helper(proplist_copy, MQTT_PROP_ASSIGNED_CLIENT_IDENTIFIER, "mosquitto-test");
read_string_helper(proplist_copy, MQTT_PROP_AUTHENTICATION_METHOD, "basic");
read_string_helper(proplist_copy, MQTT_PROP_RESPONSE_INFORMATION, "response");
read_string_helper(proplist_copy, MQTT_PROP_SERVER_REFERENCE, "localhost");
read_string_helper(proplist_copy, MQTT_PROP_REASON_STRING, "reason");
if(proplist_copy){
read_string_helper(proplist_copy, MQTT_PROP_CONTENT_TYPE, "application/json");
read_string_helper(proplist_copy, MQTT_PROP_RESPONSE_TOPIC, "response/topic");
read_string_helper(proplist_copy, MQTT_PROP_ASSIGNED_CLIENT_IDENTIFIER, "mosquitto-test");
read_string_helper(proplist_copy, MQTT_PROP_AUTHENTICATION_METHOD, "basic");
read_string_helper(proplist_copy, MQTT_PROP_RESPONSE_INFORMATION, "response");
read_string_helper(proplist_copy, MQTT_PROP_SERVER_REFERENCE, "localhost");
read_string_helper(proplist_copy, MQTT_PROP_REASON_STRING, "reason");
}
mosquitto_property_free_all(&proplist);
mosquitto_property_free_all(&proplist_copy);
@ -376,7 +420,9 @@ static void TEST_read_single_string_pair(void)
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
CU_ASSERT_PTR_NOT_NULL(proplist_copy);
read_string_pair_helper(proplist_copy, MQTT_PROP_USER_PROPERTY, "user-agent", "mosquitto/test");
if(proplist_copy){
read_string_pair_helper(proplist_copy, MQTT_PROP_USER_PROPERTY, "user-agent", "mosquitto/test");
}
mosquitto_property_free_all(&proplist);
mosquitto_property_free_all(&proplist_copy);
@ -471,7 +517,9 @@ static void TEST_read_missing(void)
rc = mosquitto_property_copy_all(&proplist_copy, proplist);
CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
CU_ASSERT_PTR_NOT_NULL(proplist_copy);
missing_read_helper(proplist_copy);
if(proplist_copy){
missing_read_helper(proplist_copy);
}
mosquitto_property_free_all(&proplist);
mosquitto_property_free_all(&proplist_copy);

@ -27,6 +27,9 @@ static void byte_prop_write_helper(
packet.packet_length = packet.remaining_length+10;
packet.payload = calloc(packet.remaining_length+10, 1);
CU_ASSERT_PTR_NOT_NULL(packet.payload);
if(!packet.payload) return;
property__write_all(&packet, &property, true);
packet.pos = 0;
@ -68,6 +71,9 @@ static void int32_prop_write_helper(
packet.packet_length = packet.remaining_length+10;
packet.payload = calloc(packet.remaining_length+10, 1);
CU_ASSERT_PTR_NOT_NULL(packet.payload);
if(!packet.payload) return;
property__write_all(&packet, &property, true);
packet.pos = 0;
@ -109,6 +115,9 @@ static void int16_prop_write_helper(
packet.packet_length = packet.remaining_length+10;
packet.payload = calloc(packet.remaining_length+10, 1);
CU_ASSERT_PTR_NOT_NULL(packet.payload);
if(!packet.payload) return;
property__write_all(&packet, &property, true);
packet.pos = 0;
@ -143,6 +152,9 @@ static void string_prop_write_helper(
property.identifier = identifier;
property.value.s.v = strdup(value_expected);
CU_ASSERT_PTR_NOT_NULL(property.value.s.v);
if(!property.value.s.v) return;
property.value.s.len = strlen(value_expected);
memset(&packet, 0, sizeof(struct mosquitto__packet));
@ -150,6 +162,9 @@ static void string_prop_write_helper(
packet.packet_length = packet.remaining_length+10;
packet.payload = calloc(packet.remaining_length+10, 1);
CU_ASSERT_PTR_NOT_NULL(packet.payload);
if(!packet.payload) return;
property__write_all(&packet, &property, true);
packet.pos = 0;
@ -188,6 +203,9 @@ static void binary_prop_write_helper(
property.identifier = identifier;
property.value.bin.v = malloc(len_expected);
CU_ASSERT_PTR_NOT_NULL(property.value.bin.v);
if(!property.value.bin.v) return;
memcpy(property.value.bin.v, value_expected, len_expected);
property.value.bin.len = len_expected;
@ -196,6 +214,9 @@ static void binary_prop_write_helper(
packet.packet_length = packet.remaining_length+10;
packet.payload = calloc(packet.remaining_length+10, 1);
CU_ASSERT_PTR_NOT_NULL(packet.payload);
if(!packet.payload) return;
property__write_all(&packet, &property, true);
packet.pos = 0;
@ -233,8 +254,14 @@ static void string_pair_prop_write_helper(
property.identifier = identifier;
property.value.s.v = strdup(value_expected);
CU_ASSERT_PTR_NOT_NULL(property.value.s.v);
if(!property.value.s.v) return;
property.value.s.len = strlen(value_expected);
property.name.v = strdup(name_expected);
CU_ASSERT_PTR_NOT_NULL(property.name.v);
if(!property.name.v) return;
property.name.len = strlen(name_expected);
memset(&packet, 0, sizeof(struct mosquitto__packet));
@ -242,6 +269,9 @@ static void string_pair_prop_write_helper(
packet.packet_length = packet.remaining_length+10;
packet.payload = calloc(packet.remaining_length+10, 1);
CU_ASSERT_PTR_NOT_NULL(packet.payload);
if(!packet.payload) return;
property__write_all(&packet, &property, true);
packet.pos = 0;
@ -290,6 +320,9 @@ static void varint_prop_write_helper(
packet.packet_length = packet.remaining_length+10;
packet.payload = calloc(packet.remaining_length+10, 1);
CU_ASSERT_PTR_NOT_NULL(packet.payload);
if(!packet.payload) return;
property__write_all(&packet, &property, true);
packet.pos = 0;

Loading…
Cancel
Save