]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
tests: (lsfd) adjust the output for unix datagram sockets already connected
authorMasatake YAMATO <yamato@redhat.com>
Sat, 15 Apr 2023 12:47:59 +0000 (21:47 +0900)
committerMasatake YAMATO <yamato@redhat.com>
Sun, 16 Apr 2023 12:08:45 +0000 (21:08 +0900)
Though older kernels report such sockets as "unconnected" via /proc/net/unix,
the newer kernels report them as "connected". The change is introduced in
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=83301b5367a98c17ec0d76c7bc0ccdc3c7e7ad6d

This caused a failure in a test case. To avoid the failure,
this change rewrites "unconnected" in the lsfd's output to "connected".

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

index 8f68db930f4969697dc5b7602b5d6577183352e7..0306615b2eed98c493684bd298f368e0c3e69dda 100644 (file)
@@ -73,6 +73,9 @@ lsfd_make_state_connected()
     # sockerpair(2) are "connected" via /proc/net/unix though Older
     # kernels report "unconnected".
     #
+    # Newer kernels report the states of unix dgram sockets already
+    # connect(2)'ed are "connected", too.
+    #
     # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=83301b5367a98c17ec0d76c7bc0ccdc3c7e7ad6d
     #
     # This rewriting adjusts the output of lsfd running on older kernels
index 1464054ca5df38674d519688851f9a8e18134671..c8b40eb0d570ad77fd62007335e33a79be580ad1 100755 (executable)
@@ -20,6 +20,7 @@ TS_DESC="UNIX dgram 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"
 
@@ -30,14 +31,21 @@ FDS=3
 FDC=4
 EXPR='(TYPE == "UNIX") and ((FD == 3) or (FD == 4))'
 
+make_state_connected()
+{
+    # The first one is for rewriting NAME column.
+    # The second one is for rewriting STATE column.
+    lsfd_make_state_connected | sed -e 's/unconnected/ connected/'
+}
+
 {
     coproc MKFDS { "$TS_HELPER_MKFDS" unix-dgram $FDS $FDC \
                                      path=test_mkfds-unix-dgram ; }
     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}" | make_state_connected
+       echo 'ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH': ${PIPESTATUS[0]}
 
        kill -CONT "${PID}"
     fi
@@ -49,7 +57,7 @@ EXPR='(TYPE == "UNIX") and ((FD == 3) or (FD == 4))'
     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}"
+                      -p "${PID}" -Q "${EXPR}" | make_state_connected
        echo 'ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH': $?
 
        kill -CONT "${PID}"