]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
tests: (lsfd) skip if the platform doesn't permit to use unshare(2)
authorMasatake YAMATO <yamato@redhat.com>
Sat, 25 Feb 2023 17:35:13 +0000 (02:35 +0900)
committerMasatake YAMATO <yamato@redhat.com>
Sun, 26 Feb 2023 08:27:00 +0000 (17:27 +0900)
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
tests/expected/lsfd/mkfds-unix-in-netns [deleted file]
tests/expected/lsfd/mkfds-unix-in-netns-dgram [new file with mode: 0644]
tests/expected/lsfd/mkfds-unix-in-netns-seqpacket [new file with mode: 0644]
tests/expected/lsfd/mkfds-unix-in-netns-stream [new file with mode: 0644]
tests/helpers/test_mkfds.c
tests/ts/lsfd/mkfds-unix-in-netns

diff --git a/tests/expected/lsfd/mkfds-unix-in-netns b/tests/expected/lsfd/mkfds-unix-in-netns
deleted file mode 100644 (file)
index d49f1e7..0000000
+++ /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 (file)
index 0000000..c33dd9a
--- /dev/null
@@ -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 (file)
index 0000000..1f70061
--- /dev/null
@@ -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 (file)
index 0000000..fd09105
--- /dev/null
@@ -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
index 694c51693eb0ec1ff55ac49b8878b8ffe4d373e0..091ef7c9e78e2c2c5482e4ff89b947f85a8518d2 100644 (file)
@@ -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);
index f39406e2c0ed603850d037859584191d3e5da72c..4e46f577fa63461163c2834db79ae457374afd49 100755 (executable)
@@ -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