Commit d0f87d58 authored by Ian Craggs's avatar Ian Craggs

MQTT V5 async tests for shared subs, subs options and request response #470 471 487

parent 7dc676e5
......@@ -3073,7 +3073,8 @@ int MQTTAsync_subscribeMany(MQTTAsync handle, int count, char* const* topic, int
rc = MQTTASYNC_NO_MORE_MSGIDS;
goto exit;
}
if (m->c->MQTTVersion >= MQTTVERSION_5 && count > 1 && count != response->subscribe_options_count)
if (m->c->MQTTVersion >= MQTTVERSION_5 && count > 1 && (count != response->subscribe_options_count
&& response->subscribe_options_count != 0))
{
rc = MQTTASYNC_BAD_MQTT_OPTIONS;
goto exit;
......@@ -3099,8 +3100,17 @@ int MQTTAsync_subscribeMany(MQTTAsync handle, int count, char* const* topic, int
if (count > 1)
{
sub->command.details.sub.optlist = malloc(sizeof(MQTTSubscribe_options) * count);
for (i = 0; i < count; ++i)
sub->command.details.sub.optlist[i] = response->subscribe_options_list[i];
if (response->subscribe_options_count == 0)
{
MQTTSubscribe_options initialized = MQTTSubscribe_options_initializer;
for (i = 0; i < count; ++i)
sub->command.details.sub.optlist[i] = initialized;
}
else
{
for (i = 0; i < count; ++i)
sub->command.details.sub.optlist[i] = response->subscribe_options_list[i];
}
}
}
}
......
......@@ -672,6 +672,21 @@ ADD_TEST(
COMMAND "test11" "--test_no" "6" "--connection" ${MQTT_TEST_BROKER} "--proxy_connection" ${MQTT_TEST_PROXY}
)
ADD_TEST(
NAME test11-7-request_response
COMMAND "test11" "--test_no" "7" "--connection" ${MQTT_TEST_BROKER} "--proxy_connection" ${MQTT_TEST_PROXY}
)
ADD_TEST(
NAME test11-8-subscribe_options
COMMAND "test11" "--test_no" "8" "--connection" ${MQTT_TEST_BROKER} "--proxy_connection" ${MQTT_TEST_PROXY}
)
ADD_TEST(
NAME test11-9-shared_subscriptions
COMMAND "test11" "--test_no" "9" "--connection" ${MQTT_TEST_BROKER} "--proxy_connection" ${MQTT_TEST_PROXY}
)
SET_TESTS_PROPERTIES(
test11-1-client_topic_aliases
test11-2-server_topic_aliases
......@@ -679,6 +694,9 @@ SET_TESTS_PROPERTIES(
test11-4-flow_control
test11-5-error_handling
test11-6-qos_1_2_errors
test11-7-request_response
test11-8-subscribe_options
test11-9-shared_subscriptions
PROPERTIES TIMEOUT 540
)
......
......@@ -1628,7 +1628,7 @@ struct
} test_shared_subscriptions_globals =
{
"$share/share_test/#",
"#",
"a",
0,
};
......@@ -1756,7 +1756,7 @@ int test_shared_subscriptions(struct Options options)
test_shared_subscriptions_globals.messages_arrived = 0;
for (i = 0; i < 10; ++i)
{
response = MQTTClient_publishMessage5(c, test_subscribe_options_globals.topic, &pubmsg, &dt);
response = MQTTClient_publishMessage5(c, test_shared_subscriptions_globals.topic, &pubmsg, &dt);
assert("Good rc from publish", response.reasonCode == MQTTCLIENT_SUCCESS, "rc was %d", response.reasonCode);
/* should get the request */
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment