aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2022-01-14 20:00:01 +0000
committerMark Johnston <markj@FreeBSD.org>2022-01-14 20:01:41 +0000
commit95c75073d3d1ca9dcae41784453172f199bb2c0f (patch)
tree269d41e18c5ba38e64a07883b6f4c3dd040af3b5
parent7bd2df8c82e863396ae96ad4c43418c762e9f702 (diff)
downloadsrc-95c75073d3d1ca9dcae41784453172f199bb2c0f.tar.gz
src-95c75073d3d1ca9dcae41784453172f199bb2c0f.zip
netbsd-tests: Fix the libc stat_socket test
The test tries to connect a socket to a closed port at 127.0.0.1. It sets O_NONBLOCK on the socket first and expects to get EINPROGRESS from connect(2), but this is not guaranteed, ECONNREFUSED is possible. Handle both cases, and re-enable the test. PR: 240621 MFC after: 1 week Sponsored by: The FreeBSD Foundation
-rw-r--r--contrib/netbsd-tests/lib/libc/sys/t_stat.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/contrib/netbsd-tests/lib/libc/sys/t_stat.c b/contrib/netbsd-tests/lib/libc/sys/t_stat.c
index 372a9093fac5..029ff8452d94 100644
--- a/contrib/netbsd-tests/lib/libc/sys/t_stat.c
+++ b/contrib/netbsd-tests/lib/libc/sys/t_stat.c
@@ -332,9 +332,6 @@ ATF_TC_BODY(stat_socket, tc)
uint32_t iaddr;
int fd, flags;
- if (atf_tc_get_config_var_as_bool_wd(tc, "ci", false))
- atf_tc_skip("https://bugs.freebsd.org/240621");
-
(void)memset(&st, 0, sizeof(struct stat));
(void)memset(&addr, 0, sizeof(struct sockaddr_in));
@@ -353,14 +350,14 @@ ATF_TC_BODY(stat_socket, tc)
errno = 0;
- ATF_REQUIRE_ERRNO(EINPROGRESS,
- connect(fd, (struct sockaddr *)&addr,
- sizeof(struct sockaddr_in)) == -1);
+ ATF_REQUIRE(connect(fd, (struct sockaddr *)&addr,
+ sizeof(struct sockaddr_in)) == -1);
+ ATF_REQUIRE(errno == EINPROGRESS || errno == ECONNREFUSED);
errno = 0;
if (fstat(fd, &st) != 0 || errno != 0)
- atf_tc_fail("fstat(2) failed for a EINPROGRESS socket");
+ atf_tc_fail("fstat(2) failed for a socket");
(void)close(fd);
}