aboutsummaryrefslogtreecommitdiff
path: root/test/interop/cleanup.c
blob: 30e4684c458fdd691b07465580ac59ca4eac2a0e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
static void cleanup()
{
    TestClient *client;
    Message *msg;

    /* Clean client state */

    client = TestClientNew("clienta");
    TestClientConnect(client, "localhost", 1883, 60, 1);
    TestClientWait(client, 100);
    TestClientDisconnect(client);
    TestClientFree(client);

    client = TestClientNew("clientb");
    TestClientConnect(client, "localhost", 1883, 60, 1);
    TestClientWait(client, 100);
    TestClientDisconnect(client);
    TestClientFree(client);

    /* Clean retained messages */

    client = TestClientNew("clean-retained");
    TestClientConnect(client, "localhost", 1883, 60, 1);
    TestClientSubscribe(client, "#", 0);
    TestClientWait(client, 2000);

    SIMPLEQ_FOREACH(msg, &client->messages, chain)
    {
        if (msg->retain)
        {
            printf("deleting retained message for topic %s\n", msg->topic);
            TestClientPublish(client, 0, 1, msg->topic, "");
        }
    }

    TestClientDisconnect(client);

    TestClientFree(client);
}