diff options
author | Olivier Cochard <olivier@FreeBSD.org> | 2023-07-04 19:11:24 +0000 |
---|---|---|
committer | Olivier Cochard <olivier@FreeBSD.org> | 2023-07-04 19:17:56 +0000 |
commit | 150d8ca9f3baa0c0b049ce2e6ba4a88dc5d8e341 (patch) | |
tree | 18970cc654585ff035b8902c67128b73778b98fc | |
parent | c4b7fe91fcb879b6e7fc360c932845e7cc5d78f1 (diff) | |
download | src-150d8ca9f3baa0c0b049ce2e6ba4a88dc5d8e341.tar.gz src-150d8ca9f3baa0c0b049ce2e6ba4a88dc5d8e341.zip |
socket afinet tests: using dynamic ports instead of the same static port
Allows these tests to be run in parallel.
Approved by: markj
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D40859
-rw-r--r-- | tests/sys/netinet/socket_afinet.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/tests/sys/netinet/socket_afinet.c b/tests/sys/netinet/socket_afinet.c index 482f767dd094..8c6bb4ccd294 100644 --- a/tests/sys/netinet/socket_afinet.c +++ b/tests/sys/netinet/socket_afinet.c @@ -82,7 +82,7 @@ ATF_TC_BODY(socket_afinet_bind_ok, tc) bzero(&sin, sizeof(sin)); sin.sin_family = AF_INET; sin.sin_len = sizeof(sin); - sin.sin_port = htons(6666); + sin.sin_port = htons(0); sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); rc = bind(sd, (struct sockaddr *)&sin, sizeof(sin)); ATF_CHECK_EQ(0, rc); @@ -95,6 +95,7 @@ ATF_TC_BODY(socket_afinet_poll_no_rdhup, tc) { int ss, ss2, cs, rc; struct sockaddr_in sin; + socklen_t slen; struct pollfd pfd; int one = 1; @@ -108,12 +109,15 @@ ATF_TC_BODY(socket_afinet_poll_no_rdhup, tc) bzero(&sin, sizeof(sin)); sin.sin_family = AF_INET; sin.sin_len = sizeof(sin); - sin.sin_port = htons(6666); + sin.sin_port = htons(0); sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); rc = bind(ss, (struct sockaddr *)&sin, sizeof(sin)); ATF_CHECK_EQ(0, rc); rc = listen(ss, 1); ATF_CHECK_EQ(0, rc); + slen = sizeof(sin); + rc = getsockname(ss, (struct sockaddr *)&sin, &slen); + ATF_CHECK_EQ(0, rc); /* Client connects, server accepts. */ cs = socket(PF_INET, SOCK_STREAM, 0); @@ -154,6 +158,7 @@ ATF_TC_BODY(socket_afinet_poll_rdhup, tc) { int ss, ss2, cs, rc; struct sockaddr_in sin; + socklen_t slen; struct pollfd pfd; char buffer; int one = 1; @@ -168,12 +173,15 @@ ATF_TC_BODY(socket_afinet_poll_rdhup, tc) bzero(&sin, sizeof(sin)); sin.sin_family = AF_INET; sin.sin_len = sizeof(sin); - sin.sin_port = htons(6666); + sin.sin_port = htons(0); sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); rc = bind(ss, (struct sockaddr *)&sin, sizeof(sin)); ATF_CHECK_EQ(0, rc); rc = listen(ss, 1); ATF_CHECK_EQ(0, rc); + slen = sizeof(sin); + rc = getsockname(ss, (struct sockaddr *)&sin, &slen); + ATF_CHECK_EQ(0, rc); /* Client connects, server accepts. */ cs = socket(PF_INET, SOCK_STREAM, 0); @@ -232,6 +240,7 @@ ATF_TC_WITHOUT_HEAD(socket_afinet_stream_reconnect); ATF_TC_BODY(socket_afinet_stream_reconnect, tc) { struct sockaddr_in sin; + socklen_t slen; int ss, cs, rc; /* @@ -245,12 +254,15 @@ ATF_TC_BODY(socket_afinet_stream_reconnect, tc) bzero(&sin, sizeof(sin)); sin.sin_family = AF_INET; sin.sin_len = sizeof(sin); - sin.sin_port = htons(6666); + sin.sin_port = htons(0); sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); rc = bind(ss, (struct sockaddr *)&sin, sizeof(sin)); ATF_CHECK_EQ(0, rc); rc = listen(ss, 1); ATF_CHECK_EQ(0, rc); + slen = sizeof(sin); + rc = getsockname(ss, (struct sockaddr *)&sin, &slen); + ATF_CHECK_EQ(0, rc); /* Client connects, shuts down. */ cs = socket(PF_INET, SOCK_STREAM, 0); |