tests: Add test to exercise internal data structures
authorRobin Hack <hack.robin@gmail.com>
Mon, 2 Nov 2015 12:48:47 +0000 (13:48 +0100)
committerAndreas Schneider <asn@samba.org>
Fri, 13 Nov 2015 12:12:03 +0000 (13:12 +0100)
This uses a big hosts file from samba to avoid regressions in Samba.

Signed-off-by: Robin Hack <hack.robin@gmail.com>
Reviewed-by: Andreas Schneider <asn@samba.org>
tests/hosts.in
tests/test_getaddrinfo.c

index 3b03783fa9e3959ae31dcbff1e2c71618d44016d..0d97bbc187e4a6f86411676072944ee0fde114c6 100644 (file)
 2666::22               pumpkin.bunny.net
 DEAD:BEEF:1:2:3::4     pumpkin.bunny.net
 B00B:5::4              pumpkin.bunny.net
+127.0.0.21 localdc.samba.example.com samba.example.com localdc
+fd00:0000:0000:0000:0000:0000:5357:5f15 localdc.samba.example.com samba.example.com localdc
+127.0.0.3 localnt4dc2.samba.example.com localnt4dc2
+fd00:0000:0000:0000:0000:0000:5357:5f03 localnt4dc2.samba.example.com localnt4dc2
+127.0.0.5 localshare4.samba.example.com localshare4
+fd00:0000:0000:0000:0000:0000:5357:5f05 localshare4.samba.example.com localshare4
+127.0.0.4 localnt4member3.samba.example.com localnt4member3
+fd00:0000:0000:0000:0000:0000:5357:5f04 localnt4member3.samba.example.com localnt4member3
+127.0.0.29 localadmember.samba.example.com localadmember
+fd00:0000:0000:0000:0000:0000:5357:5f1d localadmember.samba.example.com localadmember
+127.0.0.23 s4member.samba.example.com s4member
+fd00:0000:0000:0000:0000:0000:5357:5f17 s4member.samba.example.com s4member
+127.0.0.7 localktest6.samba.example.com localktest6
+fd00:0000:0000:0000:0000:0000:5357:5f07 localktest6.samba.example.com localktest6
+127.0.0.8 maptoguest.samba.example.com maptoguest
+fd00:0000:0000:0000:0000:0000:5357:5f08 maptoguest.samba.example.com maptoguest
+127.0.0.35 fileserver.samba.example.com fileserver
+fd00:0000:0000:0000:0000:0000:5357:5f23 fileserver.samba.example.com fileserver
+127.0.0.30 addc.addc.samba.example.com addc
+fd00:0000:0000:0000:0000:0000:5357:5f1e addc.addc.samba.example.com addc
+127.0.0.9 localnt4dc9.samba.example.com localnt4dc9
+fd00:0000:0000:0000:0000:0000:5357:5f09 localnt4dc9.samba.example.com localnt4dc9
+127.0.0.34 rfc2307member.samba.example.com rfc2307member
+fd00:0000:0000:0000:0000:0000:5357:5f22 rfc2307member.samba.example.com rfc2307member
+127.0.0.25 dc5.samba2000.example.com dc5
+fd00:0000:0000:0000:0000:0000:5357:5f19 dc5.samba2000.example.com dc5
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
+127.0.0.26 dc6.samba2003.example.com dc6
+fd00:0000:0000:0000:0000:0000:5357:5f1a dc6.samba2003.example.com dc6
index b5a0de24ea91aaff110316cb6de631bf2f4fed76..01ae3d855d20ac59eba0ce9f7b3e8ebfcb9cc636 100644 (file)
@@ -83,6 +83,47 @@ static void test_nwrap_getaddrinfo(void **state)
        freeaddrinfo(res);
 }
 
+static void test_nwrap_getaddrinfo_samba(void **state)
+{
+       struct addrinfo hints;
+       struct addrinfo *res = NULL;
+       int rc;
+
+       (void) state; /* unused */
+
+       /* IPv4 */
+       memset(&hints, 0, sizeof(struct addrinfo));
+       hints.ai_family = AF_UNSPEC;    /* Allow IPv4 or IPv6 */
+       hints.ai_socktype = SOCK_STREAM; /* Stream socket */
+       hints.ai_flags = 0;    /* For wildcard IP address */
+       hints.ai_protocol = IPPROTO_TCP;          /* Any protocol */
+       hints.ai_canonname = NULL;
+       hints.ai_addr = NULL;
+       hints.ai_next = NULL;
+
+       rc = getaddrinfo("127.0.0.21", NULL, &hints, &res);
+       assert_int_equal(rc, 0);
+       assert_non_null(res);
+
+       rc = getaddrinfo("samba.example.com", NULL, &hints, &res);
+       assert_int_equal(rc, 0);
+       assert_non_null(res);
+
+       rc = getaddrinfo("localdc", NULL, &hints, &res);
+       assert_int_equal(rc, 0);
+       assert_non_null(res);
+
+       rc = getaddrinfo("localdc.samba.example.com", NULL, &hints, &res);
+       assert_int_equal(rc, 0);
+       assert_non_null(res);
+
+       rc = getaddrinfo("fd00:0000:0000:0000:0000:0000:5357:5f15", NULL, &hints, &res);
+       assert_int_equal(rc, 0);
+       assert_non_null(res);
+
+       freeaddrinfo(res);
+}
+
 static void test_nwrap_getaddrinfo_any(void **state)
 {
        struct addrinfo hints;
@@ -610,6 +651,7 @@ int main(void) {
                cmocka_unit_test(test_nwrap_getaddrinfo_multiple_mixed),
                cmocka_unit_test(test_nwrap_getaddrinfo_flags_ai_numericserv),
                cmocka_unit_test(test_nwrap_getaddrinfo_flags_ai_numerichost),
+               cmocka_unit_test(test_nwrap_getaddrinfo_samba),
        };
 
        rc = cmocka_run_group_tests(tests, NULL, NULL);