diff options
| author | Garrett D'Amore <garrett@damore.org> | 2020-11-21 22:11:21 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2020-11-23 22:20:12 -0800 |
| commit | d1218d7309475193b53911667911c4f59a1a7752 (patch) | |
| tree | 6ea796998fb60d2cb8afa704faa77fe7fddd644c /src/core/sock_test.c | |
| parent | b826bfc171d90f8bde7bd672c0ac14201b8b2742 (diff) | |
| download | nng-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/core/sock_test.c')
| -rw-r--r-- | src/core/sock_test.c | 520 |
1 files changed, 247 insertions, 273 deletions
diff --git a/src/core/sock_test.c b/src/core/sock_test.c index ab557632..9edfbf53 100644 --- a/src/core/sock_test.c +++ b/src/core/sock_test.c @@ -8,14 +8,7 @@ // found online at https://opensource.org/licenses/MIT. // -#include <string.h> - -#include <nng/nng.h> -#include <nng/protocol/pair1/pair.h> -#include <nng/supplemental/util/platform.h> - -#include "acutest.h" -#include "testutil.h" +#include <nuts.h> void test_recv_timeout(void) @@ -24,14 +17,14 @@ test_recv_timeout(void) uint64_t now; nng_msg * msg = NULL; - TEST_NNG_PASS(nng_pair_open(&s1)); - TEST_NNG_PASS(nng_socket_set_ms(s1, NNG_OPT_RECVTIMEO, 10)); - now = testutil_clock(); - TEST_NNG_FAIL(nng_recvmsg(s1, &msg, 0), NNG_ETIMEDOUT); - TEST_CHECK(msg == NULL); - TEST_CHECK(testutil_clock() >= (now + 9)); - TEST_CHECK(testutil_clock() < (now + 500)); - TEST_NNG_PASS(nng_close(s1)); + NUTS_OPEN(s1); + NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_RECVTIMEO, 10)); + NUTS_CLOCK(now); + NUTS_FAIL(nng_recvmsg(s1, &msg, 0), NNG_ETIMEDOUT); + NUTS_TRUE(msg == NULL); + NUTS_BEFORE(now + 500); + NUTS_AFTER(now + 9); + NUTS_CLOSE(s1); } void @@ -41,13 +34,13 @@ test_recv_nonblock(void) uint64_t now; nng_msg * msg = NULL; - TEST_NNG_PASS(nng_pair1_open(&s1)); - TEST_NNG_PASS(nng_socket_set_ms(s1, NNG_OPT_RECVTIMEO, 10)); - now = testutil_clock(); - TEST_NNG_FAIL(nng_recvmsg(s1, &msg, NNG_FLAG_NONBLOCK), NNG_EAGAIN); - TEST_CHECK(msg == NULL); - TEST_CHECK(testutil_clock() < (now + 500)); - TEST_NNG_PASS(nng_close(s1)); + NUTS_OPEN(s1); + NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_RECVTIMEO, 10)); + NUTS_CLOCK(now); + NUTS_FAIL(nng_recvmsg(s1, &msg, NNG_FLAG_NONBLOCK), NNG_EAGAIN); + NUTS_TRUE(msg == NULL); + NUTS_BEFORE(now + 500); + NUTS_CLOSE(s1); } void @@ -57,15 +50,15 @@ test_send_timeout(void) uint64_t now; nng_msg * msg; - TEST_NNG_PASS(nng_msg_alloc(&msg, 0)); - TEST_NNG_PASS(nng_pair_open(&s1)); - TEST_NNG_PASS(nng_socket_set_ms(s1, NNG_OPT_SENDTIMEO, 100)); - now = testutil_clock(); - TEST_NNG_FAIL(nng_sendmsg(s1, msg, 0), NNG_ETIMEDOUT); - TEST_CHECK(testutil_clock() >= (now + 9)); - TEST_CHECK(testutil_clock() < (now + 500)); + NUTS_OPEN(s1); + NUTS_PASS(nng_msg_alloc(&msg, 0)); + NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_SENDTIMEO, 100)); + NUTS_CLOCK(now); + NUTS_FAIL(nng_sendmsg(s1, msg, 0), NNG_ETIMEDOUT); + NUTS_BEFORE(now + 500); + NUTS_AFTER(now + 9); nng_msg_free(msg); - TEST_NNG_PASS(nng_close(s1)); + NUTS_CLOSE(s1); } void @@ -75,26 +68,24 @@ test_send_nonblock(void) uint64_t now; nng_msg * msg; - TEST_NNG_PASS(nng_msg_alloc(&msg, 0)); - TEST_NNG_PASS(nng_pair1_open(&s1)); - TEST_NNG_PASS(nng_socket_set_ms(s1, NNG_OPT_SENDTIMEO, 500)); - now = testutil_clock(); - TEST_NNG_FAIL(nng_sendmsg(s1, msg, NNG_FLAG_NONBLOCK), NNG_EAGAIN); - TEST_CHECK(testutil_clock() < (now + 100)); - TEST_NNG_PASS(nng_close(s1)); + NUTS_OPEN(s1); + NUTS_PASS(nng_msg_alloc(&msg, 0)); + NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_SENDTIMEO, 500)); + NUTS_CLOCK(now); + NUTS_FAIL(nng_sendmsg(s1, msg, NNG_FLAG_NONBLOCK), NNG_EAGAIN); + NUTS_BEFORE(now + 100); nng_msg_free(msg); + NUTS_CLOSE(s1); } void test_readonly_options(void) { nng_socket s1; - TEST_NNG_PASS(nng_pair1_open(&s1)); - TEST_NNG_FAIL( - nng_socket_set_int(s1, NNG_OPT_RECVFD, 0), NNG_EREADONLY); - TEST_NNG_FAIL( - nng_socket_set_int(s1, NNG_OPT_SENDFD, 0), NNG_EREADONLY); - TEST_NNG_PASS(nng_close(s1)); + NUTS_OPEN(s1); + NUTS_FAIL(nng_socket_set_int(s1, NNG_OPT_RECVFD, 0), NNG_EREADONLY); + NUTS_FAIL(nng_socket_set_int(s1, NNG_OPT_SENDFD, 0), NNG_EREADONLY); + NUTS_CLOSE(s1); } void @@ -102,14 +93,14 @@ test_socket_base(void) { nng_socket s1 = NNG_SOCKET_INITIALIZER; - TEST_CHECK(nng_socket_id(s1) < 0); - TEST_NNG_PASS(nng_pair1_open(&s1)); - TEST_CHECK(nng_socket_id(s1) > 0); + NUTS_TRUE(nng_socket_id(s1) < 0); + NUTS_PASS(nng_pair1_open(&s1)); + NUTS_TRUE(nng_socket_id(s1) > 0); // Cannot set bogus options - TEST_NNG_FAIL(nng_socket_set_bool(s1, "BAD_OPT", false), NNG_ENOTSUP); + NUTS_FAIL(nng_socket_set_bool(s1, "BAD_OPT", false), NNG_ENOTSUP); - TEST_NNG_PASS(nng_close(s1)); + NUTS_CLOSE(s1); } void @@ -123,34 +114,33 @@ test_socket_name(void) size_t sz; sz = sizeof(name); - TEST_NNG_PASS(nng_pair_open(&s1)); - TEST_NNG_PASS(nng_socket_get(s1, NNG_OPT_SOCKNAME, name, &sz)); - TEST_CHECK(sz > 0 && sz < 64); - TEST_CHECK(sz == strlen(name) + 1); + NUTS_OPEN(s1); + NUTS_PASS(nng_socket_get(s1, NNG_OPT_SOCKNAME, name, &sz)); + NUTS_TRUE(sz > 0 && sz < 64); + NUTS_TRUE(sz == strlen(name) + 1); id = strtol(name, &end, 10); - TEST_CHECK(id == (long) s1.id); - TEST_CHECK(end != NULL && *end == '\0'); + NUTS_TRUE(id == (long) s1.id); + NUTS_TRUE(end != NULL && *end == '\0'); - TEST_NNG_PASS(nng_socket_set(s1, NNG_OPT_SOCKNAME, "hello", 6)); + NUTS_PASS(nng_socket_set(s1, NNG_OPT_SOCKNAME, "hello", 6)); sz = sizeof(name); - TEST_NNG_PASS(nng_socket_get(s1, NNG_OPT_SOCKNAME, name, &sz)); - TEST_CHECK(sz == 6); - TEST_STREQUAL(name, "hello"); + NUTS_PASS(nng_socket_get(s1, NNG_OPT_SOCKNAME, name, &sz)); + NUTS_TRUE(sz == 6); + NUTS_MATCH(name, "hello"); memset(name, 'A', 64); name[64] = '\0'; // strings must be NULL terminated - TEST_NNG_FAIL( - nng_socket_set(s1, NNG_OPT_SOCKNAME, name, 5), NNG_EINVAL); + NUTS_FAIL(nng_socket_set(s1, NNG_OPT_SOCKNAME, name, 5), NNG_EINVAL); - TEST_NNG_PASS(nng_socket_get_string(s1, NNG_OPT_SOCKNAME, &str)); - TEST_ASSERT(str != NULL); - TEST_CHECK(strlen(str) == 5); - TEST_STREQUAL(str, "hello"); + NUTS_PASS(nng_socket_get_string(s1, NNG_OPT_SOCKNAME, &str)); + NUTS_ASSERT(str != NULL); + NUTS_TRUE(strlen(str) == 5); + NUTS_MATCH(str, "hello"); nng_strfree(str); - TEST_NNG_PASS(nng_close(s1)); + NUTS_CLOSE(s1); } void @@ -161,22 +151,20 @@ test_socket_name_oversize(void) size_t sz = sizeof(name); memset(name, 'A', sz); - TEST_NNG_PASS(nng_pair_open(&s1)); + NUTS_OPEN(s1); - TEST_NNG_FAIL( - nng_socket_set(s1, NNG_OPT_SOCKNAME, name, sz), NNG_EINVAL); + NUTS_FAIL(nng_socket_set(s1, NNG_OPT_SOCKNAME, name, sz), NNG_EINVAL); name[sz - 1] = '\0'; - TEST_NNG_FAIL( - nng_socket_set(s1, NNG_OPT_SOCKNAME, name, sz), NNG_EINVAL); + NUTS_FAIL(nng_socket_set(s1, NNG_OPT_SOCKNAME, name, sz), NNG_EINVAL); strcpy(name, "hello"); - TEST_NNG_PASS(nng_socket_set(s1, NNG_OPT_SOCKNAME, name, sz)); + NUTS_PASS(nng_socket_set(s1, NNG_OPT_SOCKNAME, name, sz)); sz = sizeof(name); memset(name, 'B', sz); - TEST_NNG_PASS(nng_getopt(s1, NNG_OPT_SOCKNAME, name, &sz)); - TEST_CHECK(sz == 6); - TEST_STREQUAL(name, "hello"); - TEST_NNG_PASS(nng_close(s1)); + NUTS_PASS(nng_getopt(s1, NNG_OPT_SOCKNAME, name, &sz)); + NUTS_TRUE(sz == 6); + NUTS_MATCH(name, "hello"); + NUTS_CLOSE(s1); } void @@ -190,33 +178,33 @@ test_send_recv(void) char * buf; char * a = "inproc://t1"; - TEST_NNG_PASS(nng_pair1_open(&s1)); - TEST_NNG_PASS(nng_pair1_open(&s2)); + NUTS_OPEN(s1); + NUTS_OPEN(s2); - TEST_NNG_PASS(nng_socket_set_int(s1, NNG_OPT_RECVBUF, 1)); - TEST_NNG_PASS(nng_socket_get_int(s1, NNG_OPT_RECVBUF, &len)); - TEST_CHECK(len == 1); + NUTS_PASS(nng_socket_set_int(s1, NNG_OPT_RECVBUF, 1)); + NUTS_PASS(nng_socket_get_int(s1, NNG_OPT_RECVBUF, &len)); + NUTS_TRUE(len == 1); - TEST_NNG_PASS(nng_socket_set_int(s1, NNG_OPT_SENDBUF, 1)); - TEST_NNG_PASS(nng_socket_set_int(s2, NNG_OPT_SENDBUF, 1)); + NUTS_PASS(nng_socket_set_int(s1, NNG_OPT_SENDBUF, 1)); + NUTS_PASS(nng_socket_set_int(s2, NNG_OPT_SENDBUF, 1)); - TEST_NNG_PASS(nng_socket_set_ms(s1, NNG_OPT_SENDTIMEO, to)); - TEST_NNG_PASS(nng_socket_set_ms(s1, NNG_OPT_RECVTIMEO, to)); - TEST_NNG_PASS(nng_socket_set_ms(s2, NNG_OPT_SENDTIMEO, to)); - TEST_NNG_PASS(nng_socket_set_ms(s2, NNG_OPT_RECVTIMEO, to)); + NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_SENDTIMEO, to)); + NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_RECVTIMEO, to)); + NUTS_PASS(nng_socket_set_ms(s2, NNG_OPT_SENDTIMEO, to)); + NUTS_PASS(nng_socket_set_ms(s2, NNG_OPT_RECVTIMEO, to)); - TEST_NNG_PASS(nng_listen(s1, a, NULL, 0)); - TEST_NNG_PASS(nng_dial(s2, a, NULL, 0)); + NUTS_PASS(nng_listen(s1, a, NULL, 0)); + NUTS_PASS(nng_dial(s2, a, NULL, 0)); - TEST_NNG_PASS(nng_send(s1, "abc", 4, 0)); - TEST_NNG_PASS(nng_recv(s2, &buf, &sz, NNG_FLAG_ALLOC)); - TEST_CHECK(buf != NULL); - TEST_CHECK(sz == 4); - TEST_CHECK(memcmp(buf, "abc", 4) == 0); + NUTS_PASS(nng_send(s1, "abc", 4, 0)); + NUTS_PASS(nng_recv(s2, &buf, &sz, NNG_FLAG_ALLOC)); + NUTS_TRUE(buf != NULL); + NUTS_TRUE(sz == 4); + NUTS_TRUE(memcmp(buf, "abc", 4) == 0); nng_free(buf, sz); - TEST_NNG_PASS(nng_close(s1)); - TEST_NNG_PASS(nng_close(s2)); + NUTS_CLOSE(s1); + NUTS_CLOSE(s2); } void @@ -230,32 +218,32 @@ test_send_recv_zero_length(void) char * buf; char * a = "inproc://send-recv-zero-length"; - TEST_NNG_PASS(nng_pair1_open(&s1)); - TEST_NNG_PASS(nng_pair1_open(&s2)); + NUTS_OPEN(s1); + NUTS_OPEN(s2); - TEST_NNG_PASS(nng_socket_set_int(s1, NNG_OPT_RECVBUF, 1)); - TEST_NNG_PASS(nng_getopt_int(s1, NNG_OPT_RECVBUF, &len)); - TEST_CHECK(len == 1); + NUTS_PASS(nng_socket_set_int(s1, NNG_OPT_RECVBUF, 1)); + NUTS_PASS(nng_getopt_int(s1, NNG_OPT_RECVBUF, &len)); + NUTS_TRUE(len == 1); - TEST_NNG_PASS(nng_socket_set_int(s1, NNG_OPT_SENDBUF, 1)); - TEST_NNG_PASS(nng_socket_set_int(s2, NNG_OPT_SENDBUF, 1)); + NUTS_PASS(nng_socket_set_int(s1, NNG_OPT_SENDBUF, 1)); + NUTS_PASS(nng_socket_set_int(s2, NNG_OPT_SENDBUF, 1)); - TEST_NNG_PASS(nng_socket_set_ms(s1, NNG_OPT_SENDTIMEO, to)); - TEST_NNG_PASS(nng_socket_set_ms(s1, NNG_OPT_RECVTIMEO, to)); - TEST_NNG_PASS(nng_socket_set_ms(s2, NNG_OPT_SENDTIMEO, to)); - TEST_NNG_PASS(nng_socket_set_ms(s2, NNG_OPT_RECVTIMEO, to)); + NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_SENDTIMEO, to)); + NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_RECVTIMEO, to)); + NUTS_PASS(nng_socket_set_ms(s2, NNG_OPT_SENDTIMEO, to)); + NUTS_PASS(nng_socket_set_ms(s2, NNG_OPT_RECVTIMEO, to)); - TEST_NNG_PASS(nng_listen(s1, a, NULL, 0)); - TEST_NNG_PASS(nng_dial(s2, a, NULL, 0)); + NUTS_PASS(nng_listen(s1, a, NULL, 0)); + NUTS_PASS(nng_dial(s2, a, NULL, 0)); - TEST_NNG_PASS(nng_send(s1, "", 0, 0)); - TEST_NNG_PASS(nng_recv(s2, &buf, &sz, NNG_FLAG_ALLOC)); - TEST_CHECK(buf == NULL); - TEST_CHECK(sz == 0); + NUTS_PASS(nng_send(s1, "", 0, 0)); + NUTS_PASS(nng_recv(s2, &buf, &sz, NNG_FLAG_ALLOC)); + NUTS_TRUE(buf == NULL); + NUTS_TRUE(sz == 0); nng_free(buf, sz); - TEST_NNG_PASS(nng_close(s1)); - TEST_NNG_PASS(nng_close(s2)); + NUTS_CLOSE(s1); + NUTS_CLOSE(s2); } void @@ -263,9 +251,9 @@ test_connection_refused(void) { nng_socket s1; - TEST_NNG_PASS(nng_pair1_open(&s1)); - TEST_NNG_FAIL(nng_dial(s1, "inproc://no", NULL, 0), NNG_ECONNREFUSED); - TEST_NNG_PASS(nng_close(s1)); + NUTS_OPEN(s1); + NUTS_FAIL(nng_dial(s1, "inproc://no", NULL, 0), NNG_ECONNREFUSED); + NUTS_CLOSE(s1); } void @@ -277,23 +265,23 @@ test_late_connection(void) nng_socket s2; char * a = "inproc://asy"; - TEST_NNG_PASS(nng_pair1_open(&s1)); - TEST_NNG_PASS(nng_pair1_open(&s2)); + NUTS_OPEN(s1); + NUTS_OPEN(s2); - TEST_NNG_PASS(nng_socket_set_ms(s1, NNG_OPT_RECONNMINT, 10)); - TEST_NNG_PASS(nng_socket_set_ms(s1, NNG_OPT_RECONNMAXT, 10)); + NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_RECONNMINT, 10)); + NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_RECONNMAXT, 10)); - TEST_NNG_PASS(nng_dial(s1, a, NULL, NNG_FLAG_NONBLOCK)); - TEST_NNG_PASS(nng_listen(s2, a, NULL, 0)); + NUTS_PASS(nng_dial(s1, a, NULL, NNG_FLAG_NONBLOCK)); + NUTS_PASS(nng_listen(s2, a, NULL, 0)); nng_msleep(100); - TEST_NNG_PASS(nng_send(s1, "abc", 4, 0)); - TEST_NNG_PASS(nng_recv(s2, &buf, &sz, NNG_FLAG_ALLOC)); - TEST_CHECK(sz == 4); - TEST_CHECK(memcmp(buf, "abc", 4) == 0); + NUTS_PASS(nng_send(s1, "abc", 4, 0)); + NUTS_PASS(nng_recv(s2, &buf, &sz, NNG_FLAG_ALLOC)); + NUTS_TRUE(sz == 4); + NUTS_TRUE(memcmp(buf, "abc", 4) == 0); nng_free(buf, sz); - TEST_NNG_PASS(nng_close(s1)); - TEST_NNG_PASS(nng_close(s2)); + NUTS_CLOSE(s1); + NUTS_CLOSE(s2); } void @@ -305,26 +293,26 @@ test_address_busy(void) nng_socket s1; nng_socket s2; - TEST_NNG_PASS(nng_pair1_open(&s1)); - TEST_NNG_PASS(nng_pair1_open(&s2)); + NUTS_OPEN(s1); + NUTS_OPEN(s2); - TEST_CHECK(nng_listener_id(l) < 0); - TEST_NNG_PASS(nng_listen(s1, a, &l, 0)); - TEST_CHECK(nng_listener_id(l) > 0); + NUTS_TRUE(nng_listener_id(l) < 0); + NUTS_PASS(nng_listen(s1, a, &l, 0)); + NUTS_TRUE(nng_listener_id(l) > 0); // Cannot start another one. - TEST_NNG_FAIL(nng_listen(s1, a, NULL, 0), NNG_EADDRINUSE); + NUTS_FAIL(nng_listen(s1, a, NULL, 0), NNG_EADDRINUSE); // We can't restart it -- it's already running - TEST_NNG_FAIL(nng_listener_start(l, 0), NNG_ESTATE); + NUTS_FAIL(nng_listener_start(l, 0), NNG_ESTATE); // We can connect to it. - TEST_CHECK(nng_dialer_id(d) < 0); - TEST_NNG_PASS(nng_dial(s2, a, &d, 0)); - TEST_CHECK(nng_dialer_id(d) > 0); + NUTS_TRUE(nng_dialer_id(d) < 0); + NUTS_PASS(nng_dial(s2, a, &d, 0)); + NUTS_TRUE(nng_dialer_id(d) > 0); - TEST_NNG_PASS(nng_close(s1)); - TEST_NNG_PASS(nng_close(s2)); + NUTS_CLOSE(s1); + NUTS_CLOSE(s2); } void @@ -338,29 +326,29 @@ test_endpoint_types(void) char * a = "inproc://mumble..."; bool b; - TEST_NNG_PASS(nng_pair1_open(&s1)); + NUTS_OPEN(s1); - TEST_CHECK(nng_dialer_id(d) < 0); - TEST_NNG_PASS(nng_dialer_create(&d, s1, a)); - TEST_CHECK(nng_dialer_id(d) > 0); + NUTS_TRUE(nng_dialer_id(d) < 0); + NUTS_PASS(nng_dialer_create(&d, s1, a)); + NUTS_TRUE(nng_dialer_id(d) > 0); // Forge a listener l2.id = nng_dialer_id(d); - TEST_NNG_FAIL(nng_listener_get_bool(l2, NNG_OPT_RAW, &b), NNG_ENOENT); - TEST_NNG_FAIL(nng_listener_close(l2), NNG_ENOENT); - TEST_NNG_PASS(nng_dialer_close(d)); + NUTS_FAIL(nng_listener_get_bool(l2, NNG_OPT_RAW, &b), NNG_ENOENT); + NUTS_FAIL(nng_listener_close(l2), NNG_ENOENT); + NUTS_PASS(nng_dialer_close(d)); - TEST_CHECK(nng_listener_id(l) < 0); - TEST_NNG_PASS(nng_listener_create(&l, s1, a)); - TEST_CHECK(nng_listener_id(l) > 0); + NUTS_TRUE(nng_listener_id(l) < 0); + NUTS_PASS(nng_listener_create(&l, s1, a)); + NUTS_TRUE(nng_listener_id(l) > 0); // Forge a dialer d2.id = nng_listener_id(l); - TEST_NNG_FAIL(nng_dialer_get_bool(d2, NNG_OPT_RAW, &b), NNG_ENOENT); - TEST_NNG_FAIL(nng_dialer_close(d2), NNG_ENOENT); - TEST_NNG_PASS(nng_listener_close(l)); + NUTS_FAIL(nng_dialer_get_bool(d2, NNG_OPT_RAW, &b), NNG_ENOENT); + NUTS_FAIL(nng_dialer_close(d2), NNG_ENOENT); + NUTS_PASS(nng_listener_close(l)); - TEST_NNG_PASS(nng_close(s1)); + NUTS_CLOSE(s1); } void @@ -368,10 +356,10 @@ test_bad_url(void) { nng_socket s1; - TEST_NNG_PASS(nng_pair1_open(&s1)); - TEST_NNG_FAIL(nng_dial(s1, "bogus://1", NULL, 0), NNG_ENOTSUP); - TEST_NNG_FAIL(nng_listen(s1, "bogus://2", NULL, 0), NNG_ENOTSUP); - TEST_NNG_PASS(nng_close(s1)); + NUTS_OPEN(s1); + NUTS_FAIL(nng_dial(s1, "bogus://1", NULL, 0), NNG_ENOTSUP); + NUTS_FAIL(nng_listen(s1, "bogus://2", NULL, 0), NNG_ENOTSUP); + NUTS_CLOSE(s1); } void @@ -383,25 +371,24 @@ test_url_option(void) nng_dialer d; size_t sz; - TEST_NNG_PASS(nng_pair1_open(&s1)); + NUTS_OPEN(s1); // Listener - TEST_NNG_PASS(nng_listener_create(&l, s1, "inproc://url1")); + NUTS_PASS(nng_listener_create(&l, s1, "inproc://url1")); memset(url, 0, sizeof(url)); sz = sizeof(url); - TEST_NNG_PASS(nng_listener_get(l, NNG_OPT_URL, url, &sz)); - TEST_STREQUAL(url, "inproc://url1"); - TEST_NNG_FAIL( - nng_listener_set(l, NNG_OPT_URL, url, sz), NNG_EREADONLY); + NUTS_PASS(nng_listener_get(l, NNG_OPT_URL, url, &sz)); + NUTS_MATCH(url, "inproc://url1"); + NUTS_FAIL(nng_listener_set(l, NNG_OPT_URL, url, sz), NNG_EREADONLY); sz = sizeof(url); // Dialer - TEST_NNG_PASS(nng_dialer_create(&d, s1, "inproc://url2")); - TEST_NNG_PASS(nng_dialer_get(d, NNG_OPT_URL, url, &sz)); - TEST_STREQUAL(url, "inproc://url2"); - TEST_NNG_FAIL(nng_dialer_set(d, NNG_OPT_URL, url, sz), NNG_EREADONLY); + NUTS_PASS(nng_dialer_create(&d, s1, "inproc://url2")); + NUTS_PASS(nng_dialer_get(d, NNG_OPT_URL, url, &sz)); + NUTS_MATCH(url, "inproc://url2"); + NUTS_FAIL(nng_dialer_set(d, NNG_OPT_URL, url, sz), NNG_EREADONLY); - TEST_NNG_PASS(nng_close(s1)); + NUTS_CLOSE(s1); } void @@ -411,56 +398,53 @@ test_listener_options(void) nng_listener l; size_t sz; - TEST_NNG_PASS(nng_pair1_open(&s1)); + NUTS_OPEN(s1); #ifndef NNG_ELIDE_DEPRECATED // Create a listener with the specified options - TEST_NNG_PASS(nng_socket_set_size(s1, NNG_OPT_RECVMAXSZ, 543)); - TEST_NNG_PASS(nng_listener_create(&l, s1, "inproc://listener_opts")); - TEST_NNG_PASS(nng_listener_get_size(l, NNG_OPT_RECVMAXSZ, &sz)); - TEST_CHECK(sz == 543); + NUTS_PASS(nng_socket_set_size(s1, NNG_OPT_RECVMAXSZ, 543)); + NUTS_PASS(nng_listener_create(&l, s1, "inproc://listener_opts")); + NUTS_PASS(nng_listener_get_size(l, NNG_OPT_RECVMAXSZ, &sz)); + NUTS_TRUE(sz == 543); // Verify endpoint overrides - TEST_NNG_PASS(nng_listener_set_size(l, NNG_OPT_RECVMAXSZ, 678)); - TEST_NNG_PASS(nng_listener_get_size(l, NNG_OPT_RECVMAXSZ, &sz)); - TEST_CHECK(sz == 678); - TEST_NNG_PASS(nng_socket_get_size(s1, NNG_OPT_RECVMAXSZ, &sz)); - TEST_CHECK(sz == 543); + NUTS_PASS(nng_listener_set_size(l, NNG_OPT_RECVMAXSZ, 678)); + NUTS_PASS(nng_listener_get_size(l, NNG_OPT_RECVMAXSZ, &sz)); + NUTS_TRUE(sz == 678); + NUTS_PASS(nng_socket_get_size(s1, NNG_OPT_RECVMAXSZ, &sz)); + NUTS_TRUE(sz == 543); // And socket overrides again - TEST_NNG_PASS(nng_socket_set_size(s1, NNG_OPT_RECVMAXSZ, 911)); - TEST_NNG_PASS(nng_listener_get_size(l, NNG_OPT_RECVMAXSZ, &sz)); - TEST_CHECK(sz == 911); + NUTS_PASS(nng_socket_set_size(s1, NNG_OPT_RECVMAXSZ, 911)); + NUTS_PASS(nng_listener_get_size(l, NNG_OPT_RECVMAXSZ, &sz)); + NUTS_TRUE(sz == 911); #else - TEST_NNG_PASS(nng_listener_create(&l, s1, "inproc://listener_opts")); - TEST_NNG_PASS(nng_listener_set_size(l, NNG_OPT_RECVMAXSZ, 678)); - TEST_NNG_PASS(nng_listener_get_size(l, NNG_OPT_RECVMAXSZ, &sz)); - TEST_CHECK(sz == 678); + NUTS_PASS(nng_listener_create(&l, s1, "inproc://listener_opts")); + NUTS_PASS(nng_listener_set_size(l, NNG_OPT_RECVMAXSZ, 678)); + NUTS_PASS(nng_listener_get_size(l, NNG_OPT_RECVMAXSZ, &sz)); + NUTS_TRUE(sz == 678); #endif // Cannot set invalid options - TEST_NNG_FAIL(nng_listener_set_size(l, "BAD_OPT", 1), NNG_ENOTSUP); - TEST_NNG_FAIL( + NUTS_FAIL(nng_listener_set_size(l, "BAD_OPT", 1), NNG_ENOTSUP); + NUTS_FAIL( nng_listener_set_bool(l, NNG_OPT_RECVMAXSZ, true), NNG_EBADTYPE); - TEST_NNG_FAIL( - nng_listener_set(l, NNG_OPT_RECVMAXSZ, &sz, 1), NNG_EINVAL); + NUTS_FAIL(nng_listener_set(l, NNG_OPT_RECVMAXSZ, &sz, 1), NNG_EINVAL); // Cannot set inappropriate options - TEST_NNG_FAIL( + NUTS_FAIL( nng_listener_set_string(l, NNG_OPT_SOCKNAME, "1"), NNG_ENOTSUP); - TEST_NNG_FAIL( - nng_listener_set_bool(l, NNG_OPT_RAW, true), NNG_ENOTSUP); - TEST_NNG_FAIL( - nng_listener_set_ms(l, NNG_OPT_RECONNMINT, 1), NNG_ENOTSUP); - TEST_NNG_FAIL(nng_listener_set_string(l, NNG_OPT_SOCKNAME, "bogus"), + NUTS_FAIL(nng_listener_set_bool(l, NNG_OPT_RAW, true), NNG_ENOTSUP); + NUTS_FAIL(nng_listener_set_ms(l, NNG_OPT_RECONNMINT, 1), NNG_ENOTSUP); + NUTS_FAIL(nng_listener_set_string(l, NNG_OPT_SOCKNAME, "bogus"), NNG_ENOTSUP); // Read only options - TEST_NNG_FAIL(nng_listener_set_string(l, NNG_OPT_URL, "inproc://junk"), + NUTS_FAIL(nng_listener_set_string(l, NNG_OPT_URL, "inproc://junk"), NNG_EREADONLY); - TEST_NNG_PASS(nng_close(s1)); + NUTS_CLOSE(s1); } void @@ -470,54 +454,53 @@ test_dialer_options(void) nng_dialer d; size_t sz; - TEST_NNG_PASS(nng_pair1_open(&s1)); + NUTS_OPEN(s1); #ifndef NNG_ELIDE_DEPRECATED // NOTE: This test will fail if eliding deprecated behavior. // Create a dialer with the specified options - TEST_NNG_PASS(nng_socket_set_size(s1, NNG_OPT_RECVMAXSZ, 543)); - TEST_NNG_PASS(nng_dialer_create(&d, s1, "inproc://dialer_opts")); - TEST_NNG_PASS(nng_dialer_get_size(d, NNG_OPT_RECVMAXSZ, &sz)); - TEST_CHECK(sz == 543); + NUTS_PASS(nng_socket_set_size(s1, NNG_OPT_RECVMAXSZ, 543)); + NUTS_PASS(nng_dialer_create(&d, s1, "inproc://dialer_opts")); + NUTS_PASS(nng_dialer_get_size(d, NNG_OPT_RECVMAXSZ, &sz)); + NUTS_TRUE(sz == 543); // Verify endpoint overrides - TEST_NNG_PASS(nng_dialer_set_size(d, NNG_OPT_RECVMAXSZ, 678)); - TEST_NNG_PASS(nng_dialer_get_size(d, NNG_OPT_RECVMAXSZ, &sz)); - TEST_CHECK(sz == 678); - TEST_NNG_PASS(nng_socket_get_size(s1, NNG_OPT_RECVMAXSZ, &sz)); - TEST_CHECK(sz == 543); + NUTS_PASS(nng_dialer_set_size(d, NNG_OPT_RECVMAXSZ, 678)); + NUTS_PASS(nng_dialer_get_size(d, NNG_OPT_RECVMAXSZ, &sz)); + NUTS_TRUE(sz == 678); + NUTS_PASS(nng_socket_get_size(s1, NNG_OPT_RECVMAXSZ, &sz)); + NUTS_TRUE(sz == 543); // And socket overrides again - TEST_NNG_PASS(nng_socket_set_size(s1, NNG_OPT_RECVMAXSZ, 911)); - TEST_NNG_PASS(nng_dialer_get_size(d, NNG_OPT_RECVMAXSZ, &sz)); - TEST_CHECK(sz == 911); + NUTS_PASS(nng_socket_set_size(s1, NNG_OPT_RECVMAXSZ, 911)); + NUTS_PASS(nng_dialer_get_size(d, NNG_OPT_RECVMAXSZ, &sz)); + NUTS_TRUE(sz == 911); #else - TEST_NNG_PASS(nng_dialer_create(&d, s1, "inproc://dialer_opts")); - TEST_NNG_PASS(nng_dialer_set_size(d, NNG_OPT_RECVMAXSZ, 678)); - TEST_NNG_PASS(nng_dialer_get_size(d, NNG_OPT_RECVMAXSZ, &sz)); - TEST_CHECK(sz == 678); + NUTS_PASS(nng_dialer_create(&d, s1, "inproc://dialer_opts")); + NUTS_PASS(nng_dialer_set_size(d, NNG_OPT_RECVMAXSZ, 678)); + NUTS_PASS(nng_dialer_get_size(d, NNG_OPT_RECVMAXSZ, &sz)); + NUTS_TRUE(sz == 678); #endif // Cannot set invalid options - TEST_NNG_FAIL(nng_dialer_set_size(d, "BAD_OPT", 1), NNG_ENOTSUP); - TEST_NNG_FAIL( + NUTS_FAIL(nng_dialer_set_size(d, "BAD_OPT", 1), NNG_ENOTSUP); + NUTS_FAIL( nng_dialer_set_bool(d, NNG_OPT_RECVMAXSZ, true), NNG_EBADTYPE); - TEST_NNG_FAIL( - nng_dialer_set(d, NNG_OPT_RECVMAXSZ, &sz, 1), NNG_EINVAL); + NUTS_FAIL(nng_dialer_set(d, NNG_OPT_RECVMAXSZ, &sz, 1), NNG_EINVAL); // Cannot set inappropriate options - TEST_NNG_FAIL( + NUTS_FAIL( nng_dialer_set_string(d, NNG_OPT_SOCKNAME, "1"), NNG_ENOTSUP); - TEST_NNG_FAIL(nng_dialer_set_bool(d, NNG_OPT_RAW, true), NNG_ENOTSUP); - TEST_NNG_FAIL(nng_dialer_set_ms(d, NNG_OPT_SENDTIMEO, 1), NNG_ENOTSUP); - TEST_NNG_FAIL( + NUTS_FAIL(nng_dialer_set_bool(d, NNG_OPT_RAW, true), NNG_ENOTSUP); + NUTS_FAIL(nng_dialer_set_ms(d, NNG_OPT_SENDTIMEO, 1), NNG_ENOTSUP); + NUTS_FAIL( nng_dialer_set_string(d, NNG_OPT_SOCKNAME, "bogus"), NNG_ENOTSUP); // Read only options - TEST_NNG_FAIL(nng_dialer_set_string(d, NNG_OPT_URL, "inproc://junk"), + NUTS_FAIL(nng_dialer_set_string(d, NNG_OPT_URL, "inproc://junk"), NNG_EREADONLY); - TEST_NNG_PASS(nng_close(s1)); + NUTS_CLOSE(s1); } void @@ -532,25 +515,20 @@ test_endpoint_absent_options(void) d.id = 1999; l.id = 1999; - TEST_NNG_FAIL( - nng_dialer_set_size(d, NNG_OPT_RECVMAXSZ, 10), NNG_ENOENT); - TEST_NNG_FAIL( - nng_listener_set_size(l, NNG_OPT_RECVMAXSZ, 10), NNG_ENOENT); + NUTS_FAIL(nng_dialer_set_size(d, NNG_OPT_RECVMAXSZ, 10), NNG_ENOENT); + NUTS_FAIL(nng_listener_set_size(l, NNG_OPT_RECVMAXSZ, 10), NNG_ENOENT); - TEST_NNG_FAIL(nng_dialer_get_bool(d, NNG_OPT_RAW, &b), NNG_ENOENT); - TEST_NNG_FAIL(nng_listener_get_bool(l, NNG_OPT_RAW, &b), NNG_ENOENT); + NUTS_FAIL(nng_dialer_get_bool(d, NNG_OPT_RAW, &b), NNG_ENOENT); + NUTS_FAIL(nng_listener_get_bool(l, NNG_OPT_RAW, &b), NNG_ENOENT); - TEST_NNG_FAIL( - nng_dialer_get_size(d, NNG_OPT_RECVMAXSZ, &s), NNG_ENOENT); - TEST_NNG_FAIL( - nng_listener_get_size(l, NNG_OPT_RECVMAXSZ, &s), NNG_ENOENT); + NUTS_FAIL(nng_dialer_get_size(d, NNG_OPT_RECVMAXSZ, &s), NNG_ENOENT); + NUTS_FAIL(nng_listener_get_size(l, NNG_OPT_RECVMAXSZ, &s), NNG_ENOENT); - TEST_NNG_FAIL(nng_dialer_get_int(d, NNG_OPT_RAW, &i), NNG_ENOENT); - TEST_NNG_FAIL(nng_listener_get_int(l, NNG_OPT_RAW, &i), NNG_ENOENT); + NUTS_FAIL(nng_dialer_get_int(d, NNG_OPT_RAW, &i), NNG_ENOENT); + NUTS_FAIL(nng_listener_get_int(l, NNG_OPT_RAW, &i), NNG_ENOENT); - TEST_NNG_FAIL(nng_dialer_get_ms(d, NNG_OPT_RECVTIMEO, &t), NNG_ENOENT); - TEST_NNG_FAIL( - nng_listener_get_ms(l, NNG_OPT_SENDTIMEO, &t), NNG_ENOENT); + NUTS_FAIL(nng_dialer_get_ms(d, NNG_OPT_RECVTIMEO, &t), NNG_ENOENT); + NUTS_FAIL(nng_listener_get_ms(l, NNG_OPT_SENDTIMEO, &t), NNG_ENOENT); } void @@ -568,44 +546,40 @@ test_timeout_options(void) NULL, }; - TEST_NNG_PASS(nng_pair1_open(&s1)); + NUTS_OPEN(s1); for (int i = 0; cases[i] != NULL; i++) { bool b; TEST_CASE(cases[i]); // Can't receive a duration into zero bytes. sz = 0; - TEST_NNG_FAIL( - nng_socket_get(s1, cases[i], &to, &sz), NNG_EINVAL); + NUTS_FAIL(nng_socket_get(s1, cases[i], &to, &sz), NNG_EINVAL); // Type mismatches - TEST_NNG_FAIL( - nng_socket_get_bool(s1, cases[i], &b), NNG_EBADTYPE); + NUTS_FAIL(nng_socket_get_bool(s1, cases[i], &b), NNG_EBADTYPE); sz = 1; - TEST_NNG_FAIL( - nng_socket_get(s1, cases[i], &b, &sz), NNG_EINVAL); + NUTS_FAIL(nng_socket_get(s1, cases[i], &b, &sz), NNG_EINVAL); // Can set a valid duration - TEST_NNG_PASS(nng_socket_set_ms(s1, cases[i], 1234)); - TEST_NNG_PASS(nng_socket_get_ms(s1, cases[i], &to)); - TEST_CHECK(to == 1234); + NUTS_PASS(nng_socket_set_ms(s1, cases[i], 1234)); + NUTS_PASS(nng_socket_get_ms(s1, cases[i], &to)); + NUTS_TRUE(to == 1234); to = 0; sz = sizeof(to); - TEST_NNG_PASS(nng_socket_get(s1, cases[i], &to, &sz)); - TEST_CHECK(to == 1234); - TEST_CHECK(sz == sizeof(to)); + NUTS_PASS(nng_socket_get(s1, cases[i], &to, &sz)); + NUTS_TRUE(to == 1234); + NUTS_TRUE(sz == sizeof(to)); // Can't set a negative duration - TEST_NNG_FAIL(nng_socket_set_ms(s1, cases[i], -5), NNG_EINVAL); + NUTS_FAIL(nng_socket_set_ms(s1, cases[i], -5), NNG_EINVAL); // Can't pass a buf too small for duration sz = sizeof(to) - 1; to = 1; - TEST_NNG_FAIL( - nng_socket_set(s1, cases[i], &to, sz), NNG_EINVAL); + NUTS_FAIL(nng_socket_set(s1, cases[i], &to, sz), NNG_EINVAL); } - TEST_NNG_PASS(nng_close(s1)); + NUTS_CLOSE(s1); } void @@ -621,44 +595,44 @@ test_size_options(void) NULL, }; - TEST_NNG_PASS(nng_pair1_open(&s1)); + NUTS_OPEN(s1); for (int i = 0; (opt = cases[i]) != NULL; i++) { TEST_CASE(opt); // Can't receive a size into zero bytes. sz = 0; - TEST_NNG_FAIL(nng_socket_get(s1, opt, &val, &sz), NNG_EINVAL); + NUTS_FAIL(nng_socket_get(s1, opt, &val, &sz), NNG_EINVAL); // Can set a valid duration - TEST_NNG_PASS(nng_socket_set_size(s1, opt, 1234)); - TEST_NNG_PASS(nng_socket_get_size(s1, opt, &val)); - TEST_CHECK(val == 1234); + NUTS_PASS(nng_socket_set_size(s1, opt, 1234)); + NUTS_PASS(nng_socket_get_size(s1, opt, &val)); + NUTS_TRUE(val == 1234); val = 0; sz = sizeof(val); - TEST_NNG_PASS(nng_socket_get(s1, opt, &val, &sz)); - TEST_CHECK(val == 1234); - TEST_CHECK(sz == sizeof(val)); + NUTS_PASS(nng_socket_get(s1, opt, &val, &sz)); + NUTS_TRUE(val == 1234); + NUTS_TRUE(sz == sizeof(val)); // Can't pass a buf too small for size sz = sizeof(val) - 1; val = 1; - TEST_NNG_FAIL(nng_socket_set(s1, opt, &val, sz), NNG_EINVAL); + NUTS_FAIL(nng_socket_set(s1, opt, &val, sz), NNG_EINVAL); // We limit the limit to 4GB. Clear it if you want to // ship more than 4GB at a time. #if defined(_WIN64) || defined(_LP64) val = 0x10000u; val <<= 30u; - TEST_NNG_FAIL(nng_socket_set_size(s1, opt, val), NNG_EINVAL); - TEST_NNG_PASS(nng_socket_get_size(s1, opt, &val)); - TEST_CHECK(val == 1234); + NUTS_FAIL(nng_socket_set_size(s1, opt, val), NNG_EINVAL); + NUTS_PASS(nng_socket_get_size(s1, opt, &val)); + NUTS_TRUE(val == 1234); #endif } - TEST_NNG_PASS(nng_close(s1)); + NUTS_CLOSE(s1); } -TEST_LIST = { +NUTS_TESTS = { { "recv timeout", test_recv_timeout }, { "recv non-block", test_recv_nonblock }, { "send timeout", test_send_timeout }, |
