]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
4279. [test] Don't use fixed ports when unit testing. [RT #41194]
authorMark Andrews <marka@isc.org>
Tue, 15 Dec 2015 01:50:32 +0000 (12:50 +1100)
committerMark Andrews <marka@isc.org>
Tue, 15 Dec 2015 01:50:32 +0000 (12:50 +1100)
CHANGES
lib/isc/tests/socket_test.c

diff --git a/CHANGES b/CHANGES
index 39c27fcd55737a2912c6636e6c023f31e92263c1..9d3d8a6b5b2dc21339be2d3fb8f831dee4e53d2c 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,5 @@
+4279.  [test]          Don't use fixed ports when unit testing. [RT #41194]
+
 4278.  [bug]           'delv +short +[no]split[=##]' didn't work as expected.
                        [RT #41238]
 
index 4b92a7d684fd20072878d3547db8825c83acc39e..8e84364732488f40dcb1fe8c3f3be1051628e3d8 100644 (file)
@@ -166,23 +166,27 @@ ATF_TC_BODY(udp_sendto, tc) {
        result = isc_test_begin(NULL, ISC_TRUE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
-       /*
-        * Create two sockets: 127.0.0.1/5444 and 127.0.0.1/5445, talking to
-        * each other.
-        */
        in.s_addr = inet_addr("127.0.0.1");
-       isc_sockaddr_fromin(&addr1, &in, 5444);
-       isc_sockaddr_fromin(&addr2, &in, 5445);
+       isc_sockaddr_fromin(&addr1, &in, 0);
+       isc_sockaddr_fromin(&addr2, &in, 0);
 
        result = isc_socket_create(socketmgr, PF_INET, isc_sockettype_udp, &s1);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
-       result = isc_socket_bind(s1, &addr1, ISC_SOCKET_REUSEADDRESS);
+       result = isc_socket_bind(s1, &addr1, 0);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+       result = isc_socket_getsockname(s1, &addr1);
+       ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
+                        isc_result_totext(result));
+       ATF_REQUIRE(isc_sockaddr_getport(&addr1) != 0);
 
        result = isc_socket_create(socketmgr, PF_INET, isc_sockettype_udp, &s2);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
-       result = isc_socket_bind(s2, &addr2, ISC_SOCKET_REUSEADDRESS);
+       result = isc_socket_bind(s2, &addr2, 0);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+       result = isc_socket_getsockname(s2, &addr2);
+       ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
+                        isc_result_totext(result));
+       ATF_REQUIRE(isc_sockaddr_getport(&addr2) != 0);
 
        result = isc_task_create(taskmgr, 0, &task);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
@@ -237,23 +241,27 @@ ATF_TC_BODY(udp_dup, tc) {
        result = isc_test_begin(NULL, ISC_TRUE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
-       /*
-        * Create two sockets: 127.0.0.1/5444 and 127.0.0.1/5445, talking to
-        * each other.
-        */
        in.s_addr = inet_addr("127.0.0.1");
-       isc_sockaddr_fromin(&addr1, &in, 5444);
-       isc_sockaddr_fromin(&addr2, &in, 5445);
+       isc_sockaddr_fromin(&addr1, &in, 0);
+       isc_sockaddr_fromin(&addr2, &in, 0);
 
        result = isc_socket_create(socketmgr, PF_INET, isc_sockettype_udp, &s1);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
-       result = isc_socket_bind(s1, &addr1, ISC_SOCKET_REUSEADDRESS);
+       result = isc_socket_bind(s1, &addr1, 0);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+       result = isc_socket_getsockname(s1, &addr1);
+       ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
+                        isc_result_totext(result));
+       ATF_REQUIRE(isc_sockaddr_getport(&addr1) != 0);
 
        result = isc_socket_create(socketmgr, PF_INET, isc_sockettype_udp, &s2);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
-       result = isc_socket_bind(s2, &addr2, ISC_SOCKET_REUSEADDRESS);
+       result = isc_socket_bind(s2, &addr2, 0);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+       result = isc_socket_getsockname(s2, &addr2);
+       ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
+                        isc_result_totext(result));
+       ATF_REQUIRE(isc_sockaddr_getport(&addr2) != 0);
 
        result = isc_socket_dup(s2, &s3);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
@@ -335,13 +343,9 @@ ATF_TC_BODY(udp_dscp_v4, tc) {
        result = isc_test_begin(NULL, ISC_TRUE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
-       /*
-        * Create two sockets: 127.0.0.1/5444 and 127.0.0.1/5445, talking to
-        * each other.
-        */
        in.s_addr = inet_addr("127.0.0.1");
-       isc_sockaddr_fromin(&addr1, &in, 5444);
-       isc_sockaddr_fromin(&addr2, &in, 5445);
+       isc_sockaddr_fromin(&addr1, &in, 0);
+       isc_sockaddr_fromin(&addr2, &in, 0);
 
        result = isc_socket_create(socketmgr, PF_INET, isc_sockettype_udp, &s1);
        ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
@@ -349,6 +353,10 @@ ATF_TC_BODY(udp_dscp_v4, tc) {
        result = isc_socket_bind(s1, &addr1, ISC_SOCKET_REUSEADDRESS);
        ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
                           isc_result_totext(result));
+       result = isc_socket_getsockname(s1, &addr1);
+       ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
+                        isc_result_totext(result));
+       ATF_REQUIRE(isc_sockaddr_getport(&addr1) != 0);
 
        result = isc_socket_create(socketmgr, PF_INET, isc_sockettype_udp, &s2);
        ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
@@ -356,6 +364,10 @@ ATF_TC_BODY(udp_dscp_v4, tc) {
        result = isc_socket_bind(s2, &addr2, ISC_SOCKET_REUSEADDRESS);
        ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
                           isc_result_totext(result));
+       result = isc_socket_getsockname(s2, &addr2);
+       ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
+                        isc_result_totext(result));
+       ATF_REQUIRE(isc_sockaddr_getport(&addr2) != 0);
 
        result = isc_task_create(taskmgr, 0, &task);
        ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
@@ -435,30 +447,34 @@ ATF_TC_BODY(udp_dscp_v6, tc) {
        result = isc_test_begin(NULL, ISC_TRUE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
-       /*
-        * Create two sockets: ::1/5444 and ::1/5445, talking to
-        * each other.
-        */
        n = inet_pton(AF_INET6, "::1", &in6.s6_addr);
        ATF_REQUIRE(n == 1);
-       isc_sockaddr_fromin6(&addr1, &in6, 5444);
-       isc_sockaddr_fromin6(&addr2, &in6, 5445);
+       isc_sockaddr_fromin6(&addr1, &in6, 0);
+       isc_sockaddr_fromin6(&addr2, &in6, 0);
 
        result = isc_socket_create(socketmgr, PF_INET6, isc_sockettype_udp,
                                   &s1);
        ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
                         isc_result_totext(result));
-       result = isc_socket_bind(s1, &addr1, ISC_SOCKET_REUSEADDRESS);
+       result = isc_socket_bind(s1, &addr1, 0);
        ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
                         isc_result_totext(result));
+       result = isc_socket_getsockname(s1, &addr1);
+       ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
+                        isc_result_totext(result));
+       ATF_REQUIRE(isc_sockaddr_getport(&addr1) != 0);
 
        result = isc_socket_create(socketmgr, PF_INET6, isc_sockettype_udp,
                                   &s2);
        ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
                         isc_result_totext(result));
-       result = isc_socket_bind(s2, &addr2, ISC_SOCKET_REUSEADDRESS);
+       result = isc_socket_bind(s2, &addr2, 0);
+       ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
+                        isc_result_totext(result));
+       result = isc_socket_getsockname(s2, &addr2);
        ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
                         isc_result_totext(result));
+       ATF_REQUIRE(isc_sockaddr_getport(&addr2) != 0);
 
        result = isc_task_create(taskmgr, 0, &task);
        ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
@@ -532,17 +548,18 @@ ATF_TC_BODY(tcp_dscp_v4, tc) {
        result = isc_test_begin(NULL, ISC_TRUE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
-       /*
-        * Create two sockets: 127.0.0.1/5444, talking to each other.
-        */
        in.s_addr = inet_addr("127.0.0.1");
-       isc_sockaddr_fromin(&addr1, &in, 5444);
+       isc_sockaddr_fromin(&addr1, &in, 0);
 
        result = isc_socket_create(socketmgr, PF_INET, isc_sockettype_tcp, &s1);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
-       result = isc_socket_bind(s1, &addr1, ISC_SOCKET_REUSEADDRESS);
+       result = isc_socket_bind(s1, &addr1, 0);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+       result = isc_socket_getsockname(s1, &addr1);
+       ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
+                        isc_result_totext(result));
+       ATF_REQUIRE(isc_sockaddr_getport(&addr1) != 0);
 
        result = isc_socket_listen(s1, 3);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
@@ -630,19 +647,20 @@ ATF_TC_BODY(tcp_dscp_v6, tc) {
        result = isc_test_begin(NULL, ISC_TRUE);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
-       /*
-        * Create two sockets: ::1/5444, talking to each other.
-        */
        n = inet_pton(AF_INET6, "::1", &in6.s6_addr);
        ATF_REQUIRE(n == 1);
-       isc_sockaddr_fromin6(&addr1, &in6, 5444);
+       isc_sockaddr_fromin6(&addr1, &in6, 0);
 
        result = isc_socket_create(socketmgr, PF_INET6, isc_sockettype_tcp,
                                   &s1);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
 
-       result = isc_socket_bind(s1, &addr1, ISC_SOCKET_REUSEADDRESS);
+       result = isc_socket_bind(s1, &addr1, 0);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+       result = isc_socket_getsockname(s1, &addr1);
+       ATF_CHECK_EQ_MSG(result, ISC_R_SUCCESS, "%s",
+                        isc_result_totext(result));
+       ATF_REQUIRE(isc_sockaddr_getport(&addr1) != 0);
 
        result = isc_socket_listen(s1, 3);
        ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);