diff options
| author | Garrett D'Amore <garrett@damore.org> | 2018-03-18 12:46:31 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2018-03-18 12:46:31 -0700 |
| commit | 8b979454d891b84da727a329906c4293fadc5f3c (patch) | |
| tree | cb491c476080de11c7fc5b5868579f4ef86f4df4 /tests/sock.c | |
| parent | 3a2af394a7d94ac5f924aaea6cbad825a9b05d75 (diff) | |
| download | nng-8b979454d891b84da727a329906c4293fadc5f3c.tar.gz nng-8b979454d891b84da727a329906c4293fadc5f3c.tar.bz2 nng-8b979454d891b84da727a329906c4293fadc5f3c.zip | |
fixes #295 boolean options should use C99 bool type
fixes #275 nng_pipe_getopt_ptr() missing?
fixes #285 nng_setopt_ptr MIS
fixes #297 nng_listener/dialer_close does not validate mode
This change adds some missing APIs, and changes others.
In particular, certain options are now of type bool, with size
of just one. This is a *breaking* change for code that uses those
options -- NNG_OPT_RAW, NNG_OPT_PAIR1_POLY, NNG_OPT_TLS_VERIFIED.
Diffstat (limited to 'tests/sock.c')
| -rw-r--r-- | tests/sock.c | 70 |
1 files changed, 55 insertions, 15 deletions
diff --git a/tests/sock.c b/tests/sock.c index f1570fd8..8ff8b002 100644 --- a/tests/sock.c +++ b/tests/sock.c @@ -120,12 +120,15 @@ TestMain("Socket Operations", { }); Convey("RAW option works", { - int raw; - So(nng_getopt_int(s1, NNG_OPT_RAW, &raw) == 0); - So(raw == 0); - So(nng_setopt_int(s1, NNG_OPT_RAW, 1) == 0); - So(nng_getopt_int(s1, NNG_OPT_RAW, &raw) == 0); - So(raw == 1); + bool raw; + So(nng_getopt_bool(s1, NNG_OPT_RAW, &raw) == + 0); + So(raw == false); + So(nng_setopt_bool(s1, NNG_OPT_RAW, true) == + 0); + So(nng_getopt_bool(s1, NNG_OPT_RAW, &raw) == + 0); + So(raw == true); }); Convey("URL option works", { @@ -249,12 +252,14 @@ TestMain("Socket Operations", { }); Convey("Bogus raw fails", { + // Bool type is 1 byte. So(nng_setopt_int(s1, NNG_OPT_RAW, 42) == NNG_EINVAL); So(nng_setopt_int(s1, NNG_OPT_RAW, -42) == NNG_EINVAL); - So(nng_setopt_int(s1, NNG_OPT_RAW, 0) == 0); - So(nng_setopt(s1, NNG_OPT_RAW, "a", 1) == + So(nng_setopt_int(s1, NNG_OPT_RAW, 0) == + NNG_EINVAL); + So(nng_setopt(s1, NNG_OPT_RAW, "abcd", 4) == NNG_EINVAL); }); @@ -370,12 +375,29 @@ TestMain("Socket Operations", { ep, NNG_OPT_RECVMAXSZ, &sz) == 0); So(sz == 4321); }); + + Convey("Cannot access as listener", { + bool b; + So(nng_listener_getopt_bool( + ep, NNG_OPT_RAW, &b) == NNG_ENOENT); + So(nng_listener_close(ep) == NNG_ENOENT); + }); + Convey("Socket opts not for dialer", { // Not appropriate for dialer. - So(nng_dialer_setopt_int(ep, NNG_OPT_RAW, 1) == - NNG_ENOTSUP); + So(nng_dialer_setopt_bool( + ep, NNG_OPT_RAW, true) == NNG_ENOTSUP); So(nng_dialer_setopt_ms(ep, NNG_OPT_RECONNMINT, 1) == NNG_ENOTSUP); + So(nng_dialer_setopt_string(ep, + NNG_OPT_SOCKNAME, + "bogus") == NNG_ENOTSUP); + }); + + Convey("URL is readonly", { + So(nng_dialer_setopt_string(ep, NNG_OPT_URL, + "tcp://somewhere.else.com:8888") == + NNG_EREADONLY); }); Convey("Bad size checks", { So(nng_dialer_setopt(ep, NNG_OPT_RECVMAXSZ, @@ -398,13 +420,30 @@ TestMain("Socket Operations", { ep, NNG_OPT_RECVMAXSZ, &sz) == 0); So(sz == 4321); }); - Convey("Socket opts not for dialer", { + Convey("Cannot access as dialer", { + bool b; + So(nng_dialer_getopt_bool( + ep, NNG_OPT_RAW, &b) == NNG_ENOENT); + So(nng_dialer_close(ep) == NNG_ENOENT); + }); + + Convey("Socket opts not for listener", { // Not appropriate for dialer. - So(nng_listener_setopt_int( - ep, NNG_OPT_RAW, 1) == NNG_ENOTSUP); + So(nng_listener_setopt_bool( + ep, NNG_OPT_RAW, true) == NNG_ENOTSUP); So(nng_listener_setopt_ms(ep, NNG_OPT_RECONNMINT, 1) == NNG_ENOTSUP); + So(nng_listener_setopt_string(ep, + NNG_OPT_SOCKNAME, + "bogus") == NNG_ENOTSUP); }); + + Convey("URL is readonly", { + So(nng_listener_setopt_string(ep, NNG_OPT_URL, + "tcp://somewhere.else.com:8888") == + NNG_EREADONLY); + }); + Convey("Bad size checks", { So(nng_listener_setopt(ep, NNG_OPT_RECVMAXSZ, "a", 1) == NNG_EINVAL); @@ -417,6 +456,7 @@ TestMain("Socket Operations", { size_t s; int i; nng_duration t; + bool b; So(nng_dialer_setopt_size( 1999, NNG_OPT_RECVMAXSZ, 10) == NNG_ENOENT); @@ -424,9 +464,9 @@ TestMain("Socket Operations", { 1999, NNG_OPT_RECVMAXSZ, 10) == NNG_ENOENT); s = 1; - So(nng_dialer_getopt(1999, NNG_OPT_RAW, &i, &s) == + So(nng_dialer_getopt_bool(1999, NNG_OPT_RAW, &b) == NNG_ENOENT); - So(nng_listener_getopt(1999, NNG_OPT_RAW, &i, &s) == + So(nng_listener_getopt_bool(1999, NNG_OPT_RAW, &b) == NNG_ENOENT); So(nng_dialer_getopt_size( |
