diff options
| author | Garrett D'Amore <garrett@damore.org> | 2018-12-29 18:54:22 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2018-12-29 18:54:22 -0800 |
| commit | 27b7827532abcbdbecc54795da5b5ac66e7f5e9f (patch) | |
| tree | 7c8fad19dbb874af35324603204aae87f93d63b8 /tests | |
| parent | 5b35daaf2fe6c6fbe0b15740efbffe16ff278e6c (diff) | |
| download | nng-27b7827532abcbdbecc54795da5b5ac66e7f5e9f.tar.gz nng-27b7827532abcbdbecc54795da5b5ac66e7f5e9f.tar.bz2 nng-27b7827532abcbdbecc54795da5b5ac66e7f5e9f.zip | |
progress on IPC endpoints
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/ipc.c | 52 |
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(); }) |
