diff options
Diffstat (limited to 'test/interop/retained_message_test.c')
| -rw-r--r-- | test/interop/retained_message_test.c | 45 |
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(); +} |
