aboutsummaryrefslogtreecommitdiff
path: root/test/interop/retained_message_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/interop/retained_message_test.c')
-rw-r--r--test/interop/retained_message_test.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/test/interop/retained_message_test.c b/test/interop/retained_message_test.c
new file mode 100644
index 0000000..f710c60
--- /dev/null
+++ b/test/interop/retained_message_test.c
@@ -0,0 +1,45 @@
+#include "greatest.h"
+#include "testclient.h"
+#include "cleanup.c"
+#include "topics.c"
+
+TEST retained_message_test()
+{
+ TestClient *client;
+
+ client = TestClientNew("retained_message_test");
+ ASSERT(TestClientConnect(client, "localhost", 1883, 60, 1));
+ ASSERT(TestClientPublish(client, 0, 1, topics[1], "qos0"));
+ ASSERT(TestClientPublish(client, 1, 1, topics[2], "qos1"));
+ ASSERT(TestClientPublish(client, 2, 1, topics[3], "qos2"));
+ ASSERT(TestClientWait(client, 1000));
+ ASSERT(TestClientSubscribe(client, wildtopics[5], 2));
+ ASSERT(TestClientWait(client, 1000));
+ ASSERT_EQ(3, TestClientMessageCount(client));
+ TestClientDisconnect(client);
+ TestClientFree(client);
+
+ client = TestClientNew("retained_message_test");
+ ASSERT(TestClientConnect(client, "localhost", 1883, 60, 1));
+ ASSERT(TestClientPublish(client, 0, 1, topics[1], ""));
+ ASSERT(TestClientPublish(client, 1, 1, topics[2], ""));
+ ASSERT(TestClientPublish(client, 2, 1, topics[3], ""));
+ ASSERT(TestClientWait(client, 1000));
+ ASSERT(TestClientSubscribe(client, wildtopics[5], 2));
+ ASSERT(TestClientWait(client, 1000));
+ ASSERT_EQ(0, TestClientMessageCount(client));
+ TestClientDisconnect(client);
+ TestClientFree(client);
+
+ PASS();
+}
+
+GREATEST_MAIN_DEFS();
+
+int main(int argc, char **argv)
+{
+ GREATEST_MAIN_BEGIN();
+ cleanup();
+ RUN_TEST(retained_message_test);
+ GREATEST_MAIN_END();
+}