diff options
| author | Garrett D'Amore <garrett@damore.org> | 2017-09-20 12:11:53 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2017-09-22 12:33:50 -0700 |
| commit | e236dc8141f4d00dc926fbfba7739dabf96ebcdd (patch) | |
| tree | 3c88190966eac4d888008d5076e7edd1817f64a2 /tests | |
| parent | f04cfd27e2d67b0fc89b079410fc11b55b6d1979 (diff) | |
| download | nng-e236dc8141f4d00dc926fbfba7739dabf96ebcdd.tar.gz nng-e236dc8141f4d00dc926fbfba7739dabf96ebcdd.tar.bz2 nng-e236dc8141f4d00dc926fbfba7739dabf96ebcdd.zip | |
More pipe option handling, pipe API support. Url option.
This fleshes most of the pipe API out, making it available to end user
code. It also adds a URL option that is independent of the address
options (which would be sockaddrs.)
Also, we are now setting the pipe for req/rep. The other protocols need
to have the same logic added to set the receive pipe on the message. (Pair
is already done.)
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/sock.c | 26 | ||||
| -rw-r--r-- | tests/trantest.h | 10 |
2 files changed, 35 insertions, 1 deletions
diff --git a/tests/sock.c b/tests/sock.c index 81c0eb59..21b12792 100644 --- a/tests/sock.c +++ b/tests/sock.c @@ -113,6 +113,32 @@ TestMain("Socket Operations", { NNG_EINVAL); }); + Convey("URL option works", { + char url[NNG_MAXADDRLEN]; + nng_listener l; + nng_dialer d; + size_t sz; + + So(nng_listener_create( + &l, s1, "inproc://url1") == 0); + So(nng_dialer_create( + &d, s1, "inproc://url2") == 0); + memset(url, 0, sizeof(url)); + sz = sizeof(url); + So(nng_listener_getopt( + l, nng_optid_url, url, &sz) == 0); + So(strcmp(url, "inproc://url1") == 0); + sz = sizeof(url); + So(nng_dialer_getopt( + d, nng_optid_url, url, &sz) == 0); + So(strcmp(url, "inproc://url2") == 0); + + Reset({ + nng_dialer_close(d); + nng_listener_close(l); + }) + }); + Convey("We can apply options before endpoint", { nng_listener l; char addr[NNG_MAXADDRLEN]; diff --git a/tests/trantest.h b/tests/trantest.h index 84b54e34..d4d65eee 100644 --- a/tests/trantest.h +++ b/tests/trantest.h @@ -128,6 +128,9 @@ trantest_send_recv(trantest *tt) nng_msg * send; nng_msg * recv; size_t len; + nng_pipe p; + char url[NNG_MAXADDRLEN]; + size_t sz; So(nng_listen(tt->repsock, tt->addr, &l, 0) == 0); So(l != 0); @@ -155,8 +158,13 @@ trantest_send_recv(trantest *tt) So(recv != NULL); So(nng_msg_len(recv) == strlen("acknowledge")); So(strcmp(nng_msg_body(recv), "acknowledge") == 0); + p = nng_msg_get_pipe(recv); + So(p != 0); + sz = sizeof (url); + So(nng_pipe_getopt(p, nng_optid_url, url, &sz) == 0); + So(strcmp(url, tt->addr) == 0); nng_msg_free(recv); - }) + }); } void trantest_test_all(const char *addr) |
