diff options
| author | Garrett D'Amore <garrett@damore.org> | 2020-11-15 19:58:57 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2020-11-15 22:26:34 -0800 |
| commit | c407bc2d4af9f6ede97016a64af8161a04d54f43 (patch) | |
| tree | 95a7a0284ee8f7486a912dd3e787951582e0994c /src/transport/ipc/ipc_test.c | |
| parent | 249932f3a208260f6b9c99d778b22d51cfabe87b (diff) | |
| download | nng-c407bc2d4af9f6ede97016a64af8161a04d54f43.tar.gz nng-c407bc2d4af9f6ede97016a64af8161a04d54f43.tar.bz2 nng-c407bc2d4af9f6ede97016a64af8161a04d54f43.zip | |
fixes #1351 Move IPC dialer and listener props tests into new test suite
Diffstat (limited to 'src/transport/ipc/ipc_test.c')
| -rw-r--r-- | src/transport/ipc/ipc_test.c | 71 |
1 files changed, 66 insertions, 5 deletions
diff --git a/src/transport/ipc/ipc_test.c b/src/transport/ipc/ipc_test.c index 23353387..84e97b2d 100644 --- a/src/transport/ipc/ipc_test.c +++ b/src/transport/ipc/ipc_test.c @@ -16,8 +16,8 @@ #include <acutest.h> #ifdef NNG_PLATFORM_POSIX -#include <sys/types.h> #include <sys/stat.h> +#include <sys/types.h> #include <unistd.h> #endif @@ -34,8 +34,8 @@ test_path_too_long(void) TEST_ASSERT(strlen(addr) == 255); TEST_NNG_PASS(nng_pair0_open(&s1)); - TEST_NNG_PASS(nng_setopt_ms(s1, NNG_OPT_SENDTIMEO, 1000)); - TEST_NNG_PASS(nng_setopt_ms(s1, NNG_OPT_RECVTIMEO, 1000)); + TEST_NNG_PASS(nng_socket_set_ms(s1, NNG_OPT_SENDTIMEO, 1000)); + TEST_NNG_PASS(nng_socket_set_ms(s1, NNG_OPT_RECVTIMEO, 1000)); TEST_NNG_FAIL(nng_listen(s1, addr, NULL, 0), NNG_EADDRINVAL); TEST_NNG_FAIL( nng_dial(s1, addr, NULL, NNG_FLAG_NONBLOCK), NNG_EADDRINVAL); @@ -54,9 +54,38 @@ test_ipc_dialer_perms(void) TEST_NNG_PASS(nng_pair0_open(&s)); TEST_NNG_PASS(nng_dialer_create(&d, s, addr)); - TEST_NNG_FAIL(nng_dialer_setopt_int(d, NNG_OPT_IPC_PERMISSIONS, 0444), - NNG_ENOTSUP); + TEST_NNG_FAIL( + nng_dialer_set_int(d, NNG_OPT_IPC_PERMISSIONS, 0444), NNG_ENOTSUP); + + TEST_NNG_PASS(nng_close(s)); +} + +void +test_ipc_dialer_properties(void) +{ + nng_socket s; + nng_dialer d; + nng_sockaddr sa; + size_t z; + char addr[64]; + + testutil_scratch_addr("ipc", sizeof(addr), addr); + + TEST_NNG_PASS(nng_pair0_open(&s)); + TEST_NNG_PASS(nng_dial(s, addr, &d, NNG_FLAG_NONBLOCK)); + // Dialers don't have local addresses. + TEST_NNG_FAIL( + nng_dialer_get_addr(d, NNG_OPT_LOCADDR, &sa), NNG_ENOTSUP); + TEST_NNG_FAIL( + nng_dialer_set(d, NNG_OPT_LOCADDR, &sa, sizeof(sa)), NNG_ENOTSUP); + + z = 8192; + TEST_NNG_PASS(nng_dialer_set_size(d, NNG_OPT_RECVMAXSZ, z)); + z = 0; + TEST_NNG_PASS(nng_dialer_get_size(d, NNG_OPT_RECVMAXSZ, &z)); + TEST_CHECK(z == 8192); + TEST_NNG_FAIL(nng_dialer_set_bool(d, NNG_OPT_RAW, true), NNG_ENOTSUP); TEST_NNG_PASS(nng_close(s)); } @@ -66,6 +95,7 @@ test_ipc_listener_perms(void) nng_socket s; nng_listener l; char addr[64]; + #ifndef _WIN32 char * path; struct stat st; @@ -104,6 +134,35 @@ test_ipc_listener_perms(void) } void +test_ipc_listener_properties(void) +{ + nng_socket s; + nng_listener l; + nng_sockaddr sa; + size_t z; + char addr[64]; + + testutil_scratch_addr("ipc", sizeof(addr), addr); + + TEST_NNG_PASS(nng_pair0_open(&s)); + TEST_NNG_PASS(nng_listen(s, addr, &l, 0)); + TEST_NNG_PASS(nng_listener_getopt_sockaddr(l, NNG_OPT_LOCADDR, &sa)); + TEST_CHECK(sa.s_ipc.sa_family == NNG_AF_IPC); + TEST_STREQUAL(sa.s_ipc.sa_path, addr+strlen("ipc://")); + + TEST_NNG_FAIL(nng_listener_setopt(l, NNG_OPT_LOCADDR, &sa, sizeof(sa)), + NNG_EREADONLY); + z = 8192; + TEST_NNG_PASS(nng_listener_setopt_size(l, NNG_OPT_RECVMAXSZ, z)); + z = 0; + TEST_NNG_PASS(nng_listener_getopt_size(l, NNG_OPT_RECVMAXSZ, &z)); + TEST_CHECK(z == 8192); + TEST_NNG_FAIL( + nng_listener_setopt_bool(l, NNG_OPT_RAW, true), NNG_ENOTSUP); + TEST_NNG_PASS(nng_close(s)); +} + +void test_abstract_sockets(void) { #ifdef NNG_HAVE_ABSTRACT_SOCKETS @@ -308,7 +367,9 @@ test_unix_alias(void) TEST_LIST = { { "ipc path too long", test_path_too_long }, { "ipc dialer perms", test_ipc_dialer_perms }, + { "ipc dialer props", test_ipc_dialer_properties }, { "ipc listener perms", test_ipc_listener_perms }, + { "ipc listener props", test_ipc_listener_properties }, { "ipc abstract sockets", test_abstract_sockets }, { "ipc abstract auto bind", test_abstract_auto_bind }, { "ipc abstract name too long", test_abstract_too_long }, |
