From: Masatake YAMATO Date: Sat, 25 Feb 2023 17:35:13 +0000 (+0900) Subject: tests: (lsfd) skip if the platform doesn't permit to use unshare(2) X-Git-Tag: v2.39-rc1~52^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4203b76b51e4f96672370ac3fa819847789e2bb8;p=thirdparty%2Futil-linux.git tests: (lsfd) skip if the platform doesn't permit to use unshare(2) Signed-off-by: Masatake YAMATO --- diff --git a/tests/expected/lsfd/mkfds-unix-in-netns b/tests/expected/lsfd/mkfds-unix-in-netns deleted file mode 100644 index d49f1e7c79..0000000000 --- a/tests/expected/lsfd/mkfds-unix-in-netns +++ /dev/null @@ -1,18 +0,0 @@ - 5 SOCK state=listen path=test_mkfds-unix-stream-ns listen stream 1 test_mkfds-unix-stream-ns -ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH: 0 -the netns for the stream socket is extracted as expectedly - 5 SOCK state=listen path=@test_mkfds-unix-stream-ns listen stream 1 @test_mkfds-unix-stream-ns -ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH: 0 -the netns for the abstract stream socket is extracted as expectedly - 5 SOCK state=unconnected path=test_mkfds-unix-dgram-ns type=dgram unconnected dgram 0 test_mkfds-unix-dgram-ns -ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH: 0 -the netns for the dgram socket is extracted as expectedly - 5 SOCK state=unconnected path=@test_mkfds-unix-dgram-ns type=dgram unconnected dgram 0 @test_mkfds-unix-dgram-ns -ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH: 0 -the netns for the abstract dgram socket is extracted as expectedly - 5 SOCK state=listen path=test_mkfds-unix-seqpacket-ns type=seqpacket listen seqpacket 1 test_mkfds-unix-seqpacket-ns -ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH: 0 -the netns for the seqpacket socket is extracted as expectedly - 5 SOCK state=listen path=@test_mkfds-unix-seqpacket-ns type=seqpacket listen seqpacket 1 @test_mkfds-unix-seqpacket-ns -ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH: 0 -the netns for the abstract seqpacket socket is extracted as expectedly diff --git a/tests/expected/lsfd/mkfds-unix-in-netns-dgram b/tests/expected/lsfd/mkfds-unix-in-netns-dgram new file mode 100644 index 0000000000..c33dd9a7cc --- /dev/null +++ b/tests/expected/lsfd/mkfds-unix-in-netns-dgram @@ -0,0 +1,6 @@ + 5 SOCK state=unconnected path=test_mkfds-unix-dgram-ns type=dgram unconnected dgram 0 test_mkfds-unix-dgram-ns +ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH: 0 +the netns for the dgram socket is extracted as expectedly + 5 SOCK state=unconnected path=@test_mkfds-unix-dgram-ns type=dgram unconnected dgram 0 @test_mkfds-unix-dgram-ns +ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH: 0 +the netns for the abstract dgram socket is extracted as expectedly diff --git a/tests/expected/lsfd/mkfds-unix-in-netns-seqpacket b/tests/expected/lsfd/mkfds-unix-in-netns-seqpacket new file mode 100644 index 0000000000..1f70061118 --- /dev/null +++ b/tests/expected/lsfd/mkfds-unix-in-netns-seqpacket @@ -0,0 +1,6 @@ + 5 SOCK state=listen path=test_mkfds-unix-seqpacket-ns type=seqpacket listen seqpacket 1 test_mkfds-unix-seqpacket-ns +ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH: 0 +the netns for the seqpacket socket is extracted as expectedly + 5 SOCK state=listen path=@test_mkfds-unix-seqpacket-ns type=seqpacket listen seqpacket 1 @test_mkfds-unix-seqpacket-ns +ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH: 0 +the netns for the abstract seqpacket socket is extracted as expectedly diff --git a/tests/expected/lsfd/mkfds-unix-in-netns-stream b/tests/expected/lsfd/mkfds-unix-in-netns-stream new file mode 100644 index 0000000000..fd091059aa --- /dev/null +++ b/tests/expected/lsfd/mkfds-unix-in-netns-stream @@ -0,0 +1,6 @@ + 5 SOCK state=listen path=test_mkfds-unix-stream-ns listen stream 1 test_mkfds-unix-stream-ns +ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH: 0 +the netns for the stream socket is extracted as expectedly + 5 SOCK state=listen path=@test_mkfds-unix-stream-ns listen stream 1 @test_mkfds-unix-stream-ns +ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH: 0 +the netns for the abstract stream socket is extracted as expectedly diff --git a/tests/helpers/test_mkfds.c b/tests/helpers/test_mkfds.c index 694c51693e..091ef7c9e7 100644 --- a/tests/helpers/test_mkfds.c +++ b/tests/helpers/test_mkfds.c @@ -1138,7 +1138,8 @@ static void *make_unix_in_new_netns(const struct factory *factory, struct fdesc int e = errno; close_fdesc(self_netns, NULL); errno = e; - err(EXIT_FAILURE, "failed in unshare"); + err((errno == EPERM? EXIT_EPERM: EXIT_FAILURE), + "failed in unshare"); } tmp_netns = open("/proc/self/ns/net", O_RDONLY); diff --git a/tests/ts/lsfd/mkfds-unix-in-netns b/tests/ts/lsfd/mkfds-unix-in-netns index f39406e2c0..4e46f577fa 100755 --- a/tests/ts/lsfd/mkfds-unix-in-netns +++ b/tests/ts/lsfd/mkfds-unix-in-netns @@ -21,6 +21,8 @@ TS_DESC="UNIX sockets made in a differenct net namespace" ts_init "$*" ts_skip_nonroot +. "$TS_SELF/lsfd-functions.bash" + ts_check_test_command "$TS_CMD_LSFD" ts_check_test_command "$TS_HELPER_MKFDS" @@ -53,8 +55,9 @@ compare_net_namespaces() fi } -{ - for t in stream dgram seqpacket; do +for t in stream dgram seqpacket; do + ts_init_subtest "$t" + { coproc MKFDS { "$TS_HELPER_MKFDS" unix-in-netns $FDSELFNS $FDALTNS $FDSOCK \ path=test_mkfds-unix-$t-ns \ type=$t ; } @@ -85,7 +88,13 @@ compare_net_namespaces() kill -CONT "${PID}" fi wait "${MKFDS_PID}" - done -} > "$TS_OUTPUT" 2>&1 + } > "$TS_OUTPUT" 2>&1 + if [ "$?" == "$EPERM" ]; then + ts_skip_subtest "unshare(2) is not permitted on this platform" + continue + fi + ts_finalize_subtest +done + ts_finalize