Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Jan 2022 00:53:24 GMT
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 812345b1d469 - stable/13 - netbsd-tests: Fix the libc stat_socket test
Message-ID:  <202201210053.20L0rOxX080169@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=812345b1d469e5bb90f5487fef1e4ab16890cc7a

commit 812345b1d469e5bb90f5487fef1e4ab16890cc7a
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2022-01-14 20:00:01 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2022-01-21 00:52:36 +0000

    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
    Sponsored by:   The FreeBSD Foundation
    
    (cherry picked from commit 95c75073d3d1ca9dcae41784453172f199bb2c0f)
---
 contrib/netbsd-tests/lib/libc/sys/t_stat.c | 11 ++++-------
 1 file 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);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202201210053.20L0rOxX080169>