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
This commit is contained in:
parent
7bd2df8c82
commit
95c75073d3
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user