diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/aio_test.c | 123 | ||||
| -rw-r--r-- | src/core/buf_size_test.c | 64 | ||||
| -rw-r--r-- | src/core/errors_test.c | 18 | ||||
| -rw-r--r-- | src/core/id_test.c | 103 | ||||
| -rw-r--r-- | src/core/reconnect_test.c | 159 | ||||
| -rw-r--r-- | src/core/sock_test.c | 520 | ||||
| -rw-r--r-- | src/core/stats.c | 36 | ||||
| -rw-r--r-- | src/core/stats.h | 4 | ||||
| -rw-r--r-- | src/core/url_test.c | 489 |
9 files changed, 731 insertions, 785 deletions
diff --git a/src/core/aio_test.c b/src/core/aio_test.c index 787b6149..3dab4b04 100644 --- a/src/core/aio_test.c +++ b/src/core/aio_test.c @@ -10,12 +10,7 @@ #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> static void cb_done(void *p) @@ -43,16 +38,16 @@ test_sleep(void) nng_time end = 0; nng_aio *aio; - TEST_NNG_PASS(nng_aio_alloc(&aio, sleep_done, &end)); + NUTS_PASS(nng_aio_alloc(&aio, sleep_done, &end)); start = nng_clock(); nng_sleep_aio(200, aio); nng_aio_wait(aio); - TEST_NNG_PASS(nng_aio_result(aio)); - TEST_CHECK(end != 0); - TEST_CHECK((end - start) >= 200); - TEST_CHECK((end - start) <= 1000); - TEST_CHECK((nng_clock() - start) >= 200); - TEST_CHECK((nng_clock() - start) <= 1000); + NUTS_PASS(nng_aio_result(aio)); + NUTS_TRUE(end != 0); + NUTS_TRUE((end - start) >= 200); + NUTS_TRUE((end - start) <= 1000); + NUTS_TRUE((nng_clock() - start) >= 200); + NUTS_TRUE((nng_clock() - start) <= 1000); nng_aio_free(aio); } @@ -63,17 +58,17 @@ test_sleep_timeout(void) nng_time end = 0; nng_aio *aio; - TEST_CHECK(nng_aio_alloc(&aio, sleep_done, &end) == 0); + NUTS_TRUE(nng_aio_alloc(&aio, sleep_done, &end) == 0); nng_aio_set_timeout(aio, 100); start = nng_clock(); nng_sleep_aio(2000, aio); nng_aio_wait(aio); - TEST_NNG_FAIL(nng_aio_result(aio), NNG_ETIMEDOUT); - TEST_CHECK(end != 0); - TEST_CHECK((end - start) >= 100); - TEST_CHECK((end - start) <= 1000); - TEST_CHECK((nng_clock() - start) >= 100); - TEST_CHECK((nng_clock() - start) <= 1000); + NUTS_FAIL(nng_aio_result(aio), NNG_ETIMEDOUT); + NUTS_TRUE(end != 0); + NUTS_TRUE((end - start) >= 100); + NUTS_TRUE((end - start) <= 1000); + NUTS_TRUE((nng_clock() - start) >= 100); + NUTS_TRUE((nng_clock() - start) <= 1000); nng_aio_free(aio); } @@ -83,8 +78,8 @@ test_insane_nio(void) nng_aio *aio; nng_iov iov; - TEST_NNG_PASS(nng_aio_alloc(&aio, NULL, NULL)); - TEST_NNG_FAIL(nng_aio_set_iov(aio, 1024, &iov), NNG_EINVAL); + NUTS_PASS(nng_aio_alloc(&aio, NULL, NULL)); + NUTS_FAIL(nng_aio_set_iov(aio, 1024, &iov), NNG_EINVAL); nng_aio_free(aio); } @@ -94,12 +89,12 @@ test_provider_cancel(void) nng_aio *aio; int rv = 0; // We fake an empty provider that does not do anything. - TEST_NNG_PASS(nng_aio_alloc(&aio, NULL, NULL)); - TEST_CHECK(nng_aio_begin(aio) == true); + NUTS_PASS(nng_aio_alloc(&aio, NULL, NULL)); + NUTS_TRUE(nng_aio_begin(aio) == true); nng_aio_defer(aio, cancel, &rv); nng_aio_cancel(aio); nng_aio_wait(aio); - TEST_CHECK(rv == NNG_ECANCELED); + NUTS_TRUE(rv == NNG_ECANCELED); nng_aio_free(aio); } @@ -110,18 +105,18 @@ test_consumer_cancel(void) nng_socket s1; int done = 0; - TEST_CHECK(nng_pair1_open(&s1) == 0); - TEST_CHECK(nng_aio_alloc(&a, cb_done, &done) == 0); + NUTS_TRUE(nng_pair1_open(&s1) == 0); + NUTS_TRUE(nng_aio_alloc(&a, cb_done, &done) == 0); nng_aio_set_timeout(a, NNG_DURATION_INFINITE); nng_recv_aio(s1, a); nng_aio_cancel(a); nng_aio_wait(a); - TEST_CHECK(done == 1); - TEST_CHECK(nng_aio_result(a) == NNG_ECANCELED); + NUTS_TRUE(done == 1); + NUTS_TRUE(nng_aio_result(a) == NNG_ECANCELED); nng_aio_free(a); - TEST_CHECK(nng_close(s1) == 0); + NUTS_TRUE(nng_close(s1) == 0); } void @@ -136,20 +131,20 @@ test_traffic(void) nng_msg * m; char * addr = "inproc://traffic"; - TEST_NNG_PASS(nng_pair1_open(&s1)); - TEST_NNG_PASS(nng_pair1_open(&s2)); + NUTS_PASS(nng_pair1_open(&s1)); + NUTS_PASS(nng_pair1_open(&s2)); - TEST_NNG_PASS(nng_listen(s1, addr, NULL, 0)); - TEST_NNG_PASS(nng_dial(s2, addr, NULL, 0)); + NUTS_PASS(nng_listen(s1, addr, NULL, 0)); + NUTS_PASS(nng_dial(s2, addr, NULL, 0)); - TEST_NNG_PASS(nng_aio_alloc(&rx_aio, cb_done, &rx_done)); - TEST_NNG_PASS(nng_aio_alloc(&tx_aio, cb_done, &tx_done)); + NUTS_PASS(nng_aio_alloc(&rx_aio, cb_done, &rx_done)); + NUTS_PASS(nng_aio_alloc(&tx_aio, cb_done, &tx_done)); nng_aio_set_timeout(rx_aio, 1000); nng_aio_set_timeout(tx_aio, 1000); - TEST_NNG_PASS(nng_msg_alloc(&m, 0)); - TEST_NNG_PASS(nng_msg_append(m, "hello", strlen("hello"))); + NUTS_PASS(nng_msg_alloc(&m, 0)); + NUTS_PASS(nng_msg_append(m, "hello", strlen("hello"))); nng_recv_aio(s2, rx_aio); @@ -159,22 +154,22 @@ test_traffic(void) nng_aio_wait(tx_aio); nng_aio_wait(rx_aio); - TEST_NNG_PASS(nng_aio_result(rx_aio)); - TEST_NNG_PASS(nng_aio_result(tx_aio)); + NUTS_PASS(nng_aio_result(rx_aio)); + NUTS_PASS(nng_aio_result(tx_aio)); - TEST_CHECK((m = nng_aio_get_msg(rx_aio)) != NULL); - TEST_CHECK(nng_msg_len(m) == strlen("hello")); - TEST_CHECK(memcmp(nng_msg_body(m), "hello", strlen("hello")) == 0); + NUTS_TRUE((m = nng_aio_get_msg(rx_aio)) != NULL); + NUTS_TRUE(nng_msg_len(m) == strlen("hello")); + NUTS_TRUE(memcmp(nng_msg_body(m), "hello", strlen("hello")) == 0); nng_msg_free(m); - TEST_CHECK(rx_done == 1); - TEST_CHECK(tx_done == 1); + NUTS_TRUE(rx_done == 1); + NUTS_TRUE(tx_done == 1); nng_aio_free(rx_aio); nng_aio_free(tx_aio); - TEST_NNG_PASS(nng_close(s1)); - TEST_NNG_PASS(nng_close(s2)); + NUTS_PASS(nng_close(s1)); + NUTS_PASS(nng_close(s2)); } void @@ -184,15 +179,15 @@ test_explicit_timeout(void) nng_aio * a; int done = 0; - TEST_NNG_PASS(nng_pair1_open(&s)); - TEST_NNG_PASS(nng_aio_alloc(&a, cb_done, &done)); + NUTS_PASS(nng_pair1_open(&s)); + NUTS_PASS(nng_aio_alloc(&a, cb_done, &done)); nng_aio_set_timeout(a, 40); nng_recv_aio(s, a); nng_aio_wait(a); - TEST_CHECK(done == 1); - TEST_NNG_FAIL(nng_aio_result(a), NNG_ETIMEDOUT); + NUTS_TRUE(done == 1); + NUTS_FAIL(nng_aio_result(a), NNG_ETIMEDOUT); nng_aio_free(a); - TEST_NNG_PASS(nng_close(s)); + NUTS_PASS(nng_close(s)); } void @@ -202,15 +197,15 @@ test_inherited_timeout(void) nng_aio * a; int done = 0; - TEST_NNG_PASS(nng_pair1_open(&s)); - TEST_NNG_PASS(nng_aio_alloc(&a, cb_done, &done)); - TEST_NNG_PASS(nng_socket_set_ms(s, NNG_OPT_RECVTIMEO, 40)); + NUTS_PASS(nng_pair1_open(&s)); + NUTS_PASS(nng_aio_alloc(&a, cb_done, &done)); + NUTS_PASS(nng_socket_set_ms(s, NNG_OPT_RECVTIMEO, 40)); nng_recv_aio(s, a); nng_aio_wait(a); - TEST_CHECK(done == 1); - TEST_NNG_FAIL(nng_aio_result(a), NNG_ETIMEDOUT); + NUTS_TRUE(done == 1); + NUTS_FAIL(nng_aio_result(a), NNG_ETIMEDOUT); nng_aio_free(a); - TEST_NNG_PASS(nng_close(s)); + NUTS_PASS(nng_close(s)); } void @@ -220,18 +215,18 @@ test_zero_timeout(void) nng_aio * a; int done = 0; - TEST_NNG_PASS(nng_pair1_open(&s)); - TEST_NNG_PASS(nng_aio_alloc(&a, cb_done, &done)); + NUTS_PASS(nng_pair1_open(&s)); + NUTS_PASS(nng_aio_alloc(&a, cb_done, &done)); nng_aio_set_timeout(a, NNG_DURATION_ZERO); nng_recv_aio(s, a); nng_aio_wait(a); - TEST_CHECK(done == 1); - TEST_NNG_FAIL(nng_aio_result(a), NNG_ETIMEDOUT); + NUTS_TRUE(done == 1); + NUTS_FAIL(nng_aio_result(a), NNG_ETIMEDOUT); nng_aio_free(a); - TEST_NNG_PASS(nng_close(s)); + NUTS_PASS(nng_close(s)); } -TEST_LIST = { +NUTS_TESTS = { { "sleep", test_sleep }, { "sleep timeout", test_sleep_timeout }, { "insane nio", test_insane_nio }, diff --git a/src/core/buf_size_test.c b/src/core/buf_size_test.c index 172cb1f0..b8757991 100644 --- a/src/core/buf_size_test.c +++ b/src/core/buf_size_test.c @@ -8,16 +8,11 @@ // found online at https://opensource.org/licenses/MIT. // -#include <nng/nng.h> -#include <nng/protocol/pair1/pair.h> -#include <nng/supplemental/util/platform.h> +#include <nuts.h> #include <nng/compat/nanomsg/nn.h> -#include "acutest.h" -#include "testutil.h" - -void + void test_buffer_options(void) { nng_socket s1; @@ -31,38 +26,37 @@ test_buffer_options(void) NULL, }; - TEST_CHECK(nng_pair1_open(&s1) == 0); + NUTS_PASS(nng_pair1_open(&s1)); for (int i = 0; (opt = cases[i]) != NULL; i++) { - TEST_CASE(opt); + NUTS_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 size - TEST_NNG_PASS(nng_socket_set_int(s1, opt, 1234)); - TEST_NNG_PASS(nng_socket_get_int(s1, opt, &val)); - TEST_CHECK(val == 1234); + NUTS_PASS(nng_socket_set_int(s1, opt, 1234)); + NUTS_PASS(nng_socket_get_int(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 set a negative size - TEST_NNG_FAIL(nng_socket_set_int(s1, opt, -5), NNG_EINVAL); + NUTS_FAIL(nng_socket_set_int(s1, opt, -5), NNG_EINVAL); // 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); // Buffer sizes are limited to sane levels - TEST_NNG_FAIL( - nng_socket_set_int(s1, opt, 0x100000), NNG_EINVAL); + NUTS_FAIL(nng_socket_set_int(s1, opt, 0x100000), NNG_EINVAL); } - TEST_CHECK(nng_close(s1) == 0); + NUTS_PASS(nng_close(s1)); } void @@ -81,38 +75,38 @@ test_buffer_legacy(void) NN_SNDBUF, }; - TEST_CHECK(nng_pair1_open(&s1) == 0); + NUTS_PASS(nng_pair1_open(&s1)); for (int i = 0; (opt = cases[i]) != NULL; i++) { int cnt; int os = (int) s1.id; size_t sz; int nno = legacy[i]; - TEST_CASE(opt); + NUTS_CASE(opt); sz = sizeof(cnt); - TEST_NNG_PASS(nng_socket_set_int(s1, opt, 10)); - TEST_CHECK( + NUTS_PASS(nng_socket_set_int(s1, opt, 10)); + NUTS_TRUE( nn_getsockopt(os, NN_SOL_SOCKET, nno, &cnt, &sz) == 0); - TEST_CHECK(cnt == 10240); // 1k multiple + NUTS_TRUE(cnt == 10240); // 1k multiple cnt = 1; - TEST_CHECK( + NUTS_TRUE( nn_setsockopt(os, NN_SOL_SOCKET, nno, &cnt, sz) == 0); - TEST_CHECK( + NUTS_TRUE( nn_getsockopt(os, NN_SOL_SOCKET, nno, &cnt, &sz) == 0); - TEST_CHECK(cnt == 1024); // round up! - TEST_NNG_PASS(nng_socket_get_int(s1, opt, &cnt)); - TEST_CHECK(cnt == 1); + NUTS_TRUE(cnt == 1024); // round up! + NUTS_PASS(nng_socket_get_int(s1, opt, &cnt)); + NUTS_TRUE(cnt == 1); - TEST_CHECK( + NUTS_TRUE( nn_setsockopt(os, NN_SOL_SOCKET, nno, &cnt, 100) == -1); - TEST_CHECK(nn_errno() == EINVAL); + NUTS_TRUE(nn_errno() == EINVAL); } - TEST_NNG_PASS(nng_close(s1)); + NUTS_PASS(nng_close(s1)); } -TEST_LIST = { +NUTS_TESTS = { { "buffer options", test_buffer_options }, { "buffer legacy", test_buffer_legacy }, { NULL, NULL }, diff --git a/src/core/errors_test.c b/src/core/errors_test.c index 4e50467c..52d820fe 100644 --- a/src/core/errors_test.c +++ b/src/core/errors_test.c @@ -10,35 +10,31 @@ #include <errno.h> #include <string.h> -#include <nng/nng.h> - -#include <acutest.h> -#include <testutil.h> +#include <nuts.h> static void test_known_errors(void) { - - TEST_STREQUAL(nng_strerror(NNG_ECLOSED), "Object closed"); - TEST_STREQUAL(nng_strerror(NNG_ETIMEDOUT), "Timed out"); + NUTS_MATCH(nng_strerror(NNG_ECLOSED), "Object closed"); + NUTS_MATCH(nng_strerror(NNG_ETIMEDOUT), "Timed out"); } static void test_unknown_errors(void) { for (unsigned i = 1; i < 0x1000000; i = i * 2 + 100) { - TEST_CHECK(nng_strerror(i) != NULL); + NUTS_TRUE(nng_strerror(i) != NULL); } } static void test_system_errors(void) { - TEST_STREQUAL(nng_strerror(NNG_ESYSERR + ENOENT), strerror(ENOENT)); - TEST_STREQUAL(nng_strerror(NNG_ESYSERR + EINVAL), strerror(EINVAL)); + NUTS_MATCH(nng_strerror(NNG_ESYSERR + ENOENT), strerror(ENOENT)); + NUTS_MATCH(nng_strerror(NNG_ESYSERR + EINVAL), strerror(EINVAL)); } -TEST_LIST = { +NUTS_TESTS = { { "known errors", test_known_errors }, { "unknown errors", test_unknown_errors }, { "system errors", test_system_errors }, diff --git a/src/core/id_test.c b/src/core/id_test.c index 8312b5cc..51872e69 100644 --- a/src/core/id_test.c +++ b/src/core/id_test.c @@ -7,8 +7,7 @@ // found online at https://opensource.org/licenses/MIT. // -#include "acutest.h" -#include "testutil.h" +#include <nuts.h> #include "idhash.h" @@ -22,16 +21,16 @@ test_basic(void) nni_id_map_init(&m, 0, 0, false); // insert it - TEST_NNG_PASS(nni_id_set(&m, 5, five)); + NUTS_PASS(nni_id_set(&m, 5, five)); // retrieve it - TEST_CHECK(nni_id_get(&m, 5) == five); + NUTS_TRUE(nni_id_get(&m, 5) == five); // change it - TEST_NNG_PASS(nni_id_set(&m, 5, four)); - TEST_CHECK(nni_id_get(&m, 5) == four); + NUTS_PASS(nni_id_set(&m, 5, four)); + NUTS_TRUE(nni_id_get(&m, 5) == four); // delete - TEST_NNG_PASS(nni_id_remove(&m, 5)); + NUTS_PASS(nni_id_remove(&m, 5)); nni_id_map_fini(&m); } @@ -44,17 +43,17 @@ test_random(void) for (i = 0; i < 2; i++) { nni_id_map m; nni_id_map_init(&m, 0, 0, true); - TEST_NNG_PASS(nni_id_alloc(&m, &id, &id)); + NUTS_PASS(nni_id_alloc(&m, &id, &id)); nni_id_map_fini(&m); - TEST_CHECK(id != 0); + NUTS_TRUE(id != 0); if (id != 1) { break; } // one chance in 4 billion, but try again } - TEST_CHECK(id != 1); - TEST_CHECK(i < 2); + NUTS_TRUE(id != 1); + NUTS_TRUE(i < 2); } void @@ -67,14 +66,14 @@ test_collision(void) nni_id_map_init(&m, 0, 0, false); // Carefully crafted -- 13 % 8 == 5. - TEST_NNG_PASS(nni_id_set(&m, 5, five)); - TEST_NNG_PASS(nni_id_set(&m, 13, four)); - TEST_CHECK(nni_id_get(&m, 5) == five); - TEST_CHECK(nni_id_get(&m, 13) == four); + NUTS_PASS(nni_id_set(&m, 5, five)); + NUTS_PASS(nni_id_set(&m, 13, four)); + NUTS_TRUE(nni_id_get(&m, 5) == five); + NUTS_TRUE(nni_id_get(&m, 13) == four); // Delete the intermediate - TEST_NNG_PASS(nni_id_remove(&m, 5)); - TEST_CHECK(nni_id_get(&m, 13) == four); + NUTS_PASS(nni_id_remove(&m, 5)); + NUTS_TRUE(nni_id_get(&m, 13) == four); nni_id_map_fini(&m); } @@ -85,9 +84,9 @@ test_empty(void) nni_id_map m; nni_id_map_init(&m, 0, 0, false); - TEST_CHECK(nni_id_get(&m, 42) == NULL); - TEST_NNG_FAIL(nni_id_remove(&m, 42), NNG_ENOENT); - TEST_NNG_FAIL(nni_id_remove(&m, 1), NNG_ENOENT); + NUTS_TRUE(nni_id_get(&m, 42) == NULL); + NUTS_FAIL(nni_id_remove(&m, 42), NNG_ENOENT); + NUTS_FAIL(nni_id_remove(&m, 1), NNG_ENOENT); nni_id_map_fini(&m); } @@ -98,10 +97,10 @@ test_not_found(void) uint32_t id; nni_id_map_init(&m, 0, 0, false); - TEST_NNG_PASS(nni_id_alloc(&m, &id, &id)); - TEST_NNG_FAIL(nni_id_remove(&m, 42), NNG_ENOENT); - TEST_NNG_FAIL(nni_id_remove(&m, 2), NNG_ENOENT); - TEST_NNG_PASS(nni_id_remove(&m, id)); + NUTS_PASS(nni_id_alloc(&m, &id, &id)); + NUTS_FAIL(nni_id_remove(&m, 42), NNG_ENOENT); + NUTS_FAIL(nni_id_remove(&m, 2), NNG_ENOENT); + NUTS_PASS(nni_id_remove(&m, id)); nni_id_map_fini(&m); } @@ -121,13 +120,13 @@ test_resize(void) for (i = 0; i < 1024; i++) { if ((rv = nni_id_set(&m, i, &expect[i])) != 0) { - TEST_NNG_PASS(rv); + NUTS_PASS(rv); } } for (i = 0; i < 1024; i++) { if ((rv = nni_id_remove(&m, i)) != 0) { - TEST_NNG_PASS(rv); + NUTS_PASS(rv); } } nni_id_map_fini(&m); @@ -143,24 +142,24 @@ test_dynamic(void) nni_id_map_init(&m, 10, 13, false); // We can fill the table. - TEST_NNG_PASS(nni_id_alloc(&m, &id, &expect[0])); - TEST_CHECK(id == 10); - TEST_NNG_PASS(nni_id_alloc(&m, &id, &expect[1])); - TEST_CHECK(id == 11); - TEST_NNG_PASS(nni_id_alloc(&m, &id, &expect[2])); - TEST_CHECK(id == 12); - TEST_NNG_PASS(nni_id_alloc(&m, &id, &expect[3])); - TEST_CHECK(id == 13); + NUTS_PASS(nni_id_alloc(&m, &id, &expect[0])); + NUTS_TRUE(id == 10); + NUTS_PASS(nni_id_alloc(&m, &id, &expect[1])); + NUTS_TRUE(id == 11); + NUTS_PASS(nni_id_alloc(&m, &id, &expect[2])); + NUTS_TRUE(id == 12); + NUTS_PASS(nni_id_alloc(&m, &id, &expect[3])); + NUTS_TRUE(id == 13); // Adding another fails. - TEST_NNG_FAIL(nni_id_alloc(&m, &id, &expect[4]), NNG_ENOMEM); + NUTS_FAIL(nni_id_alloc(&m, &id, &expect[4]), NNG_ENOMEM); // Delete one. - TEST_NNG_PASS(nni_id_remove(&m, 11)); + NUTS_PASS(nni_id_remove(&m, 11)); // And now we can allocate one. - TEST_NNG_PASS(nni_id_alloc(&m, &id, &expect[4])); - TEST_CHECK(id == 11); + NUTS_PASS(nni_id_alloc(&m, &id, &expect[4])); + NUTS_TRUE(id == 11); nni_id_map_fini(&m); } @@ -174,10 +173,10 @@ test_set_out_of_range(void) nni_id_map_init(&m, 10, 13, false); // We can insert outside the range forcibly. - TEST_NNG_PASS(nni_id_set(&m, 1, &x)); - TEST_NNG_PASS(nni_id_set(&m, 100, &x)); - TEST_NNG_PASS(nni_id_alloc(&m, &id, &x)); - TEST_CHECK(id == 10); + NUTS_PASS(nni_id_set(&m, 1, &x)); + NUTS_PASS(nni_id_set(&m, 100, &x)); + NUTS_PASS(nni_id_alloc(&m, &id, &x)); + NUTS_TRUE(id == 10); nni_id_map_fini(&m); } @@ -207,7 +206,7 @@ test_stress(void) x = &values[rand() % NUM_VALUES]; values[v] = x; if ((rv = nni_id_set(&m, v, x)) != 0) { - TEST_NNG_PASS(rv); + NUTS_PASS(rv); goto out; } break; @@ -216,13 +215,13 @@ test_stress(void) rv = nni_id_remove(&m, v); if (values[v] == NULL) { if (rv != NNG_ENOENT) { - TEST_NNG_FAIL(rv, NNG_ENOENT); + NUTS_FAIL(rv, NNG_ENOENT); goto out; } } else { values[v] = NULL; if (rv != 0) { - TEST_NNG_PASS(rv); + NUTS_PASS(rv); goto out; } } @@ -230,20 +229,20 @@ test_stress(void) case 2: x = nni_id_get(&m, v); if (x != values[v]) { - TEST_CHECK(x == values[v]); + NUTS_TRUE(x == values[v]); goto out; } break; } } out: - TEST_CHECK(i == STRESS_LOAD); + NUTS_TRUE(i == STRESS_LOAD); // Post stress check. for (i = 0; i < NUM_VALUES; i++) { x = nni_id_get(&m, i); if (x != values[i]) { - TEST_CHECK(x == values[i]); + NUTS_TRUE(x == values[i]); break; } @@ -251,17 +250,17 @@ out: // to fail. Otherwise there will be too many errors reported. rv = nni_id_remove(&m, i); if ((x == NULL) && (rv != NNG_ENOENT)) { - TEST_NNG_FAIL(rv, NNG_ENOENT); + NUTS_FAIL(rv, NNG_ENOENT); } else if ((x != NULL) && (rv != 0)) { - TEST_NNG_PASS(rv); + NUTS_PASS(rv); } } - TEST_CHECK(i == NUM_VALUES); + NUTS_TRUE(i == NUM_VALUES); nni_id_map_fini(&m); } -TEST_LIST = { +NUTS_TESTS = { { "basic", test_basic }, { "random", test_random }, { "collision", test_collision }, diff --git a/src/core/reconnect_test.c b/src/core/reconnect_test.c index 669261c9..308a3f78 100644 --- a/src/core/reconnect_test.c +++ b/src/core/reconnect_test.c @@ -10,101 +10,95 @@ #include <string.h> -#include <nng/nng.h> -#include <nng/protocol/pipeline0/pull.h> -#include <nng/protocol/pipeline0/push.h> -#include <nng/supplemental/util/platform.h> - -#include "acutest.h" -#include "testutil.h" +#include <nuts.h> void test_dial_before_listen(void) { - nng_socket push; - nng_socket pull; - char addr[64]; + nng_socket s1; + nng_socket s2; + char *addr; - testutil_scratch_addr("inproc", sizeof(addr), addr); + NUTS_OPEN(s1); + NUTS_OPEN(s2); - TEST_NNG_PASS(nng_push0_open(&push)); - TEST_NNG_PASS(nng_pull0_open(&pull)); + NUTS_ADDR(addr, "inproc"); - TEST_NNG_PASS(nng_socket_set_ms(pull, NNG_OPT_RECONNMINT, 10)); - TEST_NNG_PASS(nng_socket_set_ms(pull, NNG_OPT_RECONNMAXT, 10)); + NUTS_PASS(nng_socket_set_ms(s2, NNG_OPT_RECONNMINT, 10)); + NUTS_PASS(nng_socket_set_ms(s2, NNG_OPT_RECONNMAXT, 10)); - TEST_NNG_PASS(nng_dial(pull, addr, NULL, NNG_FLAG_NONBLOCK)); - testutil_sleep(100); - TEST_NNG_PASS(nng_listen(push, addr, NULL, 0)); + NUTS_PASS(nng_dial(s2, addr, NULL, NNG_FLAG_NONBLOCK)); + NUTS_SLEEP(100); + NUTS_PASS(nng_listen(s1, addr, NULL, 0)); - TEST_NNG_SEND_STR(push, "hello"); - TEST_NNG_RECV_STR(pull, "hello"); + NUTS_SEND(s1, "hello"); + NUTS_RECV(s2, "hello"); - TEST_NNG_PASS(nng_close(push)); - TEST_NNG_PASS(nng_close(pull)); + NUTS_CLOSE(s1); + NUTS_CLOSE(s2); } void test_reconnect(void) { - nng_socket push; - nng_socket pull; + nng_socket s1; + nng_socket s2; nng_listener l; - char addr[64]; + char *addr; - testutil_scratch_addr("inproc", sizeof(addr), addr); + NUTS_OPEN(s1); + NUTS_OPEN(s2); - TEST_NNG_PASS(nng_push0_open(&push)); - TEST_NNG_PASS(nng_pull0_open(&pull)); + NUTS_ADDR(addr, "inproc"); - TEST_NNG_PASS(nng_socket_set_ms(pull, NNG_OPT_RECONNMINT, 10)); - TEST_NNG_PASS(nng_socket_set_ms(pull, NNG_OPT_RECONNMAXT, 10)); + NUTS_PASS(nng_socket_set_ms(s2, NNG_OPT_RECONNMINT, 10)); + NUTS_PASS(nng_socket_set_ms(s2, NNG_OPT_RECONNMAXT, 10)); - TEST_NNG_PASS(nng_dial(pull, addr, NULL, NNG_FLAG_NONBLOCK)); - testutil_sleep(100); - TEST_NNG_PASS(nng_listen(push, addr, &l, 0)); + NUTS_PASS(nng_dial(s2, addr, NULL, NNG_FLAG_NONBLOCK)); + NUTS_SLEEP(100); + NUTS_PASS(nng_listen(s1, addr, &l, 0)); - TEST_NNG_SEND_STR(push, "hello"); - TEST_NNG_RECV_STR(pull, "hello"); + NUTS_SEND(s1, "hello"); + NUTS_RECV(s2, "hello"); // Close the listener - TEST_NNG_PASS(nng_listener_close(l)); + NUTS_PASS(nng_listener_close(l)); - TEST_NNG_PASS(nng_listen(push, addr, &l, 0)); - TEST_NNG_SEND_STR(push, "again"); - TEST_NNG_RECV_STR(pull, "again"); + NUTS_PASS(nng_listen(s1, addr, &l, 0)); + NUTS_SEND(s1, "again"); + NUTS_RECV(s2, "again"); - TEST_NNG_PASS(nng_close(push)); - TEST_NNG_PASS(nng_close(pull)); + NUTS_CLOSE(s1); + NUTS_CLOSE(s2); } void test_reconnect_pipe(void) { - nng_socket push; - nng_socket pull; + nng_socket s1; + nng_socket s2; nng_listener l; nng_msg * msg; - char addr[64]; + char * addr; - testutil_scratch_addr("inproc", sizeof(addr), addr); + NUTS_OPEN(s1); + NUTS_OPEN(s2); - TEST_NNG_PASS(nng_push0_open(&push)); - TEST_NNG_PASS(nng_pull0_open(&pull)); + NUTS_ADDR(addr, "inproc"); - TEST_NNG_PASS(nng_socket_set_ms(pull, NNG_OPT_RECONNMINT, 10)); - TEST_NNG_PASS(nng_socket_set_ms(pull, 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(pull, addr, NULL, NNG_FLAG_NONBLOCK)); - testutil_sleep(100); - TEST_NNG_PASS(nng_listen(push, addr, &l, 0)); + NUTS_PASS(nng_dial(s1, addr, NULL, NNG_FLAG_NONBLOCK)); + NUTS_SLEEP(100); + NUTS_PASS(nng_listen(s2, addr, &l, 0)); - TEST_NNG_SEND_STR(push, "hello"); + NUTS_SEND(s2, "hello"); - TEST_NNG_PASS(nng_recvmsg(pull, &msg, 0)); - TEST_CHECK(msg != NULL); - TEST_CHECK(nng_msg_len(msg) == 6); - TEST_CHECK(strcmp(nng_msg_body(msg), "hello") == 0); + NUTS_PASS(nng_recvmsg(s1, &msg, 0)); + NUTS_TRUE(msg != NULL); + NUTS_TRUE(nng_msg_len(msg) == 6); + NUTS_MATCH(nng_msg_body(msg), "hello"); nng_pipe_close(nng_msg_get_pipe(msg)); nng_msg_free(msg); @@ -112,53 +106,54 @@ test_reconnect_pipe(void) // receiver, the receiver might not have got the update. If we // send too soon, then the message gets routed to the sender pipe // that is about to close. - testutil_sleep(100); + NUTS_SLEEP(100); - // Reconnect should happen more ore less immediately. - TEST_NNG_SEND_STR(push, "again"); - TEST_NNG_RECV_STR(pull, "again"); + // Reconnect should happen more or less immediately. + NUTS_SEND(s2, "again"); + NUTS_RECV(s1, "again"); - TEST_NNG_PASS(nng_close(push)); - TEST_NNG_PASS(nng_close(pull)); + NUTS_CLOSE(s1); + NUTS_CLOSE(s2); } void test_reconnect_back_off_zero(void) { - nng_socket push; - nng_socket pull; - nng_time start; - char addr[64]; - testutil_scratch_addr("inproc", sizeof(addr), addr); + nng_socket s1; + nng_socket s2; + uint64_t start; + char * addr; + + NUTS_OPEN(s1); + NUTS_OPEN(s2); - TEST_NNG_PASS(nng_push0_open(&push)); - TEST_NNG_PASS(nng_pull0_open(&pull)); + NUTS_ADDR(addr, "inproc"); // redial every 10 ms. - TEST_NNG_PASS(nng_socket_set_ms(push, NNG_OPT_RECONNMAXT, 0)); - TEST_NNG_PASS(nng_socket_set_ms(push, NNG_OPT_RECONNMINT, 10)); - TEST_NNG_PASS(nng_dial(push, addr, NULL, NNG_FLAG_NONBLOCK)); + NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_RECONNMAXT, 0)); + NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_RECONNMINT, 10)); + NUTS_PASS(nng_dial(s1, addr, NULL, NNG_FLAG_NONBLOCK)); // Start up the dialer first. It should keep retrying every 10 ms. // Wait 500 milliseconds. This gives a chance for an exponential // back-off to increase to a longer time. It should by this point // be well over 100 and probably closer to 200 ms. - nng_msleep(500); + NUTS_SLEEP(500); - start = nng_clock(); - TEST_NNG_PASS(nng_listen(pull, addr, NULL, 0)); + NUTS_CLOCK(start); + NUTS_PASS(nng_listen(s2, addr, NULL, 0)); - TEST_NNG_SEND_STR(push, "hello"); - TEST_NNG_RECV_STR(pull, "hello"); + NUTS_SEND(s1, "hello"); + NUTS_RECV(s2, "hello"); - TEST_CHECK(nng_clock() - start < 100); + NUTS_BEFORE(start + 100); - TEST_NNG_PASS(nng_close(push)); - TEST_NNG_PASS(nng_close(pull)); + NUTS_CLOSE(s1); + NUTS_CLOSE(s2); } -TEST_LIST = { +NUTS_TESTS = { { "dial before listen", test_dial_before_listen }, { "reconnect", test_reconnect }, { "reconnect back-off zero", test_reconnect_back_off_zero }, 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 }, diff --git a/src/core/stats.c b/src/core/stats.c index 85e7d030..e4765078 100644 --- a/src/core/stats.c +++ b/src/core/stats.c @@ -79,8 +79,8 @@ stat_unregister(nni_stat_item *item) } if ((item->si_info->si_alloc) && (item->si_info->si_type == NNG_STAT_STRING)) { - nni_strfree(item->si_value.sv_string); - item->si_value.sv_string = NULL; + nni_strfree(item->si_u.sv_string); + item->si_u.sv_string = NULL; } nni_list_node_remove(&item->si_node); } @@ -116,9 +116,9 @@ nni_stat_inc(nni_stat_item *item, uint64_t inc) { #ifdef NNG_ENABLE_STATS if (item->si_info->si_atomic) { - nni_atomic_add64(&item->si_value.sv_atomic, inc); + nni_atomic_add64(&item->si_u.sv_atomic, inc); } else { - item->si_value.sv_number += inc; + item->si_u.sv_number += inc; } #else NNI_ARG_UNUSED(item); @@ -132,9 +132,9 @@ nni_stat_dec(nni_stat_item *item, uint64_t inc) #ifdef NNG_ENABLE_STATS if (item->si_info->si_atomic) { - nni_atomic_sub64(&item->si_value.sv_atomic, inc); + nni_atomic_sub64(&item->si_u.sv_atomic, inc); } else { - item->si_value.sv_number -= inc; + item->si_u.sv_number -= inc; } #else NNI_ARG_UNUSED(item); @@ -147,7 +147,7 @@ nni_stat_set_id(nni_stat_item *item, int id) { #ifdef NNG_ENABLE_STATS // IDs don't change, so just set it. - item->si_value.sv_id = id; + item->si_u.sv_id = id; #else NNI_ARG_UNUSED(item); NNI_ARG_UNUSED(id); @@ -159,7 +159,7 @@ nni_stat_set_bool(nni_stat_item *item, bool b) { #ifdef NNG_ENABLE_STATS // bool is atomic by definitions. - item->si_value.sv_bool = b; + item->si_u.sv_bool = b; #else NNI_ARG_UNUSED(item); NNI_ARG_UNUSED(b); @@ -171,7 +171,7 @@ nni_stat_set_string(nni_stat_item *item, const char *s) { #ifdef NNG_ENABLE_STATS const nni_stat_info *info = item->si_info; - char * old = item->si_value.sv_string; + char * old = item->si_u.sv_string; nni_mtx_lock(&stats_val_lock); if ((s != NULL) && (old != NULL) && (strcmp(s, old) == 0)) { @@ -182,12 +182,12 @@ nni_stat_set_string(nni_stat_item *item, const char *s) if (!info->si_alloc) { // no allocation, just set it. - item->si_value.sv_string = (char *) s; + item->si_u.sv_string = (char *) s; nni_mtx_unlock(&stats_val_lock); return; } - item->si_value.sv_string = nni_strdup(s); + item->si_u.sv_string = nni_strdup(s); nni_mtx_unlock(&stats_val_lock); nni_strfree(old); @@ -202,9 +202,9 @@ nni_stat_set_value(nni_stat_item *item, uint64_t v) { #ifdef NNG_ENABLE_STATS if (item->si_info->si_atomic) { - nni_atomic_set64(&item->si_value.sv_atomic, v); + nni_atomic_set64(&item->si_u.sv_atomic, v); } else { - item->si_value.sv_number = v; + item->si_u.sv_number = v; } #else NNI_ARG_UNUSED(item); @@ -272,24 +272,24 @@ stat_update(nni_stat *stat) switch (info->si_type) { case NNG_STAT_SCOPE: case NNG_STAT_ID: - stat->s_val.sv_id = item->si_value.sv_id; + stat->s_val.sv_id = item->si_u.sv_id; break; case NNG_STAT_BOOLEAN: - stat->s_val.sv_bool = item->si_value.sv_bool; + stat->s_val.sv_bool = item->si_u.sv_bool; break; case NNG_STAT_COUNTER: case NNG_STAT_LEVEL: if (info->si_atomic) { stat->s_val.sv_value = nni_atomic_get64( - (nni_atomic_u64 *) &item->si_value.sv_atomic); + (nni_atomic_u64 *) &item->si_u.sv_atomic); } else { - stat->s_val.sv_value = item->si_value.sv_number; + stat->s_val.sv_value = item->si_u.sv_number; } break; case NNG_STAT_STRING: nni_mtx_lock(&stats_val_lock); old = stat->s_val.sv_string; - str = item->si_value.sv_string; + str = item->si_u.sv_string; // If we have to allocate a new string, do so. But // only do it if new string is different. diff --git a/src/core/stats.h b/src/core/stats.h index 950df78f..de1879ca 100644 --- a/src/core/stats.h +++ b/src/core/stats.h @@ -14,7 +14,7 @@ #include "core/defs.h" // Statistics support. This is inspired in part by the Solaris -// kstats framework, but we've simplified and tuned it for our use. +// kernel stats framework, but we've simplified and tuned it for our use. // // Collection of the stats will be done in two steps. First we // will walk the list of stats, with the chain held, allocating @@ -45,7 +45,7 @@ struct nni_stat_item { char * sv_string; bool sv_bool; int sv_id; - } si_value; + } si_u; }; struct nni_stat_info { diff --git a/src/core/url_test.c b/src/core/url_test.c index 847b7df3..6504ff6c 100644 --- a/src/core/url_test.c +++ b/src/core/url_test.c @@ -1,5 +1,5 @@ // -// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech> +// Copyright 2020 Staysail Systems, Inc. <info@staysail.tech> // Copyright 2018 Capitar IT Group BV <info@capitar.com> // // This software is supplied under the terms of the MIT License, a @@ -8,33 +8,26 @@ // found online at https://opensource.org/licenses/MIT. // - -#include "acutest.h" - +#include "nng_impl.h" +#include <nuts.h> #include <string.h> -#include <nng/nng.h> - -#include "core/url.h" - -#include "testutil.h" - void test_url_host(void) { nng_url *url; - TEST_NNG_PASS(nng_url_parse(&url, "http://www.google.com")); - TEST_ASSERT(url != NULL); - TEST_CHECK(strcmp(url->u_scheme, "http") == 0); - TEST_CHECK(strcmp(url->u_host, "www.google.com") == 0); - TEST_CHECK(strcmp(url->u_hostname, "www.google.com") == 0); - TEST_CHECK(strcmp(url->u_port, "80") == 0); - TEST_CHECK(strcmp(url->u_path, "") == 0); - TEST_CHECK(strcmp(url->u_requri, "") == 0); - TEST_CHECK(url->u_query == NULL); - TEST_CHECK(url->u_fragment == NULL); - TEST_CHECK(url->u_userinfo == NULL); + NUTS_PASS(nng_url_parse(&url, "http://www.google.com")); + NUTS_ASSERT(url != NULL); + NUTS_TRUE(strcmp(url->u_scheme, "http") == 0); + NUTS_TRUE(strcmp(url->u_host, "www.google.com") == 0); + NUTS_TRUE(strcmp(url->u_hostname, "www.google.com") == 0); + NUTS_TRUE(strcmp(url->u_port, "80") == 0); + NUTS_TRUE(strcmp(url->u_path, "") == 0); + NUTS_TRUE(strcmp(url->u_requri, "") == 0); + NUTS_TRUE(url->u_query == NULL); + NUTS_TRUE(url->u_fragment == NULL); + NUTS_TRUE(url->u_userinfo == NULL); nng_url_free(url); } @@ -42,17 +35,17 @@ void test_url_host_port(void) { nng_url *url; - TEST_NNG_PASS(nng_url_parse(&url, "http://www.google.com:1234")); - TEST_ASSERT(url != NULL); - TEST_CHECK(strcmp(url->u_scheme, "http") == 0); - TEST_CHECK(strcmp(url->u_host, "www.google.com:1234") == 0); - TEST_CHECK(strcmp(url->u_hostname, "www.google.com") == 0); - TEST_CHECK(strcmp(url->u_port, "1234") == 0); - TEST_CHECK(strcmp(url->u_path, "") == 0); - TEST_CHECK(strcmp(url->u_requri, "") == 0); - TEST_CHECK(url->u_query == NULL); - TEST_CHECK(url->u_fragment == NULL); - TEST_CHECK(url->u_userinfo == NULL); + NUTS_PASS(nng_url_parse(&url, "http://www.google.com:1234")); + NUTS_ASSERT(url != NULL); + NUTS_TRUE(strcmp(url->u_scheme, "http") == 0); + NUTS_TRUE(strcmp(url->u_host, "www.google.com:1234") == 0); + NUTS_TRUE(strcmp(url->u_hostname, "www.google.com") == 0); + NUTS_TRUE(strcmp(url->u_port, "1234") == 0); + NUTS_TRUE(strcmp(url->u_path, "") == 0); + NUTS_TRUE(strcmp(url->u_requri, "") == 0); + NUTS_TRUE(url->u_query == NULL); + NUTS_TRUE(url->u_fragment == NULL); + NUTS_TRUE(url->u_userinfo == NULL); nng_url_free(url); } @@ -61,18 +54,18 @@ test_url_host_port_path(void) { nng_url *url; - TEST_NNG_PASS( + NUTS_PASS( nng_url_parse(&url, "http://www.google.com:1234/somewhere")); - TEST_ASSERT(url != NULL); - TEST_CHECK(strcmp(url->u_scheme, "http") == 0); - TEST_CHECK(strcmp(url->u_host, "www.google.com:1234") == 0); - TEST_CHECK(strcmp(url->u_hostname, "www.google.com") == 0); - TEST_CHECK(strcmp(url->u_port, "1234") == 0); - TEST_CHECK(strcmp(url->u_path, "/somewhere") == 0); - TEST_CHECK(strcmp(url->u_requri, "/somewhere") == 0); - TEST_CHECK(url->u_userinfo == NULL); - TEST_CHECK(url->u_query == NULL); - TEST_CHECK(url->u_fragment == NULL); + NUTS_ASSERT(url != NULL); + NUTS_TRUE(strcmp(url->u_scheme, "http") == 0); + NUTS_TRUE(strcmp(url->u_host, "www.google.com:1234") == 0); + NUTS_TRUE(strcmp(url->u_hostname, "www.google.com") == 0); + NUTS_TRUE(strcmp(url->u_port, "1234") == 0); + NUTS_TRUE(strcmp(url->u_path, "/somewhere") == 0); + NUTS_TRUE(strcmp(url->u_requri, "/somewhere") == 0); + NUTS_TRUE(url->u_userinfo == NULL); + NUTS_TRUE(url->u_query == NULL); + NUTS_TRUE(url->u_fragment == NULL); nng_url_free(url); } @@ -80,18 +73,18 @@ void test_url_user_info(void) { nng_url *url; - TEST_NNG_PASS(nng_url_parse( + NUTS_PASS(nng_url_parse( &url, "http://garrett@www.google.com:1234/somewhere")); - TEST_ASSERT(url != NULL); - TEST_STREQUAL(url->u_scheme, "http"); - TEST_STREQUAL(url->u_userinfo, "garrett"); - TEST_STREQUAL(url->u_host, "www.google.com:1234"); - TEST_STREQUAL(url->u_hostname, "www.google.com"); - TEST_STREQUAL(url->u_port, "1234"); - TEST_STREQUAL(url->u_path, "/somewhere"); - TEST_STREQUAL(url->u_requri, "/somewhere"); - TEST_NULL(url->u_query); - TEST_NULL(url->u_fragment); + NUTS_ASSERT(url != NULL); + NUTS_MATCH(url->u_scheme, "http"); + NUTS_MATCH(url->u_userinfo, "garrett"); + NUTS_MATCH(url->u_host, "www.google.com:1234"); + NUTS_MATCH(url->u_hostname, "www.google.com"); + NUTS_MATCH(url->u_port, "1234"); + NUTS_MATCH(url->u_path, "/somewhere"); + NUTS_MATCH(url->u_requri, "/somewhere"); + NUTS_NULL(url->u_query); + NUTS_NULL(url->u_fragment); nng_url_free(url); } @@ -99,18 +92,18 @@ void test_url_path_query_param(void) { nng_url *url; - TEST_NNG_PASS( + NUTS_PASS( nng_url_parse(&url, "http://www.google.com/somewhere?result=yes")); - TEST_ASSERT(url != NULL); - TEST_STREQUAL(url->u_scheme, "http"); - TEST_STREQUAL(url->u_host, "www.google.com"); - TEST_STREQUAL(url->u_hostname, "www.google.com"); - TEST_STREQUAL(url->u_port, "80"); - TEST_STREQUAL(url->u_path, "/somewhere"); - TEST_STREQUAL(url->u_query, "result=yes"); - TEST_STREQUAL(url->u_requri, "/somewhere?result=yes"); - TEST_NULL(url->u_userinfo); - TEST_NULL(url->u_fragment); + NUTS_ASSERT(url != NULL); + NUTS_MATCH(url->u_scheme, "http"); + NUTS_MATCH(url->u_host, "www.google.com"); + NUTS_MATCH(url->u_hostname, "www.google.com"); + NUTS_MATCH(url->u_port, "80"); + NUTS_MATCH(url->u_path, "/somewhere"); + NUTS_MATCH(url->u_query, "result=yes"); + NUTS_MATCH(url->u_requri, "/somewhere?result=yes"); + NUTS_NULL(url->u_userinfo); + NUTS_NULL(url->u_fragment); nng_url_free(url); } @@ -118,19 +111,19 @@ void test_url_query_param_anchor(void) { nng_url *url; - TEST_NNG_PASS(nng_url_parse(&url, + NUTS_PASS(nng_url_parse(&url, "http://www.google.com/" "somewhere?result=yes#chapter1")); - TEST_ASSERT(url != NULL); - TEST_STREQUAL(url->u_scheme, "http"); - TEST_STREQUAL(url->u_host, "www.google.com"); - TEST_STREQUAL(url->u_hostname, "www.google.com"); - TEST_STREQUAL(url->u_port, "80"); - TEST_STREQUAL(url->u_path, "/somewhere"); - TEST_STREQUAL(url->u_query, "result=yes"); - TEST_STREQUAL(url->u_fragment, "chapter1"); - TEST_STREQUAL(url->u_requri, "/somewhere?result=yes#chapter1"); - TEST_NULL(url->u_userinfo); + NUTS_ASSERT(url != NULL); + NUTS_MATCH(url->u_scheme, "http"); + NUTS_MATCH(url->u_host, "www.google.com"); + NUTS_MATCH(url->u_hostname, "www.google.com"); + NUTS_MATCH(url->u_port, "80"); + NUTS_MATCH(url->u_path, "/somewhere"); + NUTS_MATCH(url->u_query, "result=yes"); + NUTS_MATCH(url->u_fragment, "chapter1"); + NUTS_MATCH(url->u_requri, "/somewhere?result=yes#chapter1"); + NUTS_NULL(url->u_userinfo); nng_url_free(url); } @@ -138,18 +131,18 @@ void test_url_path_anchor(void) { nng_url *url; - TEST_NNG_PASS( + NUTS_PASS( nng_url_parse(&url, "http://www.google.com/somewhere#chapter2")); - TEST_ASSERT(url != NULL); - TEST_STREQUAL(url->u_scheme, "http"); - TEST_STREQUAL(url->u_host, "www.google.com"); - TEST_STREQUAL(url->u_hostname, "www.google.com"); - TEST_STREQUAL(url->u_port, "80"); - TEST_STREQUAL(url->u_path, "/somewhere"); - TEST_STREQUAL(url->u_fragment, "chapter2"); - TEST_STREQUAL(url->u_requri, "/somewhere#chapter2"); - TEST_NULL(url->u_query); - TEST_NULL(url->u_userinfo); + NUTS_ASSERT(url != NULL); + NUTS_MATCH(url->u_scheme, "http"); + NUTS_MATCH(url->u_host, "www.google.com"); + NUTS_MATCH(url->u_hostname, "www.google.com"); + NUTS_MATCH(url->u_port, "80"); + NUTS_MATCH(url->u_path, "/somewhere"); + NUTS_MATCH(url->u_fragment, "chapter2"); + NUTS_MATCH(url->u_requri, "/somewhere#chapter2"); + NUTS_NULL(url->u_query); + NUTS_NULL(url->u_userinfo); nng_url_free(url); } @@ -157,17 +150,17 @@ void test_url_anchor(void) { nng_url *url; - TEST_NNG_PASS(nng_url_parse(&url, "http://www.google.com#chapter3")); - TEST_ASSERT(url != NULL); - TEST_STREQUAL(url->u_scheme, "http"); - TEST_STREQUAL(url->u_host, "www.google.com"); - TEST_STREQUAL(url->u_hostname, "www.google.com"); - TEST_STREQUAL(url->u_path, ""); - TEST_STREQUAL(url->u_port, "80"); - TEST_STREQUAL(url->u_fragment, "chapter3"); - TEST_STREQUAL(url->u_requri, "#chapter3"); - TEST_NULL(url->u_query); - TEST_NULL(url->u_userinfo); + NUTS_PASS(nng_url_parse(&url, "http://www.google.com#chapter3")); + NUTS_ASSERT(url != NULL); + NUTS_MATCH(url->u_scheme, "http"); + NUTS_MATCH(url->u_host, "www.google.com"); + NUTS_MATCH(url->u_hostname, "www.google.com"); + NUTS_MATCH(url->u_path, ""); + NUTS_MATCH(url->u_port, "80"); + NUTS_MATCH(url->u_fragment, "chapter3"); + NUTS_MATCH(url->u_requri, "#chapter3"); + NUTS_NULL(url->u_query); + NUTS_NULL(url->u_userinfo); nng_url_free(url); } @@ -175,17 +168,17 @@ void test_url_query_param(void) { nng_url *url; - TEST_NNG_PASS(nng_url_parse(&url, "http://www.google.com?color=red")); - TEST_ASSERT(url != NULL); - TEST_STREQUAL(url->u_scheme, "http"); - TEST_STREQUAL(url->u_host, "www.google.com"); - TEST_STREQUAL(url->u_hostname, "www.google.com"); - TEST_STREQUAL(url->u_path, ""); - TEST_STREQUAL(url->u_port, "80"); - TEST_STREQUAL(url->u_query, "color=red"); - TEST_STREQUAL(url->u_requri, "?color=red"); - TEST_ASSERT(url != NULL); - TEST_NULL(url->u_userinfo); + NUTS_PASS(nng_url_parse(&url, "http://www.google.com?color=red")); + NUTS_ASSERT(url != NULL); + NUTS_MATCH(url->u_scheme, "http"); + NUTS_MATCH(url->u_host, "www.google.com"); + NUTS_MATCH(url->u_hostname, "www.google.com"); + NUTS_MATCH(url->u_path, ""); + NUTS_MATCH(url->u_port, "80"); + NUTS_MATCH(url->u_query, "color=red"); + NUTS_MATCH(url->u_requri, "?color=red"); + NUTS_ASSERT(url != NULL); + NUTS_NULL(url->u_userinfo); nng_url_free(url); } @@ -193,16 +186,16 @@ void test_url_v6_host(void) { nng_url *url; - TEST_NNG_PASS(nng_url_parse(&url, "http://[::1]")); - TEST_ASSERT(url != NULL); - TEST_STREQUAL(url->u_scheme, "http"); - TEST_STREQUAL(url->u_host, "[::1]"); - TEST_STREQUAL(url->u_hostname, "::1"); - TEST_STREQUAL(url->u_path, ""); - TEST_STREQUAL(url->u_port, "80"); - TEST_NULL(url->u_query); - TEST_NULL(url->u_fragment); - TEST_NULL(url->u_userinfo); + NUTS_PASS(nng_url_parse(&url, "http://[::1]")); + NUTS_ASSERT(url != NULL); + NUTS_MATCH(url->u_scheme, "http"); + NUTS_MATCH(url->u_host, "[::1]"); + NUTS_MATCH(url->u_hostname, "::1"); + NUTS_MATCH(url->u_path, ""); + NUTS_MATCH(url->u_port, "80"); + NUTS_NULL(url->u_query); + NUTS_NULL(url->u_fragment); + NUTS_NULL(url->u_userinfo); nng_url_free(url); } @@ -210,16 +203,16 @@ void test_url_v6_host_port(void) { nng_url *url; - TEST_NNG_PASS(nng_url_parse(&url, "http://[::1]:29")); - TEST_ASSERT(url != NULL); - TEST_STREQUAL(url->u_scheme, "http"); - TEST_STREQUAL(url->u_host, "[::1]:29"); - TEST_STREQUAL(url->u_hostname, "::1"); - TEST_STREQUAL(url->u_path, ""); - TEST_STREQUAL(url->u_port, "29"); - TEST_NULL(url->u_query); - TEST_NULL(url->u_fragment); - TEST_NULL(url->u_userinfo); + NUTS_PASS(nng_url_parse(&url, "http://[::1]:29")); + NUTS_ASSERT(url != NULL); + NUTS_MATCH(url->u_scheme, "http"); + NUTS_MATCH(url->u_host, "[::1]:29"); + NUTS_MATCH(url->u_hostname, "::1"); + NUTS_MATCH(url->u_path, ""); + NUTS_MATCH(url->u_port, "29"); + NUTS_NULL(url->u_query); + NUTS_NULL(url->u_fragment); + NUTS_NULL(url->u_userinfo); nng_url_free(url); } @@ -227,16 +220,16 @@ void test_url_v6_host_port_path(void) { nng_url *url; - TEST_NNG_PASS(nng_url_parse(&url, "http://[::1]:29/bottles")); - TEST_ASSERT(url != NULL); - TEST_STREQUAL(url->u_scheme, "http"); - TEST_STREQUAL(url->u_host, "[::1]:29"); - TEST_STREQUAL(url->u_hostname, "::1"); - TEST_STREQUAL(url->u_path, "/bottles"); - TEST_STREQUAL(url->u_port, "29"); - TEST_NULL(url->u_query); - TEST_NULL(url->u_fragment); - TEST_NULL(url->u_userinfo); + NUTS_PASS(nng_url_parse(&url, "http://[::1]:29/bottles")); + NUTS_ASSERT(url != NULL); + NUTS_MATCH(url->u_scheme, "http"); + NUTS_MATCH(url->u_host, "[::1]:29"); + NUTS_MATCH(url->u_hostname, "::1"); + NUTS_MATCH(url->u_path, "/bottles"); + NUTS_MATCH(url->u_port, "29"); + NUTS_NULL(url->u_query); + NUTS_NULL(url->u_fragment); + NUTS_NULL(url->u_userinfo); nng_url_free(url); } @@ -244,16 +237,16 @@ void test_url_tcp_port(void) { nng_url *url; - TEST_NNG_PASS(nng_url_parse(&url, "tcp://:9876/")); - TEST_ASSERT(url != NULL); - TEST_STREQUAL(url->u_scheme, "tcp"); - TEST_STREQUAL(url->u_host, ":9876"); - TEST_STREQUAL(url->u_hostname, ""); - TEST_STREQUAL(url->u_path, "/"); - TEST_STREQUAL(url->u_port, "9876"); - TEST_NULL(url->u_query); - TEST_NULL(url->u_fragment); - TEST_NULL(url->u_userinfo); + NUTS_PASS(nng_url_parse(&url, "tcp://:9876/")); + NUTS_ASSERT(url != NULL); + NUTS_MATCH(url->u_scheme, "tcp"); + NUTS_MATCH(url->u_host, ":9876"); + NUTS_MATCH(url->u_hostname, ""); + NUTS_MATCH(url->u_path, "/"); + NUTS_MATCH(url->u_port, "9876"); + NUTS_NULL(url->u_query); + NUTS_NULL(url->u_fragment); + NUTS_NULL(url->u_userinfo); nng_url_free(url); } @@ -262,16 +255,16 @@ test_url_bare_ws(void) { nng_url *url; - TEST_NNG_PASS(nng_url_parse(&url, "ws://")); - TEST_ASSERT(url != NULL); - TEST_STREQUAL(url->u_scheme, "ws"); - TEST_STREQUAL(url->u_host, ""); - TEST_STREQUAL(url->u_hostname, ""); - TEST_STREQUAL(url->u_path, ""); - TEST_STREQUAL(url->u_port, "80"); - TEST_NULL(url->u_query); - TEST_NULL(url->u_fragment); - TEST_NULL(url->u_userinfo); + NUTS_PASS(nng_url_parse(&url, "ws://")); + NUTS_ASSERT(url != NULL); + NUTS_MATCH(url->u_scheme, "ws"); + NUTS_MATCH(url->u_host, ""); + NUTS_MATCH(url->u_hostname, ""); + NUTS_MATCH(url->u_path, ""); + NUTS_MATCH(url->u_port, "80"); + NUTS_NULL(url->u_query); + NUTS_NULL(url->u_fragment); + NUTS_NULL(url->u_userinfo); nng_url_free(url); } @@ -279,16 +272,16 @@ void test_url_ws_wildcard(void) { nng_url *url; - TEST_NNG_PASS(nng_url_parse(&url, "ws://*:12345/foobar")); - TEST_ASSERT(url != NULL); - TEST_STREQUAL(url->u_scheme, "ws"); - TEST_STREQUAL(url->u_host, ":12345"); - TEST_STREQUAL(url->u_hostname, ""); - TEST_STREQUAL(url->u_path, "/foobar"); - TEST_STREQUAL(url->u_port, "12345"); - TEST_NULL(url->u_query); - TEST_NULL(url->u_fragment); - TEST_NULL(url->u_userinfo); + NUTS_PASS(nng_url_parse(&url, "ws://*:12345/foobar")); + NUTS_ASSERT(url != NULL); + NUTS_MATCH(url->u_scheme, "ws"); + NUTS_MATCH(url->u_host, ":12345"); + NUTS_MATCH(url->u_hostname, ""); + NUTS_MATCH(url->u_path, "/foobar"); + NUTS_MATCH(url->u_port, "12345"); + NUTS_NULL(url->u_query); + NUTS_NULL(url->u_fragment); + NUTS_NULL(url->u_userinfo); nng_url_free(url); } @@ -296,16 +289,16 @@ void test_url_ssh(void) { nng_url *url; - TEST_NNG_PASS(nng_url_parse(&url, "ssh://user@host.example.com")); - TEST_ASSERT(url != NULL); - TEST_STREQUAL(url->u_scheme, "ssh"); - TEST_STREQUAL(url->u_host, "host.example.com"); - TEST_STREQUAL(url->u_hostname, "host.example.com"); - TEST_STREQUAL(url->u_path, ""); - TEST_STREQUAL(url->u_port, "22"); - TEST_NULL(url->u_query); - TEST_NULL(url->u_fragment); - TEST_STREQUAL(url->u_userinfo, "user"); + NUTS_PASS(nng_url_parse(&url, "ssh://user@host.example.com")); + NUTS_ASSERT(url != NULL); + NUTS_MATCH(url->u_scheme, "ssh"); + NUTS_MATCH(url->u_host, "host.example.com"); + NUTS_MATCH(url->u_hostname, "host.example.com"); + NUTS_MATCH(url->u_path, ""); + NUTS_MATCH(url->u_port, "22"); + NUTS_NULL(url->u_query); + NUTS_NULL(url->u_fragment); + NUTS_MATCH(url->u_userinfo, "user"); nng_url_free(url); } @@ -313,33 +306,33 @@ void test_url_bad_scheme(void) { nng_url *url = NULL; - TEST_NNG_FAIL(nng_url_parse(&url, "www.google.com"), NNG_EINVAL); - TEST_NULL(url); - TEST_NNG_FAIL(nng_url_parse(&url, "http:www.google.com"), NNG_EINVAL); - TEST_NULL(url); + NUTS_FAIL(nng_url_parse(&url, "www.google.com"), NNG_EINVAL); + NUTS_NULL(url); + NUTS_FAIL(nng_url_parse(&url, "http:www.google.com"), NNG_EINVAL); + NUTS_NULL(url); } void test_url_bad_ipv6(void) { nng_url *url = NULL; - TEST_NNG_FAIL(nng_url_parse(&url, "http://[::1"), NNG_EINVAL); - TEST_NULL(url); - TEST_NNG_FAIL(nng_url_parse(&url, "http://[::1]bogus"), NNG_EINVAL); - TEST_NULL(url); + NUTS_FAIL(nng_url_parse(&url, "http://[::1"), NNG_EINVAL); + NUTS_NULL(url); + NUTS_FAIL(nng_url_parse(&url, "http://[::1]bogus"), NNG_EINVAL); + NUTS_NULL(url); } void test_url_canonify(void) { nng_url *url = NULL; - TEST_NNG_PASS(nng_url_parse( + NUTS_PASS(nng_url_parse( &url, "hTTp://www.EXAMPLE.com/bogus/.%2e/%7egarrett")); - TEST_ASSERT(url != NULL); - TEST_STREQUAL(url->u_scheme, "http"); - TEST_STREQUAL(url->u_hostname, "www.example.com"); - TEST_STREQUAL(url->u_port, "80"); - TEST_STREQUAL(url->u_path, "/~garrett"); + NUTS_ASSERT(url != NULL); + NUTS_MATCH(url->u_scheme, "http"); + NUTS_MATCH(url->u_hostname, "www.example.com"); + NUTS_MATCH(url->u_port, "80"); + NUTS_MATCH(url->u_path, "/~garrett"); nng_url_free(url); } @@ -347,12 +340,12 @@ void test_url_path_resolve(void) { nng_url *url = NULL; - TEST_NNG_PASS( + NUTS_PASS( nng_url_parse(&url, "http://www.x.com//abc/def/./x/..///./../y")); - TEST_STREQUAL(url->u_scheme, "http"); - TEST_STREQUAL(url->u_hostname, "www.x.com"); - TEST_STREQUAL(url->u_port, "80"); - TEST_STREQUAL(url->u_path, "/abc/y"); + NUTS_MATCH(url->u_scheme, "http"); + NUTS_MATCH(url->u_hostname, "www.x.com"); + NUTS_MATCH(url->u_port, "80"); + NUTS_MATCH(url->u_path, "/abc/y"); nng_url_free(url); } @@ -360,14 +353,14 @@ void test_url_query_info_pass(void) { nng_url *url = NULL; - TEST_NNG_PASS( + NUTS_PASS( nng_url_parse(&url, "http://www.x.com/?/abc/def/./x/.././../y")); - TEST_ASSERT(url != NULL); - TEST_STREQUAL(url->u_scheme, "http"); - TEST_STREQUAL(url->u_hostname, "www.x.com"); - TEST_STREQUAL(url->u_port, "80"); - TEST_STREQUAL(url->u_path, "/"); - TEST_STREQUAL(url->u_query, "/abc/def/./x/.././../y"); + NUTS_ASSERT(url != NULL); + NUTS_MATCH(url->u_scheme, "http"); + NUTS_MATCH(url->u_hostname, "www.x.com"); + NUTS_MATCH(url->u_port, "80"); + NUTS_MATCH(url->u_path, "/"); + NUTS_MATCH(url->u_query, "/abc/def/./x/.././../y"); nng_url_free(url); } @@ -375,22 +368,22 @@ void test_url_bad_utf8(void) { nng_url *url = NULL; - TEST_NNG_FAIL(nng_url_parse(&url, "http://x.com/x%80x"), NNG_EINVAL); - TEST_NULL(url); - TEST_NNG_FAIL(nng_url_parse(&url, "http://x.com/x%c0%81"), NNG_EINVAL); - TEST_NULL(url); + NUTS_FAIL(nng_url_parse(&url, "http://x.com/x%80x"), NNG_EINVAL); + NUTS_NULL(url); + NUTS_FAIL(nng_url_parse(&url, "http://x.com/x%c0%81"), NNG_EINVAL); + NUTS_NULL(url); } void test_url_good_utf8(void) { nng_url *url = NULL; - TEST_NNG_PASS(nng_url_parse(&url, "http://www.x.com/%c2%a2_cents")); - TEST_ASSERT(url != NULL); - TEST_STREQUAL(url->u_scheme, "http"); - TEST_STREQUAL(url->u_hostname, "www.x.com"); - TEST_STREQUAL(url->u_port, "80"); - TEST_STREQUAL(url->u_path, "/\xc2\xa2_cents"); + NUTS_PASS(nng_url_parse(&url, "http://www.x.com/%c2%a2_cents")); + NUTS_ASSERT(url != NULL); + NUTS_MATCH(url->u_scheme, "http"); + NUTS_MATCH(url->u_hostname, "www.x.com"); + NUTS_MATCH(url->u_port, "80"); + NUTS_MATCH(url->u_path, "/\xc2\xa2_cents"); nng_url_free(url); } @@ -402,55 +395,55 @@ test_url_decode(void) out[3] = 'x'; len = nni_url_decode(out, "abc", 3); - TEST_CHECK(len == 3); - TEST_CHECK(memcmp(out, "abc", 3) == 0); - TEST_CHECK(out[3] == 'x'); + NUTS_TRUE(len == 3); + NUTS_TRUE(memcmp(out, "abc", 3) == 0); + NUTS_TRUE(out[3] == 'x'); len = nni_url_decode(out, "x%00y", 3); // embedded NULL - TEST_CHECK(len == 3); - TEST_CHECK(memcmp(out, "x\x00y", 3) == 0); - TEST_CHECK(out[3] == 'x'); + NUTS_TRUE(len == 3); + NUTS_TRUE(memcmp(out, "x\x00y", 3) == 0); + NUTS_TRUE(out[3] == 'x'); len = nni_url_decode(out, "%3987", 3); - TEST_CHECK(len == 3); - TEST_CHECK(memcmp(out, "987", 3) == 0); - TEST_CHECK(out[3] == 'x'); + NUTS_TRUE(len == 3); + NUTS_TRUE(memcmp(out, "987", 3) == 0); + NUTS_TRUE(out[3] == 'x'); len = nni_url_decode(out, "78%39", 3); - TEST_CHECK(len == 3); - TEST_CHECK(memcmp(out, "789", 3) == 0); - TEST_CHECK(out[3] == 'x'); + NUTS_TRUE(len == 3); + NUTS_TRUE(memcmp(out, "789", 3) == 0); + NUTS_TRUE(out[3] == 'x'); - len = nni_url_decode(out, "", 5); - TEST_CHECK(len == 0); - TEST_CHECK(memcmp(out, "789", 3) == 0); - TEST_CHECK(out[3] == 'x'); + len = nni_url_decode(out, "", 5); + NUTS_TRUE(len == 0); + NUTS_TRUE(memcmp(out, "789", 3) == 0); + NUTS_TRUE(out[3] == 'x'); - len = nni_url_decode(out, "be", 2); - TEST_CHECK(len == 2); - TEST_CHECK(memcmp(out, "be9", 3) == 0); - TEST_CHECK(out[3] == 'x'); + len = nni_url_decode(out, "be", 2); + NUTS_TRUE(len == 2); + NUTS_TRUE(memcmp(out, "be9", 3) == 0); + NUTS_TRUE(out[3] == 'x'); - len = nni_url_decode(out, "78%39", 2); - TEST_CHECK(len == (size_t) -1); + len = nni_url_decode(out, "78%39", 2); + NUTS_TRUE(len == (size_t) -1); - len = nni_url_decode(out, "", 2); - TEST_CHECK(len == 0); + len = nni_url_decode(out, "", 2); + NUTS_TRUE(len == 0); - len = nni_url_decode(out, "78%", 5); - TEST_CHECK(len == (size_t) -1); + len = nni_url_decode(out, "78%", 5); + NUTS_TRUE(len == (size_t) -1); - len = nni_url_decode(out, "78%xy", 5); - TEST_CHECK(len == (size_t) -1); + len = nni_url_decode(out, "78%xy", 5); + NUTS_TRUE(len == (size_t) -1); - len = nni_url_decode(out, "78%1$", 5); - TEST_CHECK(len == (size_t) -1); + len = nni_url_decode(out, "78%1$", 5); + NUTS_TRUE(len == (size_t) -1); - len = nni_url_decode(out, "%%20", 5); - TEST_CHECK(len == (size_t) -1); + len = nni_url_decode(out, "%%20", 5); + NUTS_TRUE(len == (size_t) -1); } -TEST_LIST = { +NUTS_TESTS = { { "url host", test_url_host }, { "url host port", test_url_host_port }, { "url host port path", test_url_host_port_path }, |
