From 95c75073d3d1ca9dcae41784453172f199bb2c0f Mon Sep 17 00:00:00 2001 From: Mark Johnston Date: Fri, 14 Jan 2022 15:00:01 -0500 Subject: 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 --- contrib/netbsd-tests/lib/libc/sys/t_stat.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'contrib/netbsd-tests') 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); } -- cgit v1.2.3