Skip to content

Commit f6ae0dc

Browse files
committed
we need to wait for unsubscribe to finish before sending a second publish
1 parent 7ab2746 commit f6ae0dc

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

tests/Mqtt5ClientTest.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1919,12 +1919,16 @@ static int s_TestMqtt5SubUnsub(Aws::Crt::Allocator *allocator, void *)
19191919
aws_thread_current_sleep(2000 * 1000 * 1000);
19201920

19211921
/* Unsubscribe to test topic */
1922+
std::promise<void> unsuback;
1923+
auto onUnsubAck = [&](int, std::shared_ptr<Mqtt5::UnsubAckPacket>) { unsuback.set_value(); };
1924+
19221925
Vector<String> topics;
19231926
topics.push_back(TEST_TOPIC);
19241927
std::shared_ptr<Mqtt5::UnsubscribePacket> unsub =
19251928
Aws::Crt::MakeShared<Mqtt5::UnsubscribePacket>(allocator, allocator);
19261929
unsub->WithTopicFilters(topics);
1927-
ASSERT_TRUE(mqtt5Client->Unsubscribe(unsub));
1930+
ASSERT_TRUE(mqtt5Client->Unsubscribe(unsub, onUnsubAck));
1931+
unsuback.get_future().wait();
19281932

19291933
/* Publish message2 to test topic */
19301934
ASSERT_TRUE(mqtt5Client->Publish(publish));

0 commit comments

Comments
 (0)