diff options
Diffstat (limited to 'src/transport/tcp/tcp_test.c')
| -rw-r--r-- | src/transport/tcp/tcp_test.c | 255 |
1 files changed, 124 insertions, 131 deletions
diff --git a/src/transport/tcp/tcp_test.c b/src/transport/tcp/tcp_test.c index 88b77ab4..d23227d7 100644 --- a/src/transport/tcp/tcp_test.c +++ b/src/transport/tcp/tcp_test.c @@ -10,12 +10,8 @@ // found online at https://opensource.org/licenses/MIT. // -#include <nng/nng.h> -#include <nng/protocol/pair0/pair.h> -#include <nng/supplemental/util/platform.h> -#include <acutest.h> -#include <testutil.h> +#include <nuts.h> // TCP tests. @@ -25,11 +21,10 @@ test_tcp_wild_card_connect_fail(void) nng_socket s; char addr[NNG_MAXADDRLEN]; - TEST_NNG_PASS(nng_pair0_open(&s)); - (void) snprintf( - addr, sizeof(addr), "tcp://*:%u", testutil_next_port()); - TEST_NNG_FAIL(nng_dial(s, addr, NULL, 0), NNG_EADDRINVAL); - TEST_NNG_PASS(nng_close(s)); + NUTS_OPEN(s); + (void) snprintf(addr, sizeof(addr), "tcp://*:%u", nuts_next_port()); + NUTS_FAIL(nng_dial(s, addr, NULL, 0), NNG_EADDRINVAL); + NUTS_CLOSE(s); } void @@ -40,17 +35,16 @@ test_tcp_wild_card_bind(void) char addr[NNG_MAXADDRLEN]; uint16_t port; - port = testutil_next_port(); + port = nuts_next_port(); - TEST_NNG_PASS(nng_pair0_open(&s1)); - TEST_NNG_PASS(nng_pair0_open(&s2)); + NUTS_OPEN(s1); + NUTS_OPEN(s2); (void) snprintf(addr, sizeof(addr), "tcp4://*:%u", port); - TEST_NNG_PASS(nng_listen(s1, addr, NULL, 0)); - // reset port back one + NUTS_PASS(nng_listen(s1, addr, NULL, 0)); (void) snprintf(addr, sizeof(addr), "tcp://127.0.0.1:%u", port); - TEST_NNG_PASS(nng_dial(s2, addr, NULL, 0)); - TEST_NNG_PASS(nng_close(s2)); - TEST_NNG_PASS(nng_close(s1)); + NUTS_PASS(nng_dial(s2, addr, NULL, 0)); + NUTS_CLOSE(s2); + NUTS_CLOSE(s1); } void @@ -62,17 +56,16 @@ test_tcp_local_address_connect(void) char addr[NNG_MAXADDRLEN]; uint16_t port; - TEST_NNG_PASS(nng_pair0_open(&s1)); - TEST_NNG_PASS(nng_pair0_open(&s2)); - port = testutil_next_port(); + NUTS_OPEN(s1); + NUTS_OPEN(s2); + port = nuts_next_port(); (void) snprintf(addr, sizeof(addr), "tcp://127.0.0.1:%u", port); - TEST_NNG_PASS(nng_listen(s1, addr, NULL, 0)); - // reset port back one + NUTS_PASS(nng_listen(s1, addr, NULL, 0)); (void) snprintf( addr, sizeof(addr), "tcp://127.0.0.1;127.0.0.1:%u", port); - TEST_NNG_PASS(nng_dial(s2, addr, NULL, 0)); - TEST_NNG_PASS(nng_close(s2)); - TEST_NNG_PASS(nng_close(s1)); + NUTS_PASS(nng_dial(s2, addr, NULL, 0)); + NUTS_CLOSE(s2); + NUTS_CLOSE(s1); } void @@ -84,19 +77,19 @@ test_tcp_port_zero_bind(void) nng_listener l; char * addr; - TEST_NNG_PASS(nng_pair0_open(&s1)); - TEST_NNG_PASS(nng_pair_open(&s2)); - TEST_NNG_PASS(nng_listen(s1, "tcp://127.0.0.1:0", &l, 0)); - TEST_NNG_PASS(nng_listener_get_string(l, NNG_OPT_URL, &addr)); - TEST_CHECK(memcmp(addr, "tcp://", 6) == 0); - TEST_NNG_PASS(nng_listener_get_addr(l, NNG_OPT_LOCADDR, &sa)); - TEST_CHECK(sa.s_in.sa_family == NNG_AF_INET); - TEST_CHECK(sa.s_in.sa_port != 0); - TEST_CHECK(sa.s_in.sa_addr = testutil_htonl(0x7f000001)); - TEST_NNG_PASS(nng_dial(s2, addr, NULL, 0)); + NUTS_OPEN(s1); + NUTS_OPEN(s2); + NUTS_PASS(nng_listen(s1, "tcp://127.0.0.1:0", &l, 0)); + NUTS_PASS(nng_listener_get_string(l, NNG_OPT_URL, &addr)); + NUTS_TRUE(memcmp(addr, "tcp://", 6) == 0); + NUTS_PASS(nng_listener_get_addr(l, NNG_OPT_LOCADDR, &sa)); + NUTS_TRUE(sa.s_in.sa_family == NNG_AF_INET); + NUTS_TRUE(sa.s_in.sa_port != 0); + NUTS_TRUE(sa.s_in.sa_addr = nuts_be32(0x7f000001)); + NUTS_PASS(nng_dial(s2, addr, NULL, 0)); nng_strfree(addr); - TEST_NNG_PASS(nng_close(s2)); - TEST_NNG_PASS(nng_close(s1)); + NUTS_CLOSE(s2); + NUTS_CLOSE(s1); } void @@ -104,10 +97,10 @@ test_tcp_bad_local_interface(void) { nng_socket s1; - TEST_NNG_PASS(nng_pair0_open(&s1)); - TEST_NNG_FAIL(nng_dial(s1, "tcp://bogus1;127.0.0.1:80", NULL, 0), + NUTS_OPEN(s1); + NUTS_FAIL(nng_dial(s1, "tcp://bogus1;127.0.0.1:80", NULL, 0), NNG_EADDRINVAL); - TEST_NNG_PASS(nng_close(s1)); + NUTS_CLOSE(s1); } void @@ -115,10 +108,10 @@ test_tcp_non_local_address(void) { nng_socket s1; - TEST_NNG_PASS(nng_pair0_open(&s1)); - TEST_NNG_FAIL(nng_dial(s1, "tcp://8.8.8.8;127.0.0.1:80", NULL, 0), + NUTS_OPEN(s1); + NUTS_FAIL(nng_dial(s1, "tcp://8.8.8.8;127.0.0.1:80", NULL, 0), NNG_EADDRINVAL); - TEST_NNG_PASS(nng_close(s1)); + NUTS_CLOSE(s1); } void @@ -126,18 +119,18 @@ test_tcp_malformed_address(void) { nng_socket s1; - TEST_NNG_PASS(nng_pair0_open(&s1)); - TEST_NNG_FAIL( + NUTS_OPEN(s1); + NUTS_FAIL( nng_dial(s1, "tcp://127.0.0.1", NULL, 0), NNG_EADDRINVAL); - TEST_NNG_FAIL( + NUTS_FAIL( nng_dial(s1, "tcp://127.0.0.1.32", NULL, 0), NNG_EADDRINVAL); - TEST_NNG_FAIL( + NUTS_FAIL( nng_dial(s1, "tcp://127.0.x.1.32", NULL, 0), NNG_EADDRINVAL); - TEST_NNG_FAIL( + NUTS_FAIL( nng_listen(s1, "tcp://127.0.0.1.32", NULL, 0), NNG_EADDRINVAL); - TEST_NNG_FAIL( + NUTS_FAIL( nng_listen(s1, "tcp://127.0.x.1.32", NULL, 0), NNG_EADDRINVAL); - TEST_NNG_PASS(nng_close(s1)); + NUTS_CLOSE(s1); } void @@ -148,58 +141,58 @@ test_tcp_no_delay_option(void) nng_listener l; bool v; int x; - char addr[64]; + char *addr; - testutil_scratch_addr("tcp", sizeof(addr), addr); + NUTS_ADDR(addr, "tcp"); - TEST_NNG_PASS(nng_pair0_open(&s)); + NUTS_OPEN(s); #ifndef NNG_ELIDE_DEPRECATED - TEST_NNG_PASS(nng_socket_get_bool(s, NNG_OPT_TCP_NODELAY, &v)); - TEST_CHECK(v == true); + NUTS_PASS(nng_socket_get_bool(s, NNG_OPT_TCP_NODELAY, &v)); + NUTS_TRUE(v); #endif - TEST_NNG_PASS(nng_dialer_create(&d, s, addr)); - TEST_NNG_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_NODELAY, &v)); - TEST_CHECK(v == true); - TEST_NNG_PASS(nng_dialer_set_bool(d, NNG_OPT_TCP_NODELAY, false)); - TEST_NNG_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_NODELAY, &v)); - TEST_CHECK(v == false); - TEST_NNG_FAIL( + NUTS_PASS(nng_dialer_create(&d, s, addr)); + NUTS_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_NODELAY, &v)); + NUTS_TRUE(v); + NUTS_PASS(nng_dialer_set_bool(d, NNG_OPT_TCP_NODELAY, false)); + NUTS_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_NODELAY, &v)); + NUTS_TRUE(v == false); + NUTS_FAIL( nng_dialer_get_int(d, NNG_OPT_TCP_NODELAY, &x), NNG_EBADTYPE); x = 0; - TEST_NNG_FAIL( + NUTS_FAIL( nng_dialer_set_int(d, NNG_OPT_TCP_NODELAY, x), NNG_EBADTYPE); // This assumes sizeof (bool) != sizeof (int) if (sizeof(bool) != sizeof(int)) { - TEST_NNG_FAIL( + NUTS_FAIL( nng_dialer_set(d, NNG_OPT_TCP_NODELAY, &x, sizeof(x)), NNG_EINVAL); } - TEST_NNG_PASS(nng_listener_create(&l, s, addr)); - TEST_NNG_PASS(nng_listener_get_bool(l, NNG_OPT_TCP_NODELAY, &v)); - TEST_CHECK(v == true); + NUTS_PASS(nng_listener_create(&l, s, addr)); + NUTS_PASS(nng_listener_get_bool(l, NNG_OPT_TCP_NODELAY, &v)); + NUTS_TRUE(v == true); x = 0; - TEST_NNG_FAIL( + NUTS_FAIL( nng_listener_set_int(l, NNG_OPT_TCP_NODELAY, x), NNG_EBADTYPE); // This assumes sizeof (bool) != sizeof (int) - TEST_NNG_FAIL(nng_listener_set(l, NNG_OPT_TCP_NODELAY, &x, sizeof(x)), + NUTS_FAIL(nng_listener_set(l, NNG_OPT_TCP_NODELAY, &x, sizeof(x)), NNG_EINVAL); - TEST_NNG_PASS(nng_dialer_close(d)); - TEST_NNG_PASS(nng_listener_close(l)); + NUTS_PASS(nng_dialer_close(d)); + NUTS_PASS(nng_listener_close(l)); // Make sure socket wide defaults apply. #ifndef NNG_ELIDE_DEPRECATED - TEST_NNG_PASS(nng_socket_set_bool(s, NNG_OPT_TCP_NODELAY, true)); + NUTS_PASS(nng_socket_set_bool(s, NNG_OPT_TCP_NODELAY, true)); v = false; - TEST_NNG_PASS(nng_socket_get_bool(s, NNG_OPT_TCP_NODELAY, &v)); - TEST_CHECK(v == true); - TEST_NNG_PASS(nng_socket_set_bool(s, NNG_OPT_TCP_NODELAY, false)); - TEST_NNG_PASS(nng_dialer_create(&d, s, addr)); - TEST_NNG_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_NODELAY, &v)); - TEST_CHECK(v == false); + NUTS_PASS(nng_socket_get_bool(s, NNG_OPT_TCP_NODELAY, &v)); + NUTS_TRUE(v); + NUTS_PASS(nng_socket_set_bool(s, NNG_OPT_TCP_NODELAY, false)); + NUTS_PASS(nng_dialer_create(&d, s, addr)); + NUTS_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_NODELAY, &v)); + NUTS_TRUE(v == false); #endif - TEST_NNG_PASS(nng_close(s)); + NUTS_CLOSE(s); } void @@ -210,48 +203,48 @@ test_tcp_keep_alive_option(void) nng_listener l; bool v; int x; - char addr[64]; + char *addr; - testutil_scratch_addr("tcp", sizeof(addr), addr); - TEST_NNG_PASS(nng_pair0_open(&s)); + NUTS_ADDR(addr, "tcp"); + NUTS_OPEN(s); #ifndef NNG_ELIDE_DEPRECATED - TEST_NNG_PASS(nng_socket_get_bool(s, NNG_OPT_TCP_KEEPALIVE, &v)); - TEST_CHECK(v == false); + NUTS_PASS(nng_socket_get_bool(s, NNG_OPT_TCP_KEEPALIVE, &v)); + NUTS_TRUE(v == false); #endif - TEST_NNG_PASS(nng_dialer_create(&d, s, addr)); - TEST_NNG_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_KEEPALIVE, &v)); - TEST_CHECK(v == false); - TEST_NNG_PASS(nng_dialer_set_bool(d, NNG_OPT_TCP_KEEPALIVE, true)); - TEST_NNG_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_KEEPALIVE, &v)); - TEST_CHECK(v == true); - TEST_NNG_FAIL( + NUTS_PASS(nng_dialer_create(&d, s, addr)); + NUTS_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_KEEPALIVE, &v)); + NUTS_TRUE(v == false); + NUTS_PASS(nng_dialer_set_bool(d, NNG_OPT_TCP_KEEPALIVE, true)); + NUTS_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_KEEPALIVE, &v)); + NUTS_TRUE(v); + NUTS_FAIL( nng_dialer_get_int(d, NNG_OPT_TCP_KEEPALIVE, &x), NNG_EBADTYPE); x = 1; - TEST_NNG_FAIL( + NUTS_FAIL( nng_dialer_set_int(d, NNG_OPT_TCP_KEEPALIVE, x), NNG_EBADTYPE); - TEST_NNG_PASS(nng_listener_create(&l, s, addr)); - TEST_NNG_PASS(nng_listener_get_bool(l, NNG_OPT_TCP_KEEPALIVE, &v)); - TEST_CHECK(v == false); + NUTS_PASS(nng_listener_create(&l, s, addr)); + NUTS_PASS(nng_listener_get_bool(l, NNG_OPT_TCP_KEEPALIVE, &v)); + NUTS_TRUE(v == false); x = 1; - TEST_NNG_FAIL( + NUTS_FAIL( nng_listener_set_int(l, NNG_OPT_TCP_KEEPALIVE, x), NNG_EBADTYPE); - TEST_NNG_PASS(nng_dialer_close(d)); - TEST_NNG_PASS(nng_listener_close(l)); + NUTS_PASS(nng_dialer_close(d)); + NUTS_PASS(nng_listener_close(l)); // Make sure socket wide defaults apply. #ifndef NNG_ELIDE_DEPRECATED - TEST_NNG_PASS(nng_socket_set_bool(s, NNG_OPT_TCP_KEEPALIVE, false)); + NUTS_PASS(nng_socket_set_bool(s, NNG_OPT_TCP_KEEPALIVE, false)); v = true; - TEST_NNG_PASS(nng_socket_get_bool(s, NNG_OPT_TCP_KEEPALIVE, &v)); - TEST_CHECK(v == false); - TEST_NNG_PASS(nng_socket_set_bool(s, NNG_OPT_TCP_KEEPALIVE, true)); - TEST_NNG_PASS(nng_dialer_create(&d, s, addr)); - TEST_NNG_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_KEEPALIVE, &v)); - TEST_CHECK(v == true); + NUTS_PASS(nng_socket_get_bool(s, NNG_OPT_TCP_KEEPALIVE, &v)); + NUTS_TRUE(v == false); + NUTS_PASS(nng_socket_set_bool(s, NNG_OPT_TCP_KEEPALIVE, true)); + NUTS_PASS(nng_dialer_create(&d, s, addr)); + NUTS_PASS(nng_dialer_get_bool(d, NNG_OPT_TCP_KEEPALIVE, &v)); + NUTS_TRUE(v); #endif - TEST_NNG_PASS(nng_close(s)); + NUTS_CLOSE(s); } void @@ -263,32 +256,32 @@ test_tcp_recv_max(void) nng_socket s1; nng_listener l; size_t sz; - char addr[64]; - - testutil_scratch_addr("tcp", 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, "tcp"); + + 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_PASS(nng_close(s0)); + NUTS_CLOSE(s1); } -TEST_LIST = { +NUTS_TESTS = { { "tcp wild card connect fail", test_tcp_wild_card_connect_fail }, { "tcp wild card bind", test_tcp_wild_card_bind }, |
