+++ /dev/null
- 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
--- /dev/null
+ 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
--- /dev/null
+ 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
--- /dev/null
+ 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
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);
ts_init "$*"
ts_skip_nonroot
+. "$TS_SELF/lsfd-functions.bash"
+
ts_check_test_command "$TS_CMD_LSFD"
ts_check_test_command "$TS_HELPER_MKFDS"
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 ; }
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