From: Masatake YAMATO Date: Sat, 15 Apr 2023 12:47:59 +0000 (+0900) Subject: tests: (lsfd) adjust the output for unix datagram sockets already connected X-Git-Tag: v2.39-rc3~21^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c3332a19645f52eacd523a14ab156098833b66e1;p=thirdparty%2Futil-linux.git tests: (lsfd) adjust the output for unix datagram sockets already connected 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 --- diff --git a/tests/ts/lsfd/lsfd-functions.bash b/tests/ts/lsfd/lsfd-functions.bash index 8f68db930f..0306615b2e 100644 --- a/tests/ts/lsfd/lsfd-functions.bash +++ b/tests/ts/lsfd/lsfd-functions.bash @@ -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 diff --git a/tests/ts/lsfd/mkfds-unix-dgram b/tests/ts/lsfd/mkfds-unix-dgram index 1464054ca5..c8b40eb0d5 100755 --- a/tests/ts/lsfd/mkfds-unix-dgram +++ b/tests/ts/lsfd/mkfds-unix-dgram @@ -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}"