aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2019-01-21 22:40:10 -0800
committerGarrett D'Amore <garrett@damore.org>2019-02-16 19:22:27 -0800
commit5cf750697624d4fd63cfe26921209d7c30e1a2d2 (patch)
treebf11695e5f1ec5e400c87da0cc6ff23935a2eeff /tests
parentca655b9db689ee0e655248b1a9f166b8db6cc984 (diff)
downloadnng-5cf750697624d4fd63cfe26921209d7c30e1a2d2.tar.gz
nng-5cf750697624d4fd63cfe26921209d7c30e1a2d2.tar.bz2
nng-5cf750697624d4fd63cfe26921209d7c30e1a2d2.zip
fixes #872 create unified nng_stream API
This is a major change, and includes changes to use a polymorphic stream API for all transports. There have been related bugs fixed along the way. Additionally the man pages have changed. The old non-polymorphic APIs are removed now. This is a breaking change, but the old APIs were never part of any released public API.
Diffstat (limited to 'tests')
-rw-r--r--tests/ipcsupp.c75
-rw-r--r--tests/resolv.c16
-rw-r--r--tests/stubs.h9
-rw-r--r--tests/tcpsupp.c99
4 files changed, 103 insertions, 96 deletions
diff --git a/tests/ipcsupp.c b/tests/ipcsupp.c
index 41f6468d..bb7d92f7 100644
--- a/tests/ipcsupp.c
+++ b/tests/ipcsupp.c
@@ -12,46 +12,38 @@
#include <string.h>
#include <nng/nng.h>
-#include <nng/supplemental/ipc/ipc.h>
#include "convey.h"
#include "stubs.h"
-static uint8_t loopback[4] = { 127, 0, 0, 1 };
-static int num = 0;
+static int num = 0;
TestMain("Supplemental IPC", {
atexit(nng_fini);
Convey("We can create a dialer and listener", {
- nng_ipc_dialer * d;
- nng_ipc_listener *l;
- So(nng_ipc_dialer_alloc(&d) == 0);
- So(nng_ipc_listener_alloc(&l) == 0);
+ nng_stream_dialer * d;
+ nng_stream_listener *l;
+ char url[64];
+
+ snprintf(url, sizeof(url), "ipc:///tmp/ipcsupp_test%d", num);
+ num++;
+ So(nng_stream_dialer_alloc(&d, url) == 0);
+ So(nng_stream_listener_alloc(&l, url) == 0);
Reset({
- nng_ipc_listener_close(l);
- nng_ipc_dialer_close(d);
- nng_ipc_listener_free(l);
- nng_ipc_dialer_free(d);
+ nng_stream_listener_close(l);
+ nng_stream_dialer_close(d);
+ nng_stream_listener_free(l);
+ nng_stream_dialer_free(d);
});
- Convey("Listener listens (wildcard)", {
- nng_sockaddr sa;
- uint32_t ip;
-
- memcpy(&ip, loopback, 4);
-
- num++;
- sa.s_ipc.sa_family = NNG_AF_IPC;
- snprintf(sa.s_ipc.sa_path, sizeof(sa.s_ipc.sa_path),
- "/tmp/ipc_supp_test%d", num);
-
- So(nng_ipc_listener_listen(l, &sa) == 0);
+ Convey("Listener listens", {
+ So(nng_stream_listener_listen(l) == 0);
Convey("We can dial it", {
- nng_aio *daio = NULL;
- nng_aio *laio = NULL;
- nng_aio *maio = NULL;
- nng_ipc *c1 = NULL;
- nng_ipc *c2 = NULL;
+ nng_aio * daio = NULL;
+ nng_aio * laio = NULL;
+ nng_aio * maio = NULL;
+ nng_stream *c1 = NULL;
+ nng_stream *c2 = NULL;
So(nng_aio_alloc(&daio, NULL, NULL) == 0);
So(nng_aio_alloc(&laio, NULL, NULL) == 0);
@@ -61,17 +53,17 @@ TestMain("Supplemental IPC", {
nng_aio_free(daio);
nng_aio_free(laio);
if (c1 != NULL) {
- nng_ipc_close(c1);
- nng_ipc_free(c1);
+ nng_stream_close(c1);
+ nng_stream_free(c1);
}
if (c2 != NULL) {
- nng_ipc_close(c2);
- nng_ipc_free(c2);
+ nng_stream_close(c2);
+ nng_stream_free(c2);
}
});
- nng_ipc_dialer_dial(d, &sa, daio);
- nng_ipc_listener_accept(l, laio);
+ nng_stream_dialer_dial(d, daio);
+ nng_stream_listener_accept(l, laio);
nng_aio_wait(daio);
nng_aio_wait(laio);
@@ -117,8 +109,8 @@ TestMain("Supplemental IPC", {
iov.iov_buf = buf2;
iov.iov_len = 5;
nng_aio_set_iov(aio2, 1, &iov);
- nng_ipc_send(c1, aio1);
- nng_ipc_recv(c2, aio2);
+ nng_stream_send(c1, aio1);
+ nng_stream_recv(c2, aio2);
nng_aio_wait(aio1);
nng_aio_wait(aio2);
@@ -131,14 +123,15 @@ TestMain("Supplemental IPC", {
So(memcmp(buf1, buf2, 5) == 0);
Convey("Socket name matches", {
- size_t rsz = sizeof(sa2);
- So(nng_ipc_getopt(c2,
- NNG_OPT_LOCADDR, &sa2,
- &rsz) == 0);
+ So(nng_stream_get_addr(c2,
+ NNG_OPT_LOCADDR,
+ &sa2) == 0);
So(sa2.s_ipc.sa_family ==
NNG_AF_IPC);
So(strcmp(sa2.s_ipc.sa_path,
- sa.s_ipc.sa_path) == 0);
+ url +
+ strlen("ipc://")) ==
+ 0);
});
});
});
diff --git a/tests/resolv.c b/tests/resolv.c
index 954481b7..bcfb78a4 100644
--- a/tests/resolv.c
+++ b/tests/resolv.c
@@ -77,11 +77,11 @@ TestMain("Resolver", {
nng_sockaddr sa;
So(nng_aio_alloc(&aio, NULL, NULL) == 0);
- nng_aio_set_input(aio, 0, &sa);
nni_tcp_resolv("google-public-dns-a.google.com", "80",
NNG_AF_INET, 1, aio);
nng_aio_wait(aio);
So(nng_aio_result(aio) == 0);
+ nni_aio_get_sockaddr(aio, &sa);
So(sa.s_in.sa_family == NNG_AF_INET);
So(sa.s_in.sa_port == ntohs(80));
str = ip4tostr(&sa.s_in.sa_addr);
@@ -94,10 +94,10 @@ TestMain("Resolver", {
nng_sockaddr sa;
So(nng_aio_alloc(&aio, NULL, NULL) == 0);
- nng_aio_set_input(aio, 0, &sa);
nni_udp_resolv("8.8.4.4", "69", NNG_AF_INET, 1, aio);
nng_aio_wait(aio);
So(nng_aio_result(aio) == 0);
+ nni_aio_get_sockaddr(aio, &sa);
So(sa.s_in.sa_family == NNG_AF_INET);
So(sa.s_in.sa_port == ntohs(69));
str = ip4tostr(&sa.s_in.sa_addr);
@@ -110,10 +110,10 @@ TestMain("Resolver", {
nng_sockaddr sa;
So(nng_aio_alloc(&aio, NULL, NULL) == 0);
- nng_aio_set_input(aio, 0, &sa);
nni_tcp_resolv("8.8.4.4", "80", NNG_AF_INET, 1, aio);
nng_aio_wait(aio);
So(nng_aio_result(aio) == 0);
+ nni_aio_get_sockaddr(aio, &sa);
So(sa.s_in.sa_family == NNG_AF_INET);
So(sa.s_in.sa_port == ntohs(80));
str = ip4tostr(&sa.s_in.sa_addr);
@@ -135,10 +135,10 @@ TestMain("Resolver", {
}
So(nng_aio_alloc(&aio, NULL, NULL) == 0);
- nng_aio_set_input(aio, 0, &sa);
nni_tcp_resolv("::1", "80", NNG_AF_INET6, 1, aio);
nng_aio_wait(aio);
So(nng_aio_result(aio) == 0);
+ nni_aio_get_sockaddr(aio, &sa);
So(sa.s_in6.sa_family == NNG_AF_INET6);
So(sa.s_in6.sa_port == ntohs(80));
str = ip6tostr(&sa.s_in6.sa_addr);
@@ -147,11 +147,9 @@ TestMain("Resolver", {
});
Convey("Name service names not supported", {
- nng_aio * aio;
- nng_sockaddr sa;
+ nng_aio *aio;
So(nng_aio_alloc(&aio, NULL, NULL) == 0);
- nng_aio_set_input(aio, 0, &sa);
nni_tcp_resolv("8.8.4.4", "http", NNG_AF_INET, 1, aio);
nng_aio_wait(aio);
So(nng_aio_result(aio) == NNG_EADDRINVAL);
@@ -164,10 +162,10 @@ TestMain("Resolver", {
nng_sockaddr sa;
So(nng_aio_alloc(&aio, NULL, NULL) == 0);
- nng_aio_set_input(aio, 0, &sa);
nni_tcp_resolv("localhost", "80", NNG_AF_INET, 1, aio);
nng_aio_wait(aio);
So(nng_aio_result(aio) == 0);
+ nni_aio_get_sockaddr(aio, &sa);
So(sa.s_in.sa_family == NNG_AF_INET);
So(sa.s_in.sa_port == ntohs(80));
So(sa.s_in.sa_addr == ntohl(0x7f000001));
@@ -182,10 +180,10 @@ TestMain("Resolver", {
nng_sockaddr sa;
So(nng_aio_alloc(&aio, NULL, NULL) == 0);
- nng_aio_set_input(aio, 0, &sa);
nni_tcp_resolv("localhost", "80", NNG_AF_UNSPEC, 1, aio);
nng_aio_wait(aio);
So(nng_aio_result(aio) == 0);
+ nni_aio_get_sockaddr(aio, &sa);
So((sa.s_family == NNG_AF_INET) ||
(sa.s_family == NNG_AF_INET6));
switch (sa.s_family) {
diff --git a/tests/stubs.h b/tests/stubs.h
index c34bed7a..a8fa59e9 100644
--- a/tests/stubs.h
+++ b/tests/stubs.h
@@ -85,6 +85,15 @@ nosocket(nng_socket *s)
return (NNG_ENOTSUP);
}
+uint16_t
+test_htons(uint16_t in)
+{
+#ifdef NNG_LITTLE_ENDIAN
+ in = ((in >> 8) & 0xff) | ((in & 0xff) << 8);
+#endif
+ return (in);
+}
+
#ifndef NNG_HAVE_REQ0
#define nng_req0_open nosocket
#endif
diff --git a/tests/tcpsupp.c b/tests/tcpsupp.c
index 1f91a60c..e25383c5 100644
--- a/tests/tcpsupp.c
+++ b/tests/tcpsupp.c
@@ -11,52 +11,54 @@
#include <string.h>
#include <nng/nng.h>
-#include <nng/supplemental/tcp/tcp.h>
#include "convey.h"
#include "stubs.h"
-static uint8_t loopback[4] = { 127, 0, 0, 1 };
-
TestMain("Supplemental TCP", {
atexit(nng_fini);
Convey("We can create a dialer and listener", {
- nng_tcp_dialer * d;
- nng_tcp_listener *l;
- So(nng_tcp_dialer_alloc(&d) == 0);
- So(nng_tcp_listener_alloc(&l) == 0);
+ nng_stream_dialer * d = NULL;
+ nng_stream_listener *l = NULL;
Reset({
- nng_tcp_listener_close(l);
- nng_tcp_dialer_close(d);
- nng_tcp_listener_free(l);
- nng_tcp_dialer_free(d);
+ nng_stream_listener_free(l);
+ nng_stream_dialer_free(d);
+ l = NULL;
+ d = NULL;
});
Convey("Listener listens (wildcard)", {
nng_sockaddr sa;
- uint32_t ip;
size_t sz;
-
- memcpy(&ip, loopback, 4);
-
- sa.s_in.sa_family = NNG_AF_INET;
- sa.s_in.sa_addr = ip;
- sa.s_in.sa_port = 0;
- sz = sizeof(sa);
-
- So(nng_tcp_listener_listen(l, &sa) == 0);
- So(nng_tcp_listener_getopt(
+ uint8_t ip[4];
+
+ So(nng_stream_listener_alloc(&l, "tcp://127.0.0.1") ==
+ 0);
+ So(nng_stream_listener_listen(l) == 0);
+
+ sz = sizeof(sa);
+ ip[0] = 127;
+ ip[1] = 0;
+ ip[2] = 0;
+ ip[3] = 1;
+ So(nng_stream_listener_get(
l, NNG_OPT_LOCADDR, &sa, &sz) == 0);
So(sz == sizeof(sa));
So(sa.s_in.sa_port != 0);
- So(sa.s_in.sa_addr == ip);
+ So(memcmp(&sa.s_in.sa_addr, ip, 4) == 0);
Convey("We can dial it", {
- nng_aio *daio = NULL;
- nng_aio *laio = NULL;
- nng_aio *maio = NULL;
- nng_tcp *c1 = NULL;
- nng_tcp *c2 = NULL;
-
+ nng_aio * daio = NULL;
+ nng_aio * laio = NULL;
+ nng_aio * maio = NULL;
+ nng_stream *c1 = NULL;
+ nng_stream *c2 = NULL;
+
+ char uri[64];
+ snprintf(uri, sizeof(uri),
+ "tcp://127.0.0.1:%d",
+ test_htons(sa.s_in.sa_port));
+
+ So(nng_stream_dialer_alloc(&d, uri) == 0);
So(nng_aio_alloc(&daio, NULL, NULL) == 0);
So(nng_aio_alloc(&laio, NULL, NULL) == 0);
So(nng_aio_alloc(&maio, NULL, NULL) == 0);
@@ -65,20 +67,22 @@ TestMain("Supplemental TCP", {
nng_aio_free(daio);
nng_aio_free(laio);
if (c1 != NULL) {
- nng_tcp_close(c1);
- nng_tcp_free(c1);
+ nng_stream_close(c1);
+ nng_stream_free(c1);
}
if (c2 != NULL) {
- nng_tcp_close(c2);
- nng_tcp_free(c2);
+ nng_stream_close(c2);
+ nng_stream_free(c2);
}
});
- nng_tcp_dialer_dial(d, &sa, daio);
- nng_tcp_listener_accept(l, laio);
+ nng_stream_dialer_dial(d, daio);
+ nng_stream_listener_accept(l, laio);
nng_aio_wait(daio);
+ So(nng_aio_result(daio) == 0);
nng_aio_wait(laio);
+ So(nng_aio_result(laio) == 0);
So(nng_aio_result(daio) == 0);
So(nng_aio_result(laio) == 0);
@@ -109,20 +113,20 @@ TestMain("Supplemental TCP", {
});
on = true;
- So(nng_tcp_setopt(c1,
+ So(nng_stream_set(c1,
NNG_OPT_TCP_NODELAY, &on,
sizeof(on)) == 0);
- So(nng_tcp_setopt(c2,
+ So(nng_stream_set(c2,
NNG_OPT_TCP_NODELAY, &on,
sizeof(on)) == 0);
- So(nng_tcp_setopt(c1,
+ So(nng_stream_set(c1,
NNG_OPT_TCP_KEEPALIVE, &on,
sizeof(on)) == 0);
on = false;
sz = sizeof(on);
- So(nng_tcp_getopt(c1,
+ So(nng_stream_get(c1,
NNG_OPT_TCP_NODELAY, &on,
&sz) == 0);
So(sz == sizeof(on));
@@ -130,7 +134,7 @@ TestMain("Supplemental TCP", {
on = false;
sz = sizeof(on);
- So(nng_tcp_getopt(c1,
+ So(nng_stream_get(c1,
NNG_OPT_TCP_KEEPALIVE, &on,
&sz) == 0);
So(sz == sizeof(on));
@@ -151,8 +155,8 @@ TestMain("Supplemental TCP", {
iov.iov_buf = buf2;
iov.iov_len = 5;
nng_aio_set_iov(aio2, 1, &iov);
- nng_tcp_send(c1, aio1);
- nng_tcp_recv(c2, aio2);
+ nng_stream_send(c1, aio1);
+ nng_stream_recv(c2, aio2);
nng_aio_wait(aio1);
nng_aio_wait(aio2);
@@ -166,26 +170,29 @@ TestMain("Supplemental TCP", {
Convey("Socket name matches", {
sz = sizeof(sa2);
- So(nng_tcp_getopt(c2,
+ So(nng_stream_get(c2,
NNG_OPT_LOCADDR, &sa2,
&sz) == 0);
So(sz == sizeof(sa2));
So(sa2.s_in.sa_family ==
NNG_AF_INET);
- So(sa2.s_in.sa_addr == ip);
+
+ So(sa2.s_in.sa_addr ==
+ sa.s_in.sa_addr);
So(sa2.s_in.sa_port ==
sa.s_in.sa_port);
});
Convey("Peer name matches", {
sz = sizeof(sa2);
- So(nng_tcp_getopt(c1,
+ So(nng_stream_get(c1,
NNG_OPT_REMADDR, &sa2,
&sz) == 0);
So(sz == sizeof(sa2));
So(sa2.s_in.sa_family ==
NNG_AF_INET);
- So(sa2.s_in.sa_addr == ip);
+ So(sa2.s_in.sa_addr ==
+ sa.s_in.sa_addr);
So(sa2.s_in.sa_port ==
sa.s_in.sa_port);
});