aboutsummaryrefslogtreecommitdiff
path: root/src/transport/ws/ws_test.c
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2020-11-21 22:11:21 -0800
committerGarrett D'Amore <garrett@damore.org>2020-11-23 22:20:12 -0800
commitd1218d7309475193b53911667911c4f59a1a7752 (patch)
tree6ea796998fb60d2cb8afa704faa77fe7fddd644c /src/transport/ws/ws_test.c
parentb826bfc171d90f8bde7bd672c0ac14201b8b2742 (diff)
downloadnng-d1218d7309475193b53911667911c4f59a1a7752.tar.gz
nng-d1218d7309475193b53911667911c4f59a1a7752.tar.bz2
nng-d1218d7309475193b53911667911c4f59a1a7752.zip
New NUTS test framework (NNG Unit Test Support).
This is based on testutil/acutest, but is cleaner and fixes some short-comings. We will be adding more support for additional common paradigms to better facilitate transport tests. While here we added some more test cases, and fixed a possible symbol collision in the the stats framework (due to Linux use of a macro definition of "si_value" in a standard OS header). Test coverage may regress slightly as we are no longer using some of the legacy APIs.
Diffstat (limited to 'src/transport/ws/ws_test.c')
-rw-r--r--src/transport/ws/ws_test.c147
1 files changed, 71 insertions, 76 deletions
diff --git a/src/transport/ws/ws_test.c b/src/transport/ws/ws_test.c
index f8f122a1..7cbcd9d7 100644
--- a/src/transport/ws/ws_test.c
+++ b/src/transport/ws/ws_test.c
@@ -8,11 +8,7 @@
// found online at https://opensource.org/licenses/MIT.
//
-#include <testutil.h>
-
-#include <nng/protocol/pair0/pair.h>
-
-#include <acutest.h>
+#include <nuts.h>
static void
test_ws_url_path_filters(void)
@@ -21,19 +17,19 @@ test_ws_url_path_filters(void)
nng_socket s2;
char addr[NNG_MAXADDRLEN];
- TEST_NNG_PASS(nng_pair0_open(&s1));
- TEST_NNG_PASS(nng_pair0_open(&s2));
+ NUTS_OPEN(s1);
+ NUTS_OPEN(s2);
- testutil_scratch_addr("ws", sizeof(addr), addr);
- TEST_NNG_PASS(nng_listen(s1, addr, NULL, 0));
+ nuts_scratch_addr("ws", sizeof(addr), addr);
+ NUTS_PASS(nng_listen(s1, addr, NULL, 0));
// Now try we just remove the last character for now.
// This will make the path different.
addr[strlen(addr) - 1] = '\0';
- TEST_NNG_FAIL(nng_dial(s2, addr, NULL, 0), NNG_ECONNREFUSED);
+ NUTS_FAIL(nng_dial(s2, addr, NULL, 0), NNG_ECONNREFUSED);
- TEST_NNG_PASS(nng_close(s1));
- TEST_NNG_PASS(nng_close(s2));
+ NUTS_CLOSE(s1);
+ NUTS_CLOSE(s2);
}
static void
@@ -53,43 +49,43 @@ test_wild_card_port(void)
int port2;
int port3;
char ws_url[128];
- TEST_NNG_PASS(nng_pair0_open(&s1));
- TEST_NNG_PASS(nng_pair0_open(&s2));
- TEST_NNG_PASS(nng_pair0_open(&s3));
- TEST_NNG_PASS(nng_pair0_open(&s4));
- TEST_NNG_PASS(nng_pair0_open(&s5));
- TEST_NNG_PASS(nng_pair0_open(&s6));
- TEST_NNG_PASS(nng_listen(s1, "ws://127.0.0.1:0/one", &l1, 0));
- TEST_NNG_PASS(
+ NUTS_OPEN(s1);
+ NUTS_OPEN(s2);
+ NUTS_OPEN(s3);
+ NUTS_OPEN(s4);
+ NUTS_OPEN(s5);
+ NUTS_OPEN(s6);
+ NUTS_PASS(nng_listen(s1, "ws://127.0.0.1:0/one", &l1, 0));
+ NUTS_PASS(
nng_listener_get_int(l1, NNG_OPT_TCP_BOUND_PORT, &port1));
- TEST_CHECK(port1 != 0);
+ NUTS_TRUE(port1 != 0);
snprintf(ws_url, sizeof(ws_url), "ws4://127.0.0.1:%d/two", port1);
- TEST_NNG_PASS(nng_listen(s2, ws_url, &l2, 0));
- TEST_NNG_PASS(
+ NUTS_PASS(nng_listen(s2, ws_url, &l2, 0));
+ NUTS_PASS(
nng_listener_get_int(l2, NNG_OPT_TCP_BOUND_PORT, &port2));
- TEST_CHECK(port1 != 0);
- TEST_CHECK(port1 == port2);
+ NUTS_TRUE(port1 != 0);
+ NUTS_TRUE(port1 == port2);
// Now try a different wild card port.
- TEST_NNG_PASS(nng_listen(s3, "ws4://127.0.0.1:0/three", &l3, 0));
- TEST_NNG_PASS(
+ NUTS_PASS(nng_listen(s3, "ws4://127.0.0.1:0/three", &l3, 0));
+ NUTS_PASS(
nng_listener_get_int(l3, NNG_OPT_TCP_BOUND_PORT, &port3));
- TEST_CHECK(port3 != 0);
- TEST_CHECK(port3 != port1);
+ NUTS_TRUE(port3 != 0);
+ NUTS_TRUE(port3 != port1);
// Let's make sure can dial to each.
snprintf(ws_url, sizeof(ws_url), "ws://127.0.0.1:%d/one", port1);
- TEST_NNG_PASS(nng_dial(s4, ws_url, NULL, 0));
+ NUTS_PASS(nng_dial(s4, ws_url, NULL, 0));
snprintf(ws_url, sizeof(ws_url), "ws://127.0.0.1:%d/two", port2);
- TEST_NNG_PASS(nng_dial(s6, ws_url, NULL, 0));
+ NUTS_PASS(nng_dial(s6, ws_url, NULL, 0));
snprintf(ws_url, sizeof(ws_url), "ws://127.0.0.1:%d/three", port3);
- TEST_NNG_PASS(nng_dial(s6, ws_url, NULL, 0));
-
- TEST_NNG_PASS(nng_close(s1));
- TEST_NNG_PASS(nng_close(s2));
- TEST_NNG_PASS(nng_close(s3));
- TEST_NNG_PASS(nng_close(s4));
- TEST_NNG_PASS(nng_close(s5));
- TEST_NNG_PASS(nng_close(s6));
+ NUTS_PASS(nng_dial(s6, ws_url, NULL, 0));
+
+ NUTS_CLOSE(s1);
+ NUTS_CLOSE(s2);
+ NUTS_CLOSE(s3);
+ NUTS_CLOSE(s4);
+ NUTS_CLOSE(s5);
+ NUTS_CLOSE(s6);
}
static void
@@ -100,21 +96,21 @@ test_wild_card_host(void)
char addr[NNG_MAXADDRLEN];
uint16_t port;
- TEST_NNG_PASS(nng_pair0_open(&s1));
- TEST_NNG_PASS(nng_pair0_open(&s2));
+ NUTS_OPEN(s1);
+ NUTS_OPEN(s2);
- port = testutil_next_port();
+ port = nuts_next_port();
// we use ws4 to ensure 127.0.0.1 binding
snprintf(addr, sizeof(addr), "ws4://*:%u/test", port);
- TEST_NNG_PASS(nng_listen(s1, addr, NULL, 0));
+ NUTS_PASS(nng_listen(s1, addr, NULL, 0));
nng_msleep(100);
snprintf(addr, sizeof(addr), "ws://127.0.0.1:%u/test", port);
- TEST_NNG_PASS(nng_dial(s2, addr, NULL, 0));
+ NUTS_PASS(nng_dial(s2, addr, NULL, 0));
- TEST_NNG_PASS(nng_close(s1));
- TEST_NNG_PASS(nng_close(s2));
+ NUTS_CLOSE(s1);
+ NUTS_CLOSE(s2);
}
static void
@@ -125,21 +121,21 @@ test_empty_host(void)
char addr[NNG_MAXADDRLEN];
uint16_t port;
- TEST_NNG_PASS(nng_pair0_open(&s1));
- TEST_NNG_PASS(nng_pair0_open(&s2));
+ NUTS_OPEN(s1);
+ NUTS_OPEN(s2);
- port = testutil_next_port();
+ port = nuts_next_port();
// we use ws4 to ensure 127.0.0.1 binding
snprintf(addr, sizeof(addr), "ws4://:%u/test", port);
- TEST_NNG_PASS(nng_listen(s1, addr, NULL, 0));
+ NUTS_PASS(nng_listen(s1, addr, NULL, 0));
nng_msleep(100);
snprintf(addr, sizeof(addr), "ws://127.0.0.1:%u/test", port);
- TEST_NNG_PASS(nng_dial(s2, addr, NULL, 0));
+ NUTS_PASS(nng_dial(s2, addr, NULL, 0));
- TEST_NNG_PASS(nng_close(s1));
- TEST_NNG_PASS(nng_close(s2));
+ NUTS_CLOSE(s1);
+ NUTS_CLOSE(s2);
}
void
@@ -151,29 +147,28 @@ test_ws_recv_max(void)
nng_socket s1;
nng_listener l;
size_t sz;
- char addr[64];
-
- testutil_scratch_addr("ws", sizeof(addr), addr);
-
- TEST_NNG_PASS(nng_pair0_open(&s0));
- TEST_NNG_PASS(nng_socket_set_ms(s0, NNG_OPT_RECVTIMEO, 100));
- TEST_NNG_PASS(nng_socket_set_size(s0, NNG_OPT_RECVMAXSZ, 200));
- TEST_NNG_PASS(nng_listener_create(&l, s0, addr));
- TEST_NNG_PASS(nng_socket_get_size(s0, NNG_OPT_RECVMAXSZ, &sz));
- TEST_CHECK(sz == 200);
- TEST_NNG_PASS(nng_listener_set_size(l, NNG_OPT_RECVMAXSZ, 100));
- TEST_NNG_PASS(nng_listener_start(l, 0));
-
- TEST_NNG_PASS(nng_pair0_open(&s1));
- TEST_NNG_PASS(nng_dial(s1, addr, NULL, 0));
- TEST_NNG_PASS(nng_send(s1, msg, 95, 0));
- TEST_NNG_PASS(nng_socket_set_ms(s1, NNG_OPT_SENDTIMEO, 100));
- TEST_NNG_PASS(nng_recv(s0, buf, &sz, 0));
- TEST_CHECK(sz == 95);
- TEST_NNG_PASS(nng_send(s1, msg, 150, 0));
- TEST_NNG_FAIL(nng_recv(s0, buf, &sz, 0), NNG_ETIMEDOUT);
- TEST_NNG_PASS(nng_close(s0));
- TEST_NNG_PASS(nng_close(s1));
+ char *addr;
+
+ NUTS_ADDR(addr, "ws");
+ NUTS_OPEN(s0);
+ NUTS_PASS(nng_socket_set_ms(s0, NNG_OPT_RECVTIMEO, 100));
+ NUTS_PASS(nng_socket_set_size(s0, NNG_OPT_RECVMAXSZ, 200));
+ NUTS_PASS(nng_listener_create(&l, s0, addr));
+ NUTS_PASS(nng_socket_get_size(s0, NNG_OPT_RECVMAXSZ, &sz));
+ NUTS_TRUE(sz == 200);
+ NUTS_PASS(nng_listener_set_size(l, NNG_OPT_RECVMAXSZ, 100));
+ NUTS_PASS(nng_listener_start(l, 0));
+
+ NUTS_OPEN(s1);
+ NUTS_PASS(nng_dial(s1, addr, NULL, 0));
+ NUTS_PASS(nng_send(s1, msg, 95, 0));
+ NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_SENDTIMEO, 100));
+ NUTS_PASS(nng_recv(s0, buf, &sz, 0));
+ NUTS_TRUE(sz == 95);
+ NUTS_PASS(nng_send(s1, msg, 150, 0));
+ NUTS_FAIL(nng_recv(s0, buf, &sz, 0), NNG_ETIMEDOUT);
+ NUTS_CLOSE(s0);
+ NUTS_CLOSE(s1);
}
TEST_LIST = {