diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/resolv.c | 90 |
1 files changed, 64 insertions, 26 deletions
diff --git a/tests/resolv.c b/tests/resolv.c index 94108765..849b41cd 100644 --- a/tests/resolv.c +++ b/tests/resolv.c @@ -126,67 +126,105 @@ ip6tostr(void *addr) ); #endif -TestMain("TCP Resolver", { +TestMain("Resolver", { nni_init(); Convey("Google DNS IPv4 resolves", { - nni_aio aio; - const char *str; + nni_aio aio; + const char * str; + nng_sockaddr sa; memset(&aio, 0, sizeof(aio)); nni_aio_init(&aio, NULL, NULL); + aio.a_addr = &sa; nni_plat_tcp_resolv("google-public-dns-a.google.com", "80", NNG_AF_INET, 1, &aio); nni_aio_wait(&aio); So(nni_aio_result(&aio) == 0); - So(aio.a_naddrs == 1); - So(aio.a_addrs[0].s_un.s_in.sa_family == NNG_AF_INET); - So(aio.a_addrs[0].s_un.s_in.sa_port == ntohs(80)); - str = ip4tostr(&aio.a_addrs[0].s_un.s_in.sa_addr); + So(sa.s_un.s_in.sa_family == NNG_AF_INET); + So(sa.s_un.s_in.sa_port == ntohs(80)); + str = ip4tostr(&sa.s_un.s_in.sa_addr); So(strcmp(str, "8.8.8.8") == 0); nni_aio_fini(&aio); }); + Convey("Numeric UDP resolves", { + nni_aio aio; + const char * str; + nng_sockaddr sa; + memset(&aio, 0, sizeof(aio)); + nni_aio_init(&aio, NULL, NULL); + aio.a_addr = &sa; + nni_plat_udp_resolv("8.8.4.4", "69", NNG_AF_INET, 1, &aio); + nni_aio_wait(&aio); + So(nni_aio_result(&aio) == 0); + So(sa.s_un.s_in.sa_family == NNG_AF_INET); + So(sa.s_un.s_in.sa_port == ntohs(69)); + str = ip4tostr(&sa.s_un.s_in.sa_addr); + So(strcmp(str, "8.8.4.4") == 0); + nni_aio_fini(&aio); + }); Convey("Numeric v4 resolves", { - nni_aio aio; - const char *str; + nni_aio aio; + const char * str; + nng_sockaddr sa; memset(&aio, 0, sizeof(aio)); nni_aio_init(&aio, NULL, NULL); + aio.a_addr = &sa; nni_plat_tcp_resolv("8.8.4.4", "80", NNG_AF_INET, 1, &aio); nni_aio_wait(&aio); So(nni_aio_result(&aio) == 0); - So(aio.a_naddrs == 1); - So(aio.a_addrs[0].s_un.s_in.sa_family == NNG_AF_INET); - So(aio.a_addrs[0].s_un.s_in.sa_port == ntohs(80)); - str = ip4tostr(&aio.a_addrs[0].s_un.s_in.sa_addr); + So(sa.s_un.s_in.sa_family == NNG_AF_INET); + So(sa.s_un.s_in.sa_port == ntohs(80)); + str = ip4tostr(&sa.s_un.s_in.sa_addr); So(strcmp(str, "8.8.4.4") == 0); nni_aio_fini(&aio); }); Convey("Numeric v6 resolves", { - nni_aio aio; - const char *str; + nni_aio aio; + const char * str; + nng_sockaddr sa; memset(&aio, 0, sizeof(aio)); nni_aio_init(&aio, NULL, NULL); + aio.a_addr = &sa; nni_plat_tcp_resolv("::1", "80", NNG_AF_INET6, 1, &aio); nni_aio_wait(&aio); So(nni_aio_result(&aio) == 0); - So(aio.a_naddrs == 1); - So(aio.a_addrs[0].s_un.s_in6.sa_family == NNG_AF_INET6); - So(aio.a_addrs[0].s_un.s_in6.sa_port == ntohs(80)); - str = ip6tostr(&aio.a_addrs[0].s_un.s_in6.sa_addr); + So(sa.s_un.s_in6.sa_family == NNG_AF_INET6); + So(sa.s_un.s_in6.sa_port == ntohs(80)); + str = ip6tostr(&sa.s_un.s_in6.sa_addr); So(strcmp(str, "::1") == 0); nni_aio_fini(&aio); }); - Convey("Name service resolves", { - nni_aio aio; - const char *str; + + Convey("TCP Name service resolves", { + nni_aio aio; + const char * str; + nng_sockaddr sa; memset(&aio, 0, sizeof(aio)); nni_aio_init(&aio, NULL, NULL); + aio.a_addr = &sa; nni_plat_tcp_resolv("8.8.4.4", "http", NNG_AF_INET, 1, &aio); nni_aio_wait(&aio); So(nni_aio_result(&aio) == 0); - So(aio.a_naddrs == 1); - So(aio.a_addrs[0].s_un.s_in.sa_family == NNG_AF_INET); - So(aio.a_addrs[0].s_un.s_in.sa_port == ntohs(80)); - str = ip4tostr(&aio.a_addrs[0].s_un.s_in.sa_addr); + So(sa.s_un.s_in.sa_family == NNG_AF_INET); + So(sa.s_un.s_in.sa_port == ntohs(80)); + str = ip4tostr(&sa.s_un.s_in.sa_addr); + So(strcmp(str, "8.8.4.4") == 0); + nni_aio_fini(&aio); + }); + + Convey("UDP Name service resolves", { + nni_aio aio; + const char * str; + nng_sockaddr sa; + memset(&aio, 0, sizeof(aio)); + nni_aio_init(&aio, NULL, NULL); + aio.a_addr = &sa; + nni_plat_udp_resolv("8.8.4.4", "tftp", NNG_AF_INET, 1, &aio); + nni_aio_wait(&aio); + So(nni_aio_result(&aio) == 0); + So(sa.s_un.s_in.sa_family == NNG_AF_INET); + So(sa.s_un.s_in.sa_port == ntohs(69)); + str = ip4tostr(&sa.s_un.s_in.sa_addr); So(strcmp(str, "8.8.4.4") == 0); nni_aio_fini(&aio); }); |
