Module Name: src Committed By: ozaki-r Date: Thu Nov 17 08:34:39 UTC 2022
Modified Files: src/tests/net/net: t_socket_afinet.c Log Message: tests: make t_socket_afinet.c run on rump kernel To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/tests/net/net/t_socket_afinet.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/net/net/t_socket_afinet.c diff -u src/tests/net/net/t_socket_afinet.c:1.1 src/tests/net/net/t_socket_afinet.c:1.2 --- src/tests/net/net/t_socket_afinet.c:1.1 Thu Nov 17 08:33:27 2022 +++ src/tests/net/net/t_socket_afinet.c Thu Nov 17 08:34:39 2022 @@ -1,3 +1,5 @@ +/* $NetBSD: t_socket_afinet.c,v 1.2 2022/11/17 08:34:39 ozaki-r Exp $ */ + /*- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * @@ -26,7 +28,12 @@ */ #include <sys/cdefs.h> +#ifdef __NetBSD__ +__RCSID("$NetBSD: t_socket_afinet.c,v 1.2 2022/11/17 08:34:39 ozaki-r Exp $"); +#define USE_RUMPKERNEL 1 +#else __FBSDID("$FreeBSD$"); +#endif #include <sys/errno.h> #include <sys/socket.h> @@ -35,11 +42,30 @@ __FBSDID("$FreeBSD$"); #include <atf-c.h> +#ifdef USE_RUMPKERNEL +#include <rump/rump.h> +#include <rump/rump_syscalls.h> + +#define socket rump_sys_socket +#define bind rump_sys_bind +#define listen rump_sys_listen +#define connect rump_sys_connect +#define write rump_sys_write +#define poll rump_sys_poll +#define close rump_sys_close + +#define RUMP_INIT() rump_init() +#else +#define RUMP_INIT() do { } while (0) +#endif + ATF_TC_WITHOUT_HEAD(socket_afinet); ATF_TC_BODY(socket_afinet, tc) { int sd; + RUMP_INIT(); + sd = socket(PF_INET, SOCK_DGRAM, 0); ATF_CHECK(sd >= 0); @@ -52,6 +78,12 @@ ATF_TC_BODY(socket_afinet_bind_zero, tc) int sd, rc; struct sockaddr_in sin; + RUMP_INIT(); + +#ifdef __NetBSD__ + atf_tc_expect_fail("NetBSD doesn't allow sin_family == 0 (sin_len == 0 too)"); +#endif + if (atf_tc_get_config_var_as_bool_wd(tc, "ci", false)) atf_tc_skip("doesn't work when mac_portacl(4) loaded (https://bugs.freebsd.org/238781)"); @@ -76,6 +108,8 @@ ATF_TC_BODY(socket_afinet_bind_ok, tc) int sd, rc; struct sockaddr_in sin; + RUMP_INIT(); + sd = socket(PF_INET, SOCK_DGRAM, 0); ATF_CHECK(sd >= 0); @@ -90,6 +124,7 @@ ATF_TC_BODY(socket_afinet_bind_ok, tc) close(sd); } +#ifdef POLLRDHUP ATF_TC_WITHOUT_HEAD(socket_afinet_poll_no_rdhup); ATF_TC_BODY(socket_afinet_poll_no_rdhup, tc) { @@ -98,6 +133,8 @@ ATF_TC_BODY(socket_afinet_poll_no_rdhup, struct pollfd pfd; int one = 1; + RUMP_INIT(); + /* Verify that we don't expose POLLRDHUP if not requested. */ /* Server setup. */ @@ -158,6 +195,8 @@ ATF_TC_BODY(socket_afinet_poll_rdhup, tc char buffer; int one = 1; + RUMP_INIT(); + /* Verify that server sees POLLRDHUP if it asks for it. */ /* Server setup. */ @@ -227,6 +266,7 @@ ATF_TC_BODY(socket_afinet_poll_rdhup, tc close(ss2); close(ss); } +#endif /* POLLRDHUP */ ATF_TP_ADD_TCS(tp) { @@ -234,8 +274,10 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, socket_afinet); ATF_TP_ADD_TC(tp, socket_afinet_bind_zero); ATF_TP_ADD_TC(tp, socket_afinet_bind_ok); +#ifdef POLLRDHUP ATF_TP_ADD_TC(tp, socket_afinet_poll_no_rdhup); ATF_TP_ADD_TC(tp, socket_afinet_poll_rdhup); +#endif return atf_no_error(); }