aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2018-12-29 18:54:22 -0800
committerGarrett D'Amore <garrett@damore.org>2018-12-29 18:54:22 -0800
commit27b7827532abcbdbecc54795da5b5ac66e7f5e9f (patch)
tree7c8fad19dbb874af35324603204aae87f93d63b8 /tests
parent5b35daaf2fe6c6fbe0b15740efbffe16ff278e6c (diff)
downloadnng-27b7827532abcbdbecc54795da5b5ac66e7f5e9f.tar.gz
nng-27b7827532abcbdbecc54795da5b5ac66e7f5e9f.tar.bz2
nng-27b7827532abcbdbecc54795da5b5ac66e7f5e9f.zip
progress on IPC endpoints
Diffstat (limited to 'tests')
-rw-r--r--tests/ipc.c52
1 files changed, 51 insertions, 1 deletions
diff --git a/tests/ipc.c b/tests/ipc.c
index be37338e..783529ff 100644
--- a/tests/ipc.c
+++ b/tests/ipc.c
@@ -17,12 +17,13 @@
#endif
#include <nng/nng.h>
+#include <nng/protocol/reqrep0/req.h>
#include <nng/transport/ipc/ipc.h>
#include "convey.h"
#include "trantest.h"
-// Inproc tests.
+// IPC tests.
static int
check_props(nng_msg *msg)
{
@@ -83,5 +84,54 @@ check_props(nng_msg *msg)
TestMain("IPC Transport", {
trantest_test_extended("ipc:///tmp/nng_ipc_test_%u", check_props);
+ Convey("IPC listener properties", {
+ nng_socket s;
+ nng_listener l;
+ nng_sockaddr sa2;
+ size_t z;
+
+ So(nng_req0_open(&s) == 0);
+ Reset({ nng_close(s); });
+ So(nng_listen(s, "ipc:///tmp/nng_ipc_addr_test", &l, 0) == 0);
+ So(nng_listener_getopt_sockaddr(l, NNG_OPT_LOCADDR, &sa2) ==
+ 0);
+ So(sa2.s_ipc.sa_family == NNG_AF_IPC);
+ So(strcmp(sa2.s_ipc.sa_path, "/tmp/nng_ipc_addr_test") == 0);
+
+ So(nng_listener_setopt(l, NNG_OPT_LOCADDR, &sa2,
+ sizeof(sa2)) == NNG_EREADONLY);
+ z = 8192;
+ So(nng_listener_setopt_size(l, NNG_OPT_RECVMAXSZ, z) == 0);
+ z = 0;
+ So(nng_listener_getopt_size(l, NNG_OPT_RECVMAXSZ, &z) == 0);
+ So(z == 8192);
+ So(nng_listener_setopt_bool(l, NNG_OPT_RAW, true) ==
+ NNG_ENOTSUP);
+ });
+ Convey("IPC dialer properties", {
+ nng_socket s;
+ nng_dialer d;
+ nng_sockaddr sa2;
+ size_t z;
+
+ So(nng_req0_open(&s) == 0);
+ Reset({ nng_close(s); });
+ So(nng_dial(s, "ipc:///tmp/nng_ipc_addr_test", &d,
+ NNG_FLAG_NONBLOCK) == 0);
+ // Dialers don't have local addresses.
+ So(nng_dialer_getopt_sockaddr(d, NNG_OPT_LOCADDR, &sa2) ==
+ NNG_ENOTSUP);
+
+ So(nng_dialer_setopt(d, NNG_OPT_LOCADDR, &sa2, sizeof(sa2)) ==
+ NNG_ENOTSUP);
+ z = 8192;
+ So(nng_dialer_setopt_size(d, NNG_OPT_RECVMAXSZ, z) == 0);
+ z = 0;
+ So(nng_dialer_getopt_size(d, NNG_OPT_RECVMAXSZ, &z) == 0);
+ So(z == 8192);
+ So(nng_dialer_setopt_bool(d, NNG_OPT_RAW, true) ==
+ NNG_ENOTSUP);
+ });
+
nng_fini();
})