diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/CMakeLists.txt | 51 | ||||
| -rw-r--r-- | tests/aio.c | 4 | ||||
| -rw-r--r-- | tests/bus.c | 4 | ||||
| -rw-r--r-- | tests/cplusplus_pair.cc | 99 | ||||
| -rw-r--r-- | tests/device.c | 6 | ||||
| -rw-r--r-- | tests/pair1.c | 3 | ||||
| -rw-r--r-- | tests/pipeline.c | 4 | ||||
| -rw-r--r-- | tests/pollfd.c | 53 | ||||
| -rw-r--r-- | tests/pubsub.c | 52 | ||||
| -rw-r--r-- | tests/reconnect.c | 4 | ||||
| -rw-r--r-- | tests/reqrep.c | 3 | ||||
| -rw-r--r-- | tests/resolv.c | 111 | ||||
| -rw-r--r-- | tests/scalability.c | 4 | ||||
| -rw-r--r-- | tests/sock.c | 3 | ||||
| -rw-r--r-- | tests/stubs.h | 47 | ||||
| -rw-r--r-- | tests/survey.c | 4 | ||||
| -rw-r--r-- | tests/tcp.c | 3 | ||||
| -rw-r--r-- | tests/tcp6.c | 3 | ||||
| -rw-r--r-- | tests/trantest.h | 52 | ||||
| -rw-r--r-- | tests/zt.c | 16 |
20 files changed, 357 insertions, 169 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 7cb4786f..3263e0a5 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -61,20 +61,37 @@ if (NNG_TESTS) math (EXPR TEST_PORT "${TEST_PORT}+20") endmacro (add_nng_test) - macro (add_nng_compat_test NAME TIMEOUT) - list (APPEND all_tests ${NAME}) - add_executable (${NAME} ${NAME}.c) - target_link_libraries (${NAME} ${PROJECT_NAME}_static) - target_link_libraries (${NAME} ${NNG_REQUIRED_LIBRARIES}) - target_compile_definitions(${NAME} PUBLIC -DNNG_STATIC_LIB) - if (CMAKE_THREAD_LIBS_INIT) - target_link_libraries (${NAME} "${CMAKE_THREAD_LIBS_INIT}") - endif() + # Compatibility tests are only added if all of the legacy protocols + # are present. It's not worth trying to figure out which of these + # should work and which shouldn't. + if (NNG_PROTO_BUS0 AND + NNG_PROTO_PAIR0 AND + NNG_PROTO_REQ0 AND + NNG_PROTO_REP0 AND + NNG_PROTO_PUB0 AND + NNG_PROTO_SUB0 AND + NNG_PROTO_PUSH0 AND + NNG_PROTO_PULL0) + + macro (add_nng_compat_test NAME TIMEOUT) + list (APPEND all_tests ${NAME}) + add_executable (${NAME} ${NAME}.c) + target_link_libraries (${NAME} ${PROJECT_NAME}_static) + target_link_libraries (${NAME} ${NNG_REQUIRED_LIBRARIES}) + target_compile_definitions(${NAME} PUBLIC -DNNG_STATIC_LIB) + if (CMAKE_THREAD_LIBS_INIT) + target_link_libraries (${NAME} "${CMAKE_THREAD_LIBS_INIT}") + endif() - add_test (NAME ${NAME} COMMAND ${NAME} ${TEST_PORT}) - set_tests_properties (${NAME} PROPERTIES TIMEOUT ${TIMEOUT}) - math (EXPR TEST_PORT "${TEST_PORT}+10") - endmacro (add_nng_compat_test) + add_test (NAME ${NAME} COMMAND ${NAME} ${TEST_PORT}) + set_tests_properties (${NAME} PROPERTIES TIMEOUT ${TIMEOUT}) + math (EXPR TEST_PORT "${TEST_PORT}+10") + endmacro (add_nng_compat_test) + else () + macro (add_nng_compat_test NAME TIMEOUT) + endmacro (add_nng_compat_test) + message (STATUS "Compatibility tests disabled (unconfigured legacy protocols)") + endif () macro (add_nng_cpp_test NAME TIMEOUT) if (NOT NNG_ENABLE_COVERAGE) @@ -130,11 +147,13 @@ add_nng_test(device 5) add_nng_test(errors 2) add_nng_test(pair1 5) add_nng_test(udp 5) -if (NNG_HAVE_ZEROTIER) - add_nng_test(zt 60) -endif() +add_nng_test(zt 60) # compatbility tests +# We only support these if ALL the legacy protocols are supported. This +# is because we don't want to make modifications to partially enable some +# of these tests. Folks minimizing the library probably don't care too +# much about these anyway. add_nng_compat_test(compat_block 5) add_nng_compat_test(compat_bug777 5) add_nng_compat_test(compat_bus 5) diff --git a/tests/aio.c b/tests/aio.c index 2a31319d..0746fa51 100644 --- a/tests/aio.c +++ b/tests/aio.c @@ -11,6 +11,10 @@ #include "convey.h" #include "nng.h" +#include "protocol/pair1/pair.h" + +#include "stubs.h" + #include <string.h> #define APPENDSTR(m, s) nng_msg_append(m, s, strlen(s)) diff --git a/tests/bus.c b/tests/bus.c index 8283bf21..88137b81 100644 --- a/tests/bus.c +++ b/tests/bus.c @@ -11,6 +11,10 @@ #include "convey.h" #include "nng.h" +#include "protocol/bus0/bus.h" + +#include "stubs.h" + #include <string.h> #define APPENDSTR(m, s) nng_msg_append(m, s, strlen(s)) diff --git a/tests/cplusplus_pair.cc b/tests/cplusplus_pair.cc index 54a99737..11ce1912 100644 --- a/tests/cplusplus_pair.cc +++ b/tests/cplusplus_pair.cc @@ -8,59 +8,68 @@ // #include "nng.h" +#include "protocol/pair1/pair.h" #include <cstring> +#include <iostream> #define SOCKET_ADDRESS "inproc://c++" int main(int argc, char **argv) { - nng_socket s1; - nng_socket s2; - int rv; - size_t sz; - char buf[8]; - if ((rv = nng_pair0_open(&s1)) != 0) { - throw nng_strerror(rv); - } - if ((rv = nng_pair0_open(&s2)) != 0) { - throw nng_strerror(rv); - } - if ((rv = nng_listen(s1, SOCKET_ADDRESS, NULL, 0)) != 0) { - throw nng_strerror(rv); - } - if ((rv = nng_dial(s2, SOCKET_ADDRESS, NULL, 0)) != 0) { - throw nng_strerror(rv); - } - if ((rv = nng_send(s2, (void *)"ABC", 4, 0)) != 0) { - throw nng_strerror(rv); - } - sz = sizeof (buf); - if ((rv = nng_recv(s1, buf, &sz, 0)) != 0) { - throw nng_strerror(rv); - } - if ((sz != 4) || (memcmp(buf, "ABC", 4) != 0)) { - throw "Contents did not match"; - } - if ((rv = nng_send(s1, (void *)"DEF", 4, 0)) != 0) { - throw nng_strerror(rv); - } - sz = sizeof (buf); - if ((rv = nng_recv(s2, buf, &sz, 0)) != 0) { - throw nng_strerror(rv); - } - if ((sz != 4) || (memcmp(buf, "DEF", 4) != 0)) { - throw "Contents did not match"; - } - if ((rv = nng_close(s1)) != 0) { - throw nng_strerror(rv); - } - if ((rv = nng_close(s2)) != 0) { - throw nng_strerror(rv); - } +#if defined(NNG_HAVE_PAIR1) - return (0); -} + nng_socket s1; + nng_socket s2; + int rv; + size_t sz; + char buf[8]; + + if ((rv = nng_pair1_open(&s1)) != 0) { + throw nng_strerror(rv); + } + if ((rv = nng_pair1_open(&s2)) != 0) { + throw nng_strerror(rv); + } + if ((rv = nng_listen(s1, SOCKET_ADDRESS, NULL, 0)) != 0) { + throw nng_strerror(rv); + } + if ((rv = nng_dial(s2, SOCKET_ADDRESS, NULL, 0)) != 0) { + throw nng_strerror(rv); + } + if ((rv = nng_send(s2, (void *) "ABC", 4, 0)) != 0) { + throw nng_strerror(rv); + } + sz = sizeof(buf); + if ((rv = nng_recv(s1, buf, &sz, 0)) != 0) { + throw nng_strerror(rv); + } + if ((sz != 4) || (memcmp(buf, "ABC", 4) != 0)) { + throw "Contents did not match"; + } + if ((rv = nng_send(s1, (void *) "DEF", 4, 0)) != 0) { + throw nng_strerror(rv); + } + sz = sizeof(buf); + if ((rv = nng_recv(s2, buf, &sz, 0)) != 0) { + throw nng_strerror(rv); + } + if ((sz != 4) || (memcmp(buf, "DEF", 4) != 0)) { + throw "Contents did not match"; + } + if ((rv = nng_close(s1)) != 0) { + throw nng_strerror(rv); + } + if ((rv = nng_close(s2)) != 0) { + throw nng_strerror(rv); + } + std::cout << "Pass." << std::endl; +#else + std::cout << "Skipped (protocol unconfigured)." << std::endl; +#endif + + return (0); +} diff --git a/tests/device.c b/tests/device.c index 5c650a91..56ad2cb5 100644 --- a/tests/device.c +++ b/tests/device.c @@ -10,6 +10,8 @@ #include "convey.h" #include "nng.h" +#include "protocol/pair1/pair.h" +#include "stubs.h" #include <string.h> @@ -68,8 +70,8 @@ Main({ So(nng_listen(dev1, addr1, NULL, 0) == 0); So(nng_listen(dev2, addr2, NULL, 0) == 0); - So(nng_pair_open(&end1) == 0); - So(nng_pair_open(&end2) == 0); + So(nng_pair1_open(&end1) == 0); + So(nng_pair1_open(&end2) == 0); So(nng_dial(end1, addr1, NULL, 0) == 0); So(nng_dial(end2, addr2, NULL, 0) == 0); diff --git a/tests/pair1.c b/tests/pair1.c index 9ed73037..cd3a1035 100644 --- a/tests/pair1.c +++ b/tests/pair1.c @@ -10,8 +10,11 @@ #include "convey.h" #include "nng.h" +#include "protocol/pair1/pair.h" #include "trantest.h" +#include "stubs.h" + #include <string.h> #define SECOND(x) ((x) *1000) diff --git a/tests/pipeline.c b/tests/pipeline.c index 67be57c6..96ae3d17 100644 --- a/tests/pipeline.c +++ b/tests/pipeline.c @@ -10,6 +10,10 @@ #include "convey.h" #include "nng.h" +#include "protocol/pipeline0/pull.h" +#include "protocol/pipeline0/push.h" +#include "stubs.h" + #include <string.h> #define APPENDSTR(m, s) nng_msg_append(m, s, strlen(s)) diff --git a/tests/pollfd.c b/tests/pollfd.c index e1965b09..8526c705 100644 --- a/tests/pollfd.c +++ b/tests/pollfd.c @@ -8,9 +8,6 @@ // found online at https://opensource.org/licenses/MIT. // -#include "convey.h" -#include "nng.h" - #include <string.h> #ifndef _WIN32 @@ -32,14 +29,21 @@ #endif +#include "convey.h" +#include "nng.h" +#include "protocol/pair1/pair.h" +#include "protocol/pipeline0/pull.h" +#include "protocol/pipeline0/push.h" +#include "stubs.h" + TestMain("Poll FDs", { Convey("Given a connected pair of sockets", { nng_socket s1; nng_socket s2; - So(nng_pair_open(&s1) == 0); - So(nng_pair_open(&s2) == 0); + So(nng_pair1_open(&s1) == 0); + So(nng_pair1_open(&s2) == 0); Reset({ nng_close(s1); nng_close(s2); @@ -106,26 +110,25 @@ TestMain("Poll FDs", { So(nng_getopt(s1, NNG_OPT_RECVFD, &fd, &sz) == 0); So(sz == sizeof(fd)); }); - Convey("We cannot get a send FD for PULL", { - nng_socket s3; - int fd; - size_t sz; - So(nng_pull_open(&s3) == 0); - Reset({ nng_close(s3); }); - sz = sizeof(fd); - So(nng_getopt(s3, NNG_OPT_SENDFD, &fd, &sz) == - NNG_ENOTSUP); - }); + }); - Convey("We cannot get a recv FD for PUSH", { - nng_socket s3; - int fd; - size_t sz; - So(nng_push_open(&s3) == 0); - Reset({ nng_close(s3); }); - sz = sizeof(fd); - So(nng_getopt(s3, NNG_OPT_RECVFD, &fd, &sz) == - NNG_ENOTSUP); - }); + Convey("We cannot get a send FD for PULL", { + nng_socket s3; + int fd; + size_t sz; + So(nng_pull0_open(&s3) == 0); + Reset({ nng_close(s3); }); + sz = sizeof(fd); + So(nng_getopt(s3, NNG_OPT_SENDFD, &fd, &sz) == NNG_ENOTSUP); + }); + + Convey("We cannot get a recv FD for PUSH", { + nng_socket s3; + int fd; + size_t sz; + So(nng_push0_open(&s3) == 0); + Reset({ nng_close(s3); }); + sz = sizeof(fd); + So(nng_getopt(s3, NNG_OPT_RECVFD, &fd, &sz) == NNG_ENOTSUP); }); }) diff --git a/tests/pubsub.c b/tests/pubsub.c index a8209a7d..796d951e 100644 --- a/tests/pubsub.c +++ b/tests/pubsub.c @@ -10,6 +10,9 @@ #include "convey.h" #include "nng.h" +#include "protocol/pubsub0/pub.h" +#include "protocol/pubsub0/sub.h" +#include "stubs.h" #include <string.h> @@ -34,6 +37,16 @@ TestMain("PUB/SUB pattern", { nng_msg *msg; So(nng_recvmsg(pub, &msg, 0) == NNG_ENOTSUP); }); + + Convey("It cannot subscribe", { + So(nng_setopt(pub, NNG_OPT_SUB_SUBSCRIBE, "", 0) == + NNG_ENOTSUP); + }); + + Convey("It cannot unsubscribe", { + So(nng_setopt(pub, NNG_OPT_SUB_UNSUBSCRIBE, "", 0) == + NNG_ENOTSUP); + }); }); Convey("We can create a SUB socket", { @@ -48,6 +61,23 @@ TestMain("PUB/SUB pattern", { So(nng_sendmsg(sub, msg, 0) == NNG_ENOTSUP); nng_msg_free(msg); }); + + Convey("It can subscribe", { + So(nng_setopt(sub, NNG_OPT_SUB_SUBSCRIBE, "ABC", 3) == + 0); + So(nng_setopt(sub, NNG_OPT_SUB_SUBSCRIBE, "", 0) == 0); + Convey("And it can unsubscribe", { + So(nng_setopt(sub, NNG_OPT_SUB_UNSUBSCRIBE, + "ABC", 3) == 0); + So(nng_setopt(sub, NNG_OPT_SUB_UNSUBSCRIBE, "", + 0) == 0); + + So(nng_setopt(sub, NNG_OPT_SUB_UNSUBSCRIBE, "", + 0) == NNG_ENOENT); + So(nng_setopt(sub, NNG_OPT_SUB_UNSUBSCRIBE, + "HELLO", 0) == NNG_ENOENT); + }); + }); }); Convey("We can create a linked PUB/SUB pair", { @@ -73,28 +103,6 @@ TestMain("PUB/SUB pattern", { nng_msleep(20); // give time for connecting threads - Convey("Sub can subscribe", { - So(nng_setopt(sub, NNG_OPT_SUB_SUBSCRIBE, "ABC", 3) == - 0); - So(nng_setopt(sub, NNG_OPT_SUB_SUBSCRIBE, "", 0) == 0); - Convey("Unsubscribe works", { - So(nng_setopt(sub, NNG_OPT_SUB_UNSUBSCRIBE, - "ABC", 3) == 0); - So(nng_setopt(sub, NNG_OPT_SUB_UNSUBSCRIBE, "", - 0) == 0); - - So(nng_setopt(sub, NNG_OPT_SUB_UNSUBSCRIBE, "", - 0) == NNG_ENOENT); - So(nng_setopt(sub, NNG_OPT_SUB_UNSUBSCRIBE, - "HELLO", 0) == NNG_ENOENT); - }); - }); - - Convey("Pub cannot subscribe", { - So(nng_setopt(pub, NNG_OPT_SUB_SUBSCRIBE, "", 0) == - NNG_ENOTSUP); - }); - Convey("Subs can receive from pubs", { nng_msg *msg; diff --git a/tests/reconnect.c b/tests/reconnect.c index 8179055d..e191f70a 100644 --- a/tests/reconnect.c +++ b/tests/reconnect.c @@ -10,6 +10,10 @@ #include "convey.h" #include "nng.h" +#include "protocol/pipeline0/pull.h" +#include "protocol/pipeline0/push.h" +#include "stubs.h" + #include <string.h> #define APPENDSTR(m, s) nng_msg_append(m, s, strlen(s)) diff --git a/tests/reqrep.c b/tests/reqrep.c index df0621bc..4e837c34 100644 --- a/tests/reqrep.c +++ b/tests/reqrep.c @@ -10,6 +10,9 @@ #include "convey.h" #include "nng.h" +#include "protocol/reqrep0/rep.h" +#include "protocol/reqrep0/req.h" +#include "stubs.h" #include <string.h> diff --git a/tests/resolv.c b/tests/resolv.c index 49d258c3..0678b05f 100644 --- a/tests/resolv.c +++ b/tests/resolv.c @@ -51,26 +51,6 @@ ip6tostr(void *addr) // too much on them, since localhost can be configured weirdly. Notably // the normal assumptions on Linux do *not* hold true. #if 0 - - Convey("Localhost IPv4 resolves", { - nni_aio aio; - const char *str; - memset(&aio, 0, sizeof (aio)); - nni_aio_init(&aio, NULL, NULL); - nni_plat_tcp_resolv("localhost", "80", NNG_AF_INET, 1, - &aio); - nni_aio_wait(&aio); - So(nni_aio_result(&aio) == 0); - So(aio.a_naddrs == 1); - So(aio.a_addrs[0].s_un.s_in.sa_family == NNG_AF_INET); - So(aio.a_addrs[0].s_un.s_in.sa_port == ntohs(80)); - So(aio.a_addrs[0].s_un.s_in.sa_addr == ntohl(0x7f000001)); - str = ip4tostr(&aio.a_addrs[0].s_un.s_in.sa_addr); - So(strcmp(str, "127.0.0.1") == 0); - nni_aio_fini(&aio); - } - ); - Convey("Localhost IPv6 resolves", { nni_aio aio; memset(&aio, 0, sizeof (aio)); @@ -87,44 +67,6 @@ ip6tostr(void *addr) So(strcmp(str, "::1") == 0); nni_aio_fini(&aio); } - ); - Convey("Localhost UNSPEC resolves", { - nni_aio aio; - memset(&aio, 0, sizeof (aio)); - const char *str; - int i; - nni_aio_init(&aio, NULL, NULL); - nni_plat_tcp_resolv("localhost", "80", NNG_AF_UNSPEC, 1, - &aio); - nni_aio_wait(&aio); - So(nni_aio_result(&aio) == 0); - So(aio.a_naddrs == 2); - for (i = 0; i < 2; i++) { - switch (aio.a_addrs[i].s_un.s_family) { - case NNG_AF_INET6: - So(aio.a_addrs[i].s_un.s_in6.sa_port == - ntohs(80)); - str = - ip6tostr(&aio.a_addrs[i].s_un.s_in6.sa_addr); - So(strcmp(str, "::1") == 0); - break; - - case NNG_AF_INET: - So(aio.a_addrs[i].s_un.s_in.sa_port == - ntohs(80)); - str = - ip4tostr(&aio.a_addrs[i].s_un.s_in.sa_addr); - So(strcmp(str, "127.0.0.1") == 0); - break; - default: - So(1 == 0); - } - } - So(aio.a_addrs[0].s_un.s_family != - aio.a_addrs[1].s_un.s_family); - nni_aio_fini(&aio); - } - ); #endif TestMain("Resolver", { @@ -179,11 +121,18 @@ TestMain("Resolver", { So(strcmp(str, "8.8.4.4") == 0); nni_aio_fini(aio); }); + Convey("Numeric v6 resolves", { nni_aio * aio; const char * str; nng_sockaddr sa; + // Travis CI has moved some of their services to host that + // apparently don't support IPv6 at all. This is very sad. + if (getenv("TRAVIS") != NULL) { + ConveySkip("IPv6 missing from CI provider"); + } + nni_aio_init(&aio, NULL, NULL); aio->a_addr = &sa; nni_plat_tcp_resolv("::1", "80", NNG_AF_INET6, 1, aio); @@ -230,5 +179,51 @@ TestMain("Resolver", { nni_aio_fini(aio); }); + Convey("Localhost IPv4 resolves", { + nni_aio * aio; + const char * str; + nng_sockaddr sa; + + nni_aio_init(&aio, NULL, NULL); + aio->a_addr = &sa; + nni_plat_tcp_resolv("localhost", "80", NNG_AF_INET, 1, aio); + nni_aio_wait(aio); + So(nni_aio_result(aio) == 0); + So(sa.s_un.s_in.sa_family == NNG_AF_INET); + So(sa.s_un.s_in.sa_port == ntohs(80)); + So(sa.s_un.s_in.sa_addr == ntohl(0x7f000001)); + str = ip4tostr(&sa.s_un.s_in.sa_addr); + So(strcmp(str, "127.0.0.1") == 0); + nni_aio_fini(aio); + }); + + Convey("Localhost UNSPEC resolves", { + nni_aio * aio; + const char * str; + nng_sockaddr sa; + + nni_aio_init(&aio, NULL, NULL); + aio->a_addr = &sa; + nni_plat_tcp_resolv("localhost", "80", NNG_AF_UNSPEC, 1, aio); + nni_aio_wait(aio); + So(nni_aio_result(aio) == 0); + So((sa.s_un.s_family == NNG_AF_INET) || + (sa.s_un.s_family == NNG_AF_INET6)); + switch (sa.s_un.s_family) { + case NNG_AF_INET: + So(sa.s_un.s_in.sa_port == ntohs(80)); + So(sa.s_un.s_in.sa_addr == ntohl(0x7f000001)); + str = ip4tostr(&sa.s_un.s_in.sa_addr); + So(strcmp(str, "127.0.0.1") == 0); + break; + case NNG_AF_INET6: + So(sa.s_un.s_in6.sa_port == ntohs(80)); + str = ip6tostr(&sa.s_un.s_in6.sa_addr); + So(strcmp(str, "::1") == 0); + break; + } + nni_aio_fini(aio); + }); + nni_fini(); }) diff --git a/tests/scalability.c b/tests/scalability.c index b1a9b767..d869d5fc 100644 --- a/tests/scalability.c +++ b/tests/scalability.c @@ -11,6 +11,10 @@ #include "convey.h" #include "nng.h" +#include "protocol/reqrep0/rep.h" +#include "protocol/reqrep0/req.h" +#include "stubs.h" + #include <string.h> static int nclients = 200; diff --git a/tests/sock.c b/tests/sock.c index 1c277b46..d3af414a 100644 --- a/tests/sock.c +++ b/tests/sock.c @@ -12,6 +12,9 @@ #include "nng.h" #include "trantest.h" +#include "protocol/pubsub0/sub.h" + +#include "protocol/pair1/pair.h" #include "stubs.h" #include <string.h> diff --git a/tests/stubs.h b/tests/stubs.h index 780ac772..0641c970 100644 --- a/tests/stubs.h +++ b/tests/stubs.h @@ -44,4 +44,51 @@ getms(void) #endif } +int +nosocket(nng_socket *s) +{ + ConveySkip("Protocol unconfigured"); + return (NNG_ENOTSUP); +} + +#ifndef NNG_HAVE_REQ0 +#define nng_req0_open nosocket +#endif + +#ifndef NNG_HAVE_REP0 +#define nng_rep0_open nosocket +#endif + +#ifndef NNG_HAVE_PUB0 +#define nng_pub0_open nosocket +#endif + +#ifndef NNG_HAVE_SUB0 +#define nng_sub0_open nosocket +#endif + +#ifndef NNG_HAVE_PAIR0 +#define nng_pair0_open nosocket +#endif + +#ifndef NNG_HAVE_PAIR1 +#define nng_pair1_open nosocket +#endif + +#ifndef NNG_HAVE_PUSH0 +#define nng_push0_open nosocket +#endif + +#ifndef NNG_HAVE_PULL0 +#define nng_pull0_open nosocket +#endif + +#ifndef NNG_HAVE_SURVEYOR0 +#define nng_surveyor0_open nosocket +#endif + +#ifndef NNG_HAVE_RESPONDENT0 +#define nng_respondent0_open nosocket +#endif + #endif // STUBS_H diff --git a/tests/survey.c b/tests/survey.c index f4fab009..a3a7ba1d 100644 --- a/tests/survey.c +++ b/tests/survey.c @@ -9,7 +9,11 @@ // #include "convey.h" + #include "nng.h" +#include "protocol/survey0/respond.h" +#include "protocol/survey0/survey.h" +#include "stubs.h" #include <string.h> diff --git a/tests/tcp.c b/tests/tcp.c index 79fe1893..fdcf458c 100644 --- a/tests/tcp.c +++ b/tests/tcp.c @@ -9,8 +9,11 @@ // #include "convey.h" +#include "nng.h" +#include "protocol/pair1/pair.h" #include "trantest.h" +#include "stubs.h" // TCP tests. #ifndef _WIN32 diff --git a/tests/tcp6.c b/tests/tcp6.c index b1695c84..a3e55d18 100644 --- a/tests/tcp6.c +++ b/tests/tcp6.c @@ -13,6 +13,9 @@ #include "core/nng_impl.h" // TCP tests for IPv6. +#include "protocol/pair1/pair.h" + +#include "stubs.h" static int has_v6(void) diff --git a/tests/trantest.h b/tests/trantest.h index 37763d24..d334c257 100644 --- a/tests/trantest.h +++ b/tests/trantest.h @@ -11,6 +11,8 @@ #include "convey.h" #include "core/nng_impl.h" #include "nng.h" +#include "protocol/reqrep0/rep.h" +#include "protocol/reqrep0/req.h" #include <stdlib.h> #include <string.h> @@ -30,9 +32,54 @@ unsigned trantest_port = 0; typedef int (*trantest_proptest_t)(nng_msg *, nng_listener, nng_dialer); +#ifndef NNG_HAVE_ZEROTIER +#define nng_zt_register notransport +#endif +#ifndef NNG_HAVE_INPROC +#define nng_inproc_register notransport +#endif +#ifndef NNG_HAVE_IPC +#define nng_ipc_register notransport +#endif +#ifndef NNG_HAVE_TCP +#define nng_tcp_register notransport +#endif + +int +notransport(void) +{ + ConveySkip("Transport not configured"); + return (NNG_ENOTSUP); +} + +#define CHKTRAN(s, t) \ + if (strncmp(s, t, strlen(t)) == 0) \ + notransport() + +void +trantest_checktran(const char *url) +{ +#ifndef NNG_HAVE_ZEROTIER + CHKTRAN(url, "zt:"); +#endif +#ifndef NNG_HAVE_INPROC + CHKTRAN(url, "inproc:"); +#endif +#ifndef NNG_HAVE_IPC + CHKTRAN(url, "ipc:"); +#endif +#ifndef NNG_HAVE_TCP + CHKTRAN(url, "tcp:"); +#endif + + (void) url; +} + void trantest_next_address(char *out, const char *template) { + trantest_checktran(template); + if (trantest_port == 0) { char *pstr; trantest_port = 5555; @@ -56,11 +103,16 @@ void trantest_init(trantest *tt, const char *addr) { trantest_next_address(tt->addr, addr); + +#if defined(NNG_HAVE_REQ0) && defined(NNG_HAVE_REP0) So(nng_req_open(&tt->reqsock) == 0); So(nng_rep_open(&tt->repsock) == 0); tt->tran = nni_tran_find(addr); So(tt->tran != NULL); +#else + ConveySkip("Missing REQ or REP protocols"); +#endif } void @@ -9,9 +9,12 @@ // #include "convey.h" +#include "nng.h" +#include "protocol/pair0/pair.h" +#include "transport/zerotier/zerotier.h" #include "trantest.h" -#include "transport/zerotier/zerotier.h" +#include "stubs.h" // zerotier tests. @@ -35,6 +38,10 @@ mkdir(const char *path, int mode) #include <unistd.h> #endif // WIN32 +#ifndef NNG_HAVE_ZEROTIER +#define nng_zt_network_status_ok 0 +#endif + static int check_props(nng_msg *msg, nng_listener l, nng_dialer d) { @@ -197,6 +204,8 @@ TestMain("ZeroTier Transport", { char addr[NNG_MAXADDRLEN]; int rv; + So(nng_zt_register() == 0); + snprintf(addr, sizeof(addr), "zt://" NWID ":%u", port); So(nng_pair_open(&s) == 0); @@ -240,6 +249,8 @@ TestMain("ZeroTier Transport", { // uint64_t node = 0xb000072fa6ull; // my personal host uint64_t node = 0x2d2f619cccull; // my personal host + So(nng_zt_register() == 0); + snprintf(addr, sizeof(addr), "zt://" NWID "/%llx:%u", (unsigned long long) node, port); @@ -258,6 +269,8 @@ TestMain("ZeroTier Transport", { uint64_t node1 = 0; uint64_t node2 = 0; + So(nng_zt_register() == 0); + snprintf(addr, sizeof(addr), "zt://" NWID ":%u", port); So(nng_pair_open(&s) == 0); @@ -306,6 +319,7 @@ TestMain("ZeroTier Transport", { port = 9944; // uint64_t node = 0xb000072fa6ull; // my personal host + So(nng_zt_register() == 0); snprintf(addr1, sizeof(addr1), "zt://" NWID ":%u", port); |
