]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
tests: (lsfd) adjust the output for unix stream sockets
authorMasatake YAMATO <yamato@redhat.com>
Sat, 15 Apr 2023 03:07:58 +0000 (12:07 +0900)
committerMasatake YAMATO <yamato@redhat.com>
Sun, 16 Apr 2023 12:08:45 +0000 (21:08 +0900)
lsfd changes the output of NAME column for a unix stream socket
whether the kernel reports it is a "UNIX-STREAM" socket or a "UNIX"
socket. Rather older version of kernels report the socket "UNIX"

For "UNIX", lsfd appends "type=stream" to the NAME column.
This caused a failure in test cases. To avoid the failure,
this change strips "type=stream" from the output before
comparing the output strings and expected strings.

See also the commit log of a60ac11fe0087584f37329b4733edfade3452c64.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
tests/ts/lsfd/lsfd-functions.bash
tests/ts/lsfd/mkfds-unix-in-netns
tests/ts/lsfd/mkfds-unix-stream

index 014145e3ca3a2f3ae6e09b54a81c35402f5f0950..1ebc327592ad7045983c511a76dcf88589f5d941 100644 (file)
@@ -57,3 +57,12 @@ function lsfd_compare_dev {
        echo 'STAT_DEVNUM:' "${STAT_DEVNUM}"
     fi
 }
+
+lsfd_strip_type_stream()
+{
+    # lsfd changes the output of NAME column for a unix stream socket
+    # whether the kernel reports it is a "UNIX-STREAM" socket or a
+    # "UNIX" socket. For "UNIX", lsfd appends "type=stream" to the
+    # NAME column. Let's delete the appended string before comparing.
+    sed -e 's/ type=stream//'
+}
index 4e46f577fa63461163c2834db79ae457374afd49..cfca087b1501b214b8d3d149a5c56e846a46fa69 100755 (executable)
@@ -55,6 +55,15 @@ compare_net_namespaces()
     fi
 }
 
+strip_type_stream()
+{
+    if [ "$1" = stream ]; then
+       lsfd_strip_type_stream
+    else
+       cat
+    fi
+}
+
 for t in stream dgram seqpacket; do
     ts_init_subtest "$t"
     {
@@ -64,8 +73,8 @@ for t in stream dgram seqpacket; do
        if read -r -u "${MKFDS[0]}" PID; then
            ${TS_CMD_LSFD} -n \
                           -o ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH \
-                          -p "${PID}" -Q "${EXPR}"
-           echo 'ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH': $?
+                          -p "${PID}" -Q "${EXPR}" | strip_type_stream $t
+           echo 'ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH': ${PIPESTATUS[0]}
 
            compare_net_namespaces "$t" "${PID}"
 
@@ -80,8 +89,8 @@ for t in stream dgram seqpacket; do
        if read -r -u "${MKFDS[0]}" PID; then
            ${TS_CMD_LSFD} -n \
                           -o ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH \
-                          -p "${PID}" -Q "${EXPR}"
-           echo 'ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH': $?
+                          -p "${PID}" -Q "${EXPR}" | strip_type_stream $t
+           echo 'ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH': ${PIPESTATUS[0]}
 
            compare_net_namespaces "abstract $t" "${PID}"
 
index 2d0dd67fb890f138c6cd1b919d7e02d62ee1a528..fe08e720350ff7598a8bf74e7eee7672ce90e3a4 100755 (executable)
@@ -20,6 +20,8 @@ TS_DESC="UNIX stream sockets"
 . "$TS_TOPDIR"/functions.sh
 ts_init "$*"
 
+. "$TS_SELF/lsfd-functions.bash"
+
 ts_check_test_command "$TS_CMD_LSFD"
 ts_check_test_command "$TS_HELPER_MKFDS"
 
@@ -41,8 +43,8 @@ EXPR='(((TYPE == "UNIX-STREAM") or (TYPE == "UNIX")) and (FD >= 3) and (FD <= 5)
        if read -r -u "${MKFDS[0]}" PID; then
            ${TS_CMD_LSFD} -n \
                           -o ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH \
-                          -p "${PID}" -Q "${EXPR}"
-           echo 'ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH': $?
+                          -p "${PID}" -Q "${EXPR}" | lsfd_strip_type_stream
+           echo 'ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH': ${PIPESTATUS[0]}
 
            kill -CONT "${PID}"
        fi
@@ -54,8 +56,8 @@ EXPR='(((TYPE == "UNIX-STREAM") or (TYPE == "UNIX")) and (FD >= 3) and (FD <= 5)
        if read -r -u "${MKFDS[0]}" PID; then
            ${TS_CMD_LSFD} -n \
                           -o ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH \
-                          -p "${PID}" -Q "${EXPR}"
-           echo '(abs) ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH': $?
+                          -p "${PID}" -Q "${EXPR}" | lsfd_strip_type_stream
+           echo '(abs) ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH': ${PIPESTATUS[0]}
 
            kill -CONT "${PID}"
        fi
@@ -69,8 +71,8 @@ EXPR='(((TYPE == "UNIX-STREAM") or (TYPE == "UNIX")) and (FD >= 3) and (FD <= 5)
        if read -r -u "${MKFDS[0]}" PID; then
            ${TS_CMD_LSFD} -n \
                           -o ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH \
-                          -p "${PID}" -Q "${EXPR}"
-           echo '(shutdown) ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH': $?
+                          -p "${PID}" -Q "${EXPR}" | lsfd_strip_type_stream
+           echo '(shutdown) ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH': ${PIPESTATUS[0]}
            # Surprisingly, the socket status doesn't change at all.
 
            kill -CONT "${PID}"
@@ -83,8 +85,8 @@ EXPR='(((TYPE == "UNIX-STREAM") or (TYPE == "UNIX")) and (FD >= 3) and (FD <= 5)
        if read -r -u "${MKFDS[0]}" PID; then
            ${TS_CMD_LSFD} -n \
                           -o ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH \
-                          -p "${PID}" -Q "${EXPR}"
-           echo 'ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH': $?
+                          -p "${PID}" -Q "${EXPR}" | lsfd_strip_type_stream
+           echo 'ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH': ${PIPESTATUS[0]}
 
            kill -CONT "${PID}"
        fi