diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-11-30 13:36:34 -0500 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-11-30 13:36:34 -0500 |
| commit | 02d6b0bb28f6c964477a2362860e37a27d13d8d9 (patch) | |
| tree | f93ba70eed56b60c61b9a65db73beb5485130156 /src/testing/util.c | |
| parent | c3196eac2be29a7b90304b4f9f377c03d9e6d6d8 (diff) | |
| download | nng-02d6b0bb28f6c964477a2362860e37a27d13d8d9.tar.gz nng-02d6b0bb28f6c964477a2362860e37a27d13d8d9.tar.bz2 nng-02d6b0bb28f6c964477a2362860e37a27d13d8d9.zip | |
tests: convert TCPv6 transport test to NUTS (and consolidate with v4)
Diffstat (limited to 'src/testing/util.c')
| -rw-r--r-- | src/testing/util.c | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/testing/util.c b/src/testing/util.c index 6aabe35f..045aacdf 100644 --- a/src/testing/util.c +++ b/src/testing/util.c @@ -9,6 +9,7 @@ // #include "nng/nng.h" +#include <stdbool.h> #define TEST_NO_MAIN #ifdef _WIN32 @@ -41,7 +42,7 @@ #include <poll.h> #endif -#include "nuts.h" +#include <nuts.h> uint64_t nuts_clock(void) @@ -171,6 +172,25 @@ nuts_sleep(int msec) #define NUTS_COLOR_GREEN_INTENSIVE_ 4 #define NUTS_COLOR_RED_INTENSIVE_ 5 +bool +nuts_has_ipv6(void) +{ + nng_sockaddr sa; + nng_udp *u; + int rv; + + sa.s_in6.sa_family = NNG_AF_INET6; + sa.s_in6.sa_port = 0; + memset(sa.s_in6.sa_addr, 0, 16); + sa.s_in6.sa_addr[15] = 1; + + rv = nng_udp_open(&u, &sa); + if (rv == 0) { + nng_udp_close(u); + } + return (rv == 0 ? 1 : 0); +} + void nuts_set_logger(int level) { @@ -222,6 +242,7 @@ nuts_tran_conn_refused(const char *scheme) nng_dialer d = NNG_DIALER_INITIALIZER; const char *addr; + NUTS_SKIP_IF_IPV6_NEEDED_AND_ABSENT(scheme); NUTS_ADDR(addr, scheme); NUTS_OPEN(s); NUTS_FAIL(nng_dial(s, addr, &d, 0), NNG_ECONNREFUSED); @@ -236,6 +257,7 @@ nuts_tran_dialer_cancel(const char *scheme) nng_dialer d = NNG_DIALER_INITIALIZER; const char *addr; + NUTS_SKIP_IF_IPV6_NEEDED_AND_ABSENT(scheme); NUTS_ADDR(addr, scheme); NUTS_OPEN(s); NUTS_PASS(nng_dial(s, addr, &d, NNG_FLAG_NONBLOCK)); @@ -251,6 +273,7 @@ nuts_tran_dialer_closed(const char *scheme) nng_dialer d = NNG_DIALER_INITIALIZER; const char *addr; + NUTS_SKIP_IF_IPV6_NEEDED_AND_ABSENT(scheme); NUTS_ADDR(addr, scheme); NUTS_OPEN(s); NUTS_PASS(nng_dialer_create(&d, s, addr)); @@ -268,6 +291,7 @@ nuts_tran_duplicate_listen(const char *scheme) nng_listener l2 = NNG_LISTENER_INITIALIZER; const char *addr; + NUTS_SKIP_IF_IPV6_NEEDED_AND_ABSENT(scheme); NUTS_ADDR(addr, scheme); NUTS_OPEN(s); NUTS_PASS(nng_listen(s, addr, &l1, 0)); @@ -284,6 +308,7 @@ nuts_tran_listener_cancel(const char *scheme) nng_listener l = NNG_LISTENER_INITIALIZER; const char *addr; + NUTS_SKIP_IF_IPV6_NEEDED_AND_ABSENT(scheme); NUTS_ADDR(addr, scheme); NUTS_OPEN(s); NUTS_PASS(nng_listen(s, addr, &l, 0)); @@ -299,6 +324,7 @@ nuts_tran_listener_closed(const char *scheme) nng_listener l = NNG_LISTENER_INITIALIZER; const char *addr; + NUTS_SKIP_IF_IPV6_NEEDED_AND_ABSENT(scheme); NUTS_ADDR(addr, scheme); NUTS_OPEN(s); NUTS_PASS(nng_listener_create(&l, s, addr)); @@ -318,6 +344,7 @@ nuts_tran_listen_accept(const char *scheme) nng_dialer d2 = NNG_LISTENER_INITIALIZER; const char *addr; + NUTS_SKIP_IF_IPV6_NEEDED_AND_ABSENT(scheme); NUTS_ADDR(addr, scheme); NUTS_OPEN(s1); NUTS_OPEN(s2); @@ -345,6 +372,7 @@ nuts_tran_exchange(const char *scheme) nng_dialer d1 = NNG_LISTENER_INITIALIZER; const char *addr; + NUTS_SKIP_IF_IPV6_NEEDED_AND_ABSENT(scheme); NUTS_ADDR(addr, scheme); NUTS_OPEN(s1); NUTS_OPEN(s2); @@ -378,6 +406,7 @@ nuts_tran_pipe_id(const char *scheme) nng_pipe p1; nng_pipe p2; + NUTS_SKIP_IF_IPV6_NEEDED_AND_ABSENT(scheme); NUTS_ADDR(addr, scheme); NUTS_OPEN(s1); NUTS_OPEN(s2); @@ -419,6 +448,7 @@ nuts_tran_huge_msg(const char *scheme, size_t size) buf = nng_alloc(size); + NUTS_SKIP_IF_IPV6_NEEDED_AND_ABSENT(scheme); NUTS_ADDR(addr, scheme); NUTS_OPEN(s1); NUTS_OPEN(s2); @@ -460,6 +490,7 @@ nuts_tran_msg_props(const char *scheme, void (*check)(nng_msg *)) const char *addr; nng_msg *msg; + NUTS_SKIP_IF_IPV6_NEEDED_AND_ABSENT(scheme); NUTS_ADDR(addr, scheme); NUTS_OPEN(s1); NUTS_OPEN(s2); @@ -488,6 +519,7 @@ nuts_tran_perf(const char *scheme) const char *addr; nng_msg *msg; + NUTS_SKIP_IF_IPV6_NEEDED_AND_ABSENT(scheme); nuts_set_logger(NNG_LOG_NOTICE); NUTS_OPEN(s1); NUTS_OPEN(s2); |
