diff options
| author | Oskari Timperi <oskari.timperi@iki.fi> | 2017-02-19 16:03:56 +0200 |
|---|---|---|
| committer | Oskari Timperi <oskari.timperi@iki.fi> | 2017-02-19 16:03:56 +0200 |
| commit | 8198f6d6beb3c8af3768236070089112c094b92e (patch) | |
| tree | 7dcddfde2133850077ec8dc34bc9264fcb4e469a /test | |
| parent | e6e625ed6c1300e382a36b9ebef48336a55550e9 (diff) | |
| download | mqtt-8198f6d6beb3c8af3768236070089112c094b92e.tar.gz mqtt-8198f6d6beb3c8af3768236070089112c094b92e.zip | |
Add MqttClientSubscribeMany() and make necessary API changes
Diffstat (limited to 'test')
| -rw-r--r-- | test/interop/overlapping_subscriptions_test.c | 5 | ||||
| -rw-r--r-- | test/interop/subscribe_failure_test.c | 2 | ||||
| -rw-r--r-- | test/interop/testclient.c | 41 | ||||
| -rw-r--r-- | test/interop/testclient.h | 6 |
4 files changed, 48 insertions, 6 deletions
diff --git a/test/interop/overlapping_subscriptions_test.c b/test/interop/overlapping_subscriptions_test.c index c6e5da0..ec6f061 100644 --- a/test/interop/overlapping_subscriptions_test.c +++ b/test/interop/overlapping_subscriptions_test.c @@ -7,11 +7,12 @@ TEST overlapping_subscriptions_test() { TestClient *client; int count; + const char *mywildtopics[] = { wildtopics[6], wildtopics[0] }; + int qos[] = { 2, 1 }; client = TestClientNew("clienta"); ASSERT(TestClientConnect(client, "localhost", 1883, 60, 1)); - ASSERT(TestClientSubscribe(client, wildtopics[6], 2)); - ASSERT(TestClientSubscribe(client, wildtopics[0], 1)); + ASSERT(TestClientSubscribeMany(client, mywildtopics, qos, 2)); ASSERT(TestClientPublish(client, 2, 0, topics[3], "overlapping topic filters")); ASSERT(TestClientWait(client, 1000)); diff --git a/test/interop/subscribe_failure_test.c b/test/interop/subscribe_failure_test.c index 84d3ebc..07a0d1b 100644 --- a/test/interop/subscribe_failure_test.c +++ b/test/interop/subscribe_failure_test.c @@ -10,7 +10,7 @@ TEST subscribe_failure_test() client = TestClientNew("clienta"); ASSERT(TestClientConnect(client, "localhost", 1883, 60, 1)); ASSERT_FALSE(TestClientSubscribe(client, nosubscribe_topics[0], 2)); - ASSERT_EQ(MqttSubscriptionFailure, client->subStatus); + ASSERT_EQ(MqttSubscriptionFailure, client->subStatus[0]); TestClientDisconnect(client); TestClientFree(client); diff --git a/test/interop/testclient.c b/test/interop/testclient.c index c27945d..8d616f6 100644 --- a/test/interop/testclient.c +++ b/test/interop/testclient.c @@ -14,11 +14,12 @@ static void TestClientOnConnect(MqttClient *client, } static void TestClientOnSubscribe(MqttClient *client, int id, + const char *filter, MqttSubscriptionStatus status) { TestClient *testClient = (TestClient *) MqttClientGetUserData(client); testClient->subId = id; - testClient->subStatus = status; + testClient->subStatus[testClient->subCount++] = status; } static void TestClientOnPublish(MqttClient *client, int id) @@ -132,6 +133,7 @@ int TestClientSubscribe(TestClient *client, const char *topicFilter, int qos) int id = MqttClientSubscribe(client->client, topicFilter, qos); client->subId = -1; + client->subCount = 0; while (MqttClientRunOnce(client->client, -1) != -1) { @@ -147,7 +149,42 @@ int TestClientSubscribe(TestClient *client, const char *topicFilter, int qos) } } - return client->subStatus != MqttSubscriptionFailure; + return client->subStatus[0] != MqttSubscriptionFailure; +} + +int TestClientSubscribeMany(TestClient *client, const char **topicFilter, + int *qos, size_t count) +{ + int id = MqttClientSubscribeMany(client->client, topicFilter, qos, count); + int fail = 0, i; + + client->subId = -1; + client->subCount = 0; + + while (MqttClientRunOnce(client->client, -1) != -1) + { + if (client->subId != -1) + { + if (client->subId != id) + { + printf( + "WARNING: subscription id mismatch: expected %d, got %d\n", + id, client->subId); + } + break; + } + } + + for (i = 0; i < client->subCount; ++i) + { + if (client->subStatus[i] == MqttSubscriptionFailure) + { + fail = 1; + break; + } + } + + return !fail; } int TestClientPublish(TestClient *client, int qos, int retain, diff --git a/test/interop/testclient.h b/test/interop/testclient.h index 70805c6..2aa229b 100644 --- a/test/interop/testclient.h +++ b/test/interop/testclient.h @@ -29,7 +29,8 @@ struct TestClient /* OnSubscribe */ int subId; - MqttSubscriptionStatus subStatus; + MqttSubscriptionStatus subStatus[16]; + int subCount; /* OnPublish */ int pubId; @@ -54,6 +55,9 @@ void TestClientDisconnect(TestClient *client); int TestClientSubscribe(TestClient *client, const char *topicFilter, int qos); +int TestClientSubscribeMany(TestClient *client, const char **topicFilter, + int *qos, size_t count); + int TestClientPublish(TestClient *client, int qos, int retain, const char *topic, const char *message); |
