From: Masatake YAMATO Date: Thu, 31 Aug 2023 18:20:20 +0000 (+0900) Subject: tests: (lsfd) avoid race conditions (part 1) X-Git-Tag: v2.40-rc1~253^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0fec4965f6c0f95b56df8ae67a77a1bdc4dda8a1;p=thirdparty%2Futil-linux.git tests: (lsfd) avoid race conditions (part 1) For terminating test_mkfds process, the test cases used SIGCONT. test_mkfds used pselect for waiting for the signal. After receiving the signal test_mkfds exited. There is a race condition in this logic. If a test case sends SIGCONT to test_mkfds process before the process calls pselect, the signal may be lost. As the result, test_mkfds keeps waiting forever in pselect. This change replaces the code sending SIGCONT with writing to the pipe connecting to the stdin of test_mkfds. test_mkfds also monitors its stdin in the pselect call. Unlike the signal, the written bytes to the pipe are queued. This change doesn't touch tests/ts/lsfd/option-inet and option-summary test cases. They don't use coproc. So fixing the race condition in the test cases can be much complicated. I will make a dedicated pull request (part 2) for them. Signed-off-by: Masatake YAMATO --- diff --git a/tests/ts/lsfd/column-ainodeclass b/tests/ts/lsfd/column-ainodeclass index 6391c48165..3a10026c21 100755 --- a/tests/ts/lsfd/column-ainodeclass +++ b/tests/ts/lsfd/column-ainodeclass @@ -38,7 +38,7 @@ for C in pidfd inotify; do ${TS_CMD_LSFD} -n -o ASSOC,STTYPE,AINODECLASS -p "${PID}" -Q "${EXPR}" echo "$C"':ASSOC,STTYPE,AINODECLASS': $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" } > "$TS_OUTPUT" 2>&1 diff --git a/tests/ts/lsfd/column-deleted b/tests/ts/lsfd/column-deleted index 7898029d46..128cd0e8a5 100755 --- a/tests/ts/lsfd/column-deleted +++ b/tests/ts/lsfd/column-deleted @@ -38,7 +38,7 @@ ts_init_subtest $C EXPR='(FD == '"$FD"')' ${TS_CMD_LSFD} -p "$PID" -n -o DELETED -Q "${EXPR}" echo "$C: DELETED: " $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi } > "$TS_OUTPUT" 2>&1 wait "${MKFDS_PID}" @@ -52,7 +52,7 @@ ts_init_subtest $C EXPR='(FD == '"$FD"')' ${TS_CMD_LSFD} -p "$PID" -n -o DELETED -Q "${EXPR}" echo "$C: DELETED: " $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi } > "$TS_OUTPUT" 2>&1 wait "${MKFDS_PID}" diff --git a/tests/ts/lsfd/column-name b/tests/ts/lsfd/column-name index 0cac74bdea..a9d46879ad 100755 --- a/tests/ts/lsfd/column-name +++ b/tests/ts/lsfd/column-name @@ -60,7 +60,7 @@ for C in ro-regular-file pidfd socketpair; do } echo "$C"':ASSOC,KNAME,NAME': ${PIPESTATUS[0]} - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi } > "$TS_OUTPUT" 2>&1 wait "${MKFDS_PID}" @@ -81,7 +81,7 @@ ts_init_subtest deleted-file sed -e 's#.*/\([^/]\+\)#\1#' echo "$C: DELETED,NAME: " ${PIPESTATUS[0]} - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi } > "$TS_OUTPUT" 2>&1 wait "${MKFDS_PID}" diff --git a/tests/ts/lsfd/column-source-with-root b/tests/ts/lsfd/column-source-with-root index 70a9714caa..c00ee155c6 100755 --- a/tests/ts/lsfd/column-source-with-root +++ b/tests/ts/lsfd/column-source-with-root @@ -35,7 +35,7 @@ ts_init_subtest SysVIPC-shmem if read -u ${MKFDS[0]} PID; then ${TS_CMD_LSFD} -p "$PID" -n -o ASSOC,SOURCE -Q "${EXPR}" echo 'ASSOC,SOURCE': $? - kill -CONT ${PID} + echo DONE >&"${MKFDS[1]}" fi wait ${MKFDS_PID} } > "$TS_OUTPUT" 2>&1 diff --git a/tests/ts/lsfd/column-type b/tests/ts/lsfd/column-type index cf6175efaa..8ededd44f3 100755 --- a/tests/ts/lsfd/column-type +++ b/tests/ts/lsfd/column-type @@ -46,7 +46,7 @@ for C in ro-regular-file pidfd inotify socketpair; do ${TS_CMD_LSFD} -n -o ASSOC,STTYPE,TYPE -p "${PID}" -Q "${EXPR}" echo "$C"':ASSOC,STTYPE,TYPE': $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" } > "$TS_OUTPUT" 2>&1 diff --git a/tests/ts/lsfd/column-xmode b/tests/ts/lsfd/column-xmode index 651f53277a..4de623ff00 100755 --- a/tests/ts/lsfd/column-xmode +++ b/tests/ts/lsfd/column-xmode @@ -39,7 +39,7 @@ ts_init_subtest "MODE-r-bit" if read -r -u "${MKFDS[0]}" PID; then "${TS_CMD_LSFD}" -n -o MODE -p "${PID}" -Q "${EXPR}" echo "MODE(r-bit): " $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi } > "$TS_OUTPUT" 2>&1 wait "${MKFDS_PID}" @@ -51,7 +51,7 @@ ts_init_subtest "XMODE-r-bit" if read -r -u "${MKFDS[0]}" PID; then "${TS_CMD_LSFD}" -n -o XMODE -p "${PID}" -Q "${EXPR}" echo "XMODE(r-bit): " $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi } > "$TS_OUTPUT" 2>&1 wait "${MKFDS_PID}" @@ -64,7 +64,7 @@ ts_init_subtest "MODE-w-bit" if read -r -u "${MKFDS[0]}" PID; then "${TS_CMD_LSFD}" -n -o MODE -p "${PID}" -Q "${EXPR}" echo "MODE(w-bit): " $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi } > "$TS_OUTPUT" 2>&1 wait "${MKFDS_PID}" @@ -76,7 +76,7 @@ ts_init_subtest "XMODE-w-bit" if read -r -u "${MKFDS[0]}" PID; then "${TS_CMD_LSFD}" -n -o XMODE -p "${PID}" -Q "${EXPR}" echo "XMODE(w-bit): " $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi } > "$TS_OUTPUT" 2>&1 wait "${MKFDS_PID}" @@ -92,7 +92,7 @@ else if read -r -u "${MKFDS[0]}" PID; then "${TS_CMD_LSFD}" -n -o MODE -p "${PID}" -Q "${EXPR}" echo "MODE(x-bit): " $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi } > "$TS_OUTPUT" 2>&1 wait "${MKFDS_PID}" @@ -108,7 +108,7 @@ else if read -r -u "${MKFDS[0]}" PID; then "${TS_CMD_LSFD}" -n -o XMODE -p "${PID}" -Q "${EXPR}" echo "XMODE(x-bit): " $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi } > "$TS_OUTPUT" 2>&1 wait "${MKFDS_PID}" @@ -122,7 +122,7 @@ ts_init_subtest "XMODE-D-bit" if read -r -u "${MKFDS[0]}" PID; then "${TS_CMD_LSFD}" -n -o XMODE -p "${PID}" -Q "${EXPR}" echo "XMODE(D-bit): " $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi } > "$TS_OUTPUT" 2>&1 wait "${MKFDS_PID}" @@ -135,7 +135,7 @@ for m in flock-sh posix-r- ofd-r-; do if read -r -u "${MKFDS[0]}" PID; then "${TS_CMD_LSFD}" -n -o XMODE -p "${PID}" -Q "${EXPR}" echo "XMODE(l-bit): " $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi } > "$TS_OUTPUT" 2>&1 wait "${MKFDS_PID}" @@ -150,7 +150,7 @@ touch "$f" if read -r -u "${MKFDS[0]}" PID; then "${TS_CMD_LSFD}" -n -o XMODE -p "${PID}" -Q "${EXPR}" echo "XMODE(l-bit): " $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi } > "$TS_OUTPUT" 2>&1 wait "${MKFDS_PID}" @@ -164,7 +164,7 @@ for m in flock-ex posix--w posix-rw ofd--w ofd-rw lease-w; do if read -r -u "${MKFDS[0]}" PID; then "${TS_CMD_LSFD}" -n -o XMODE -p "${PID}" -Q "${EXPR}" echo "XMODE(L-bit): " $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi } > "$TS_OUTPUT" 2>&1 wait "${MKFDS_PID}" @@ -180,7 +180,7 @@ ts_init_subtest "XMODE-m-bit" if read -r -u "${MKFDS[0]}" PID; then "${TS_CMD_LSFD}" -n -o XMODE -p "${PID}" -Q "${EXPR}" echo "XMODE(m-bit): " $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi } > "$TS_OUTPUT" 2>&1 wait "${MKFDS_PID}" diff --git a/tests/ts/lsfd/filter-floating-point-nums b/tests/ts/lsfd/filter-floating-point-nums index 1dfcfc78e5..05bf5d551d 100755 --- a/tests/ts/lsfd/filter-floating-point-nums +++ b/tests/ts/lsfd/filter-floating-point-nums @@ -78,7 +78,7 @@ EXPR= ${TS_CMD_LSFD} -n -o FD,TIMERFD.INTERVAL -p "$PID" -Q "$EXPR" echo "FD,TIMERFD.INTERVAL: $EXPR": $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" diff --git a/tests/ts/lsfd/mkfds-bpf-prog b/tests/ts/lsfd/mkfds-bpf-prog index ba402cbe84..72a4aea202 100755 --- a/tests/ts/lsfd/mkfds-bpf-prog +++ b/tests/ts/lsfd/mkfds-bpf-prog @@ -36,7 +36,7 @@ FD=3 "${TS_CMD_LSFD}" -r -n -oBPF-PROG.TYPE,BPF-PROG.TYPE.RAW -p "${PID}" -Q "(FD == $FD)" echo "BPF-PROG.TYPE,BPF-PROG.TYPE.RAW": $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" } > "$TS_OUTPUT" 2>&1 diff --git a/tests/ts/lsfd/mkfds-cdev-tun b/tests/ts/lsfd/mkfds-cdev-tun index 25bf03efce..7354509c4d 100755 --- a/tests/ts/lsfd/mkfds-cdev-tun +++ b/tests/ts/lsfd/mkfds-cdev-tun @@ -57,7 +57,7 @@ IFNAME= echo "output TUN.IFACE: $output" fi - kill -CONT ${PID} + echo DONE >&"${MKFDS[1]}" fi wait ${MKFDS_PID} } > $TS_OUTPUT 2>&1 diff --git a/tests/ts/lsfd/mkfds-directory b/tests/ts/lsfd/mkfds-directory index ef769c916b..738cb86885 100755 --- a/tests/ts/lsfd/mkfds-directory +++ b/tests/ts/lsfd/mkfds-directory @@ -101,7 +101,7 @@ esac echo 'stat reports:' "$(stat -c %h /)" fi - kill -CONT ${PID} + echo DONE >&"${MKFDS[1]}" fi wait ${MKFDS_PID} } > $TS_OUTPUT 2>&1 diff --git a/tests/ts/lsfd/mkfds-eventfd b/tests/ts/lsfd/mkfds-eventfd index 5fa58427e8..02c86a604a 100755 --- a/tests/ts/lsfd/mkfds-eventfd +++ b/tests/ts/lsfd/mkfds-eventfd @@ -96,7 +96,7 @@ ENDPOINTS= echo 'lsfd:' "$tmp" fi - kill -CONT ${PID0} + echo DONE >&"${MKFDS[1]}" fi wait ${MKFDS_PID} } > $TS_OUTPUT 2>&1 diff --git a/tests/ts/lsfd/mkfds-eventpoll b/tests/ts/lsfd/mkfds-eventpoll index 0d0cc68ce0..230d6c480d 100755 --- a/tests/ts/lsfd/mkfds-eventpoll +++ b/tests/ts/lsfd/mkfds-eventpoll @@ -38,7 +38,7 @@ FD2=7 echo 'ASSOC,TYPE,NAME,EVENTPOLL.TFDS': $? ${TS_CMD_LSFD} -J -p "${PID}" -n -o ASSOC,TYPE,NAME,EVENTPOLL.TFDS -Q "${EXPR}" echo 'ASSOC,TYPE,NAME,EVENTPOLL.TFDS (JSON)': $? - kill -CONT ${PID} + echo DONE >&"${MKFDS[1]}" fi wait ${MKFDS_PID} } > $TS_OUTPUT 2>&1 diff --git a/tests/ts/lsfd/mkfds-inotify b/tests/ts/lsfd/mkfds-inotify index 6d29c7c99f..728c27de20 100755 --- a/tests/ts/lsfd/mkfds-inotify +++ b/tests/ts/lsfd/mkfds-inotify @@ -65,7 +65,7 @@ EOF echo "INOTIFY.INODES.RAW": "$INODES_RAW_JSON" fi - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" } > "$TS_OUTPUT" 2>&1 diff --git a/tests/ts/lsfd/mkfds-mapped-packet-socket b/tests/ts/lsfd/mkfds-mapped-packet-socket index a1fb68f985..12c5ef6bc9 100755 --- a/tests/ts/lsfd/mkfds-mapped-packet-socket +++ b/tests/ts/lsfd/mkfds-mapped-packet-socket @@ -49,7 +49,7 @@ for SOCKTYPE in RAW DGRAM; do ${TS_CMD_LSFD} -p "$PID" -n -o NAME,SOCK.TYPE,SOCK.PROTONAME,PACKET.IFACE,PACKET.PROTOCOL -Q "${EXPR}" echo 'NAME,SOCK.TYPE,SOCK.PROTONAME,PACKET.IFACE,PACKET.PROTOCOL': $? - kill -CONT ${PID} + echo DONE >&"${MKFDS[1]}" fi wait ${MKFDS_PID} ERR=$? diff --git a/tests/ts/lsfd/mkfds-mqueue b/tests/ts/lsfd/mkfds-mqueue index 3023f1e005..fac1a793f6 100755 --- a/tests/ts/lsfd/mkfds-mqueue +++ b/tests/ts/lsfd/mkfds-mqueue @@ -74,7 +74,7 @@ ENDPOINTS= echo 'lsfd:' "$tmp" fi - kill -CONT ${PID0} + echo DONE >&"${MKFDS[1]}" fi wait ${MKFDS_PID} } > $TS_OUTPUT 2>&1 diff --git a/tests/ts/lsfd/mkfds-netlink-groups b/tests/ts/lsfd/mkfds-netlink-groups index 896b50cef5..b7646c2284 100755 --- a/tests/ts/lsfd/mkfds-netlink-groups +++ b/tests/ts/lsfd/mkfds-netlink-groups @@ -47,7 +47,7 @@ NETLINK_GROUPS=5 else printf "LPORT: FAILED (PID: %d != NETLINK.LPORT: %d)\n" "${PID}" "${NETLINK_LPORT}" fi - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" } > "$TS_OUTPUT" 2>&1 diff --git a/tests/ts/lsfd/mkfds-netlink-protocol b/tests/ts/lsfd/mkfds-netlink-protocol index c1a5ffc20d..abf2eb2ca2 100755 --- a/tests/ts/lsfd/mkfds-netlink-protocol +++ b/tests/ts/lsfd/mkfds-netlink-protocol @@ -46,7 +46,7 @@ NETLINK_GROUPS=5 else printf "LPORT: FAILED (PID: %d != NETLINK.LPORT: %d)\n" "${PID}" "${NETLINK_LPORT}" fi - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" } > "$TS_OUTPUT" 2>&1 diff --git a/tests/ts/lsfd/mkfds-netns b/tests/ts/lsfd/mkfds-netns index cd110f6cca..3666879786 100755 --- a/tests/ts/lsfd/mkfds-netns +++ b/tests/ts/lsfd/mkfds-netns @@ -61,7 +61,7 @@ INO_NS= echo "NAME_FD: $NAME_FD" == "net:[INO_NS: $INO_NS]": $? fi - kill -CONT ${PID} + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" } > "$TS_OUTPUT" 2>&1 diff --git a/tests/ts/lsfd/mkfds-pidfd b/tests/ts/lsfd/mkfds-pidfd index aad693ff11..b5eaef94e9 100755 --- a/tests/ts/lsfd/mkfds-pidfd +++ b/tests/ts/lsfd/mkfds-pidfd @@ -40,7 +40,7 @@ EXPR="(PID != ${TARGET}) and (FD == 3) and (PIDFD.PID == ${TARGET})" ${TS_CMD_LSFD} -n -o ASSOC,STTYPE,SOURCE,NAME,PIDFD.COMM,PIDFD.PID -p "${PID}" -p ${TARGET} -Q "${EXPR}" echo 'ASSOC,STTYPE,SOURCE,NAME,PIDFD.COMM,PIDFD.PID': $? - kill -CONT ${PID} + echo DONE >&"${MKFDS[1]}" fi wait ${MKFDS_PID} } > $TS_OUTPUT 2>&1 diff --git a/tests/ts/lsfd/mkfds-ping b/tests/ts/lsfd/mkfds-ping index c2ca049ab0..21777426ae 100755 --- a/tests/ts/lsfd/mkfds-ping +++ b/tests/ts/lsfd/mkfds-ping @@ -122,7 +122,7 @@ for i in 0 1; do -o ASSOC,TYPE,NAME,SOCK.STATE,SOCK.TYPE,${COLNS[$i]}.LADDR,${COLNS[$i]}.RADDR,PING.ID \ -p "${PID}" -Q "${EXPR[$i]}" echo "ASSOC,TYPE,NAME,SOCK.STATE,SOCK.TYPE,${COLNS[$i]}.LADDR,${COLNS[$i]}.RADDR,PING.ID": $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" @@ -132,7 +132,7 @@ for i in 0 1; do -o ASSOC,TYPE,NAME,SOCK.STATE,SOCK.TYPE,${COLNS[$i]}.LADDR,${COLNS[$i]}.RADDR,PING.ID \ -p "${PID}" -Q "${EXPR[$i]}" echo "ASSOC,TYPE,NAME,SOCK.STATE,SOCK.TYPE,${COLNS[$i]}.LADDR,${COLNS[$i]}.RADDR,PING.ID": $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi } > "$TS_OUTPUT" 2>&1 wait "${MKFDS_PID}" diff --git a/tests/ts/lsfd/mkfds-pipe-no-fork b/tests/ts/lsfd/mkfds-pipe-no-fork index e28aa9df1d..f2f950a878 100755 --- a/tests/ts/lsfd/mkfds-pipe-no-fork +++ b/tests/ts/lsfd/mkfds-pipe-no-fork @@ -116,7 +116,7 @@ EOF echo EXPECTED_LSFD_ENDPOINTS_JSON: "${EXPECTED_LSFD_ENDPOINTS_JSON}" fi - kill -CONT ${PID} + echo DONE >&"${MKFDS[1]}" fi wait ${MKFDS_PID} } > $TS_OUTPUT 2>&1 diff --git a/tests/ts/lsfd/mkfds-raw b/tests/ts/lsfd/mkfds-raw index 0260ba1d9a..5770340440 100755 --- a/tests/ts/lsfd/mkfds-raw +++ b/tests/ts/lsfd/mkfds-raw @@ -40,7 +40,7 @@ PROTOCOL=5 -o ASSOC,TYPE,NAME,SOCK.STATE,SOCK.TYPE,INET.LADDR,INET.RADDR,RAW.PROTOCOL \ -p "${PID}" -Q "${EXPR}" echo 'ASSOC,TYPE,NAME,SOCK.STATE,SOCK.TYPE,INET.LADDR,INET.RADDR,RAW.PROTOCOL': $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" diff --git a/tests/ts/lsfd/mkfds-raw6 b/tests/ts/lsfd/mkfds-raw6 index 0b82fff330..1eddea28f9 100755 --- a/tests/ts/lsfd/mkfds-raw6 +++ b/tests/ts/lsfd/mkfds-raw6 @@ -41,7 +41,7 @@ PROTOCOL=5 -o ASSOC,TYPE,NAME,SOCK.STATE,SOCK.TYPE,INET6.LADDR,INET6.RADDR,RAW.PROTOCOL \ -p "${PID}" -Q "${EXPR}" echo 'ASSOC,TYPE,NAME,SOCK.STATE,SOCK.TYPE,INET6.LADDR,INET6.RADDR,RAW.PROTOCOL': $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" diff --git a/tests/ts/lsfd/mkfds-ro-block-device b/tests/ts/lsfd/mkfds-ro-block-device index ad5a492045..7b14630022 100755 --- a/tests/ts/lsfd/mkfds-ro-block-device +++ b/tests/ts/lsfd/mkfds-ro-block-device @@ -72,7 +72,7 @@ EXPR= lsfd_compare_dev "${TS_CMD_LSFD}" "${LSFD_LOOP_BDEV}" "${EXPR}" - kill -CONT ${PID} + echo DONE >&"${MKFDS[1]}" fi wait ${MKFDS_PID} } > $TS_OUTPUT 2>&1 diff --git a/tests/ts/lsfd/mkfds-ro-regular-file b/tests/ts/lsfd/mkfds-ro-regular-file index a2c4c268b8..367a07d560 100755 --- a/tests/ts/lsfd/mkfds-ro-regular-file +++ b/tests/ts/lsfd/mkfds-ro-regular-file @@ -70,7 +70,7 @@ EXPR= lsfd_compare_dev "${TS_CMD_LSFD}" $target "${EXPR}" - kill -CONT ${PID} + echo DONE >&"${MKFDS[1]}" fi wait ${MKFDS_PID} } > $TS_OUTPUT 2>&1 diff --git a/tests/ts/lsfd/mkfds-rw-character-device b/tests/ts/lsfd/mkfds-rw-character-device index 85dd29cad6..3df29447e9 100755 --- a/tests/ts/lsfd/mkfds-rw-character-device +++ b/tests/ts/lsfd/mkfds-rw-character-device @@ -42,7 +42,7 @@ EXPR= lsfd_compare_dev "${TS_CMD_LSFD}" $target "${EXPR}" - kill -CONT ${PID} + echo DONE >&"${MKFDS[1]}" fi wait ${MKFDS_PID} } > $TS_OUTPUT 2>&1 diff --git a/tests/ts/lsfd/mkfds-signalfd b/tests/ts/lsfd/mkfds-signalfd index 8e7d5f19b1..ecc737968a 100755 --- a/tests/ts/lsfd/mkfds-signalfd +++ b/tests/ts/lsfd/mkfds-signalfd @@ -56,7 +56,7 @@ EXPR='(FD == '"$FD"')' ${TS_CMD_LSFD} -p "${PID}" -n -o "${COL}" -Q "${EXPR}" echo "${COL}": $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" } > "$TS_OUTPUT" 2>&1 diff --git a/tests/ts/lsfd/mkfds-socketpair b/tests/ts/lsfd/mkfds-socketpair index 3ffd0888e8..64984d9464 100755 --- a/tests/ts/lsfd/mkfds-socketpair +++ b/tests/ts/lsfd/mkfds-socketpair @@ -40,7 +40,7 @@ EXPR= ${TS_CMD_LSFD} -n -o ASSOC,MODE,STTYPE,SOURCE,SOCK.PROTONAME -Q "${EXPR}" | sed -e 's/UNIX-DGRAM/UNIX/' echo 'ASSOC,MODE,STTYPE,SOURCE,SOCK.PROTONAME': ${PIPESTATUS[0]} - kill -CONT ${PID} + echo DONE >&"${MKFDS[1]}" fi wait ${MKFDS_PID} } > $TS_OUTPUT 2>&1 diff --git a/tests/ts/lsfd/mkfds-symlink b/tests/ts/lsfd/mkfds-symlink index 482564519f..56eccca6cd 100755 --- a/tests/ts/lsfd/mkfds-symlink +++ b/tests/ts/lsfd/mkfds-symlink @@ -37,7 +37,7 @@ EXPR= ${TS_CMD_LSFD} -n -o ASSOC,MODE,TYPE,NAME,FLAGS -Q "${EXPR}" echo 'ASSOC,MODE,TYPE,NAME,FLAGS': $? - kill -CONT ${PID} + echo DONE >&"${MKFDS[1]}" fi wait ${MKFDS_PID} } > $TS_OUTPUT 2>&1 diff --git a/tests/ts/lsfd/mkfds-tcp b/tests/ts/lsfd/mkfds-tcp index e1ebbec92f..666cf6ac11 100755 --- a/tests/ts/lsfd/mkfds-tcp +++ b/tests/ts/lsfd/mkfds-tcp @@ -42,7 +42,7 @@ EXPR='(TYPE == "TCP") and (FD >= 3) and (FD <= 5)' -p "${PID}" -Q "${EXPR}" echo 'ASSOC,TYPE,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,INET.LADDR,INET.RADDR,TCP.LADDR,TCP.LPORT,TCP.RADDR,TCP.RPORT': $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" } > "$TS_OUTPUT" 2>&1 diff --git a/tests/ts/lsfd/mkfds-tcp6 b/tests/ts/lsfd/mkfds-tcp6 index 609ef98877..bffa630c46 100755 --- a/tests/ts/lsfd/mkfds-tcp6 +++ b/tests/ts/lsfd/mkfds-tcp6 @@ -43,7 +43,7 @@ EXPR='(TYPE == "TCPv6") and (FD >= 3) and (FD <= 5)' -p "${PID}" -Q "${EXPR}" echo 'ASSOC,TYPE,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,INET6.LADDR,INET6.RADDR,TCP.LADDR,TCP.LPORT,TCP.RADDR,TCP.RPORT': $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" } > "$TS_OUTPUT" 2>&1 diff --git a/tests/ts/lsfd/mkfds-timerfd b/tests/ts/lsfd/mkfds-timerfd index 4b6e96d758..d2e0b8a535 100755 --- a/tests/ts/lsfd/mkfds-timerfd +++ b/tests/ts/lsfd/mkfds-timerfd @@ -50,7 +50,7 @@ ts_init_subtest "realtime-remaining-and-interval" ${TS_CMD_LSFD} -p "${PID}" -n -o TIMERFD.INTERVAL -Q "${EXPR}" echo 'TIMERFD.INTERVAL': $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" } > "$TS_OUTPUT" 2>&1 @@ -76,7 +76,7 @@ ts_init_subtest "monotonic-remaining-only" ${TS_CMD_LSFD} -p "${PID}" -n -o TIMERFD.INTERVAL -Q "${EXPR}" echo 'TIMERFD.INTERVAL': $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" } > "$TS_OUTPUT" 2>&1 @@ -100,7 +100,7 @@ ts_init_subtest "boottime-interval-only" ${TS_CMD_LSFD} -p "${PID}" -n -o TIMERFD.INTERVAL -Q "${EXPR}" echo 'TIMERFD.INTERVAL': $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" } > "$TS_OUTPUT" 2>&1 diff --git a/tests/ts/lsfd/mkfds-timerfd-alarm b/tests/ts/lsfd/mkfds-timerfd-alarm index ba8d27545b..bd40d559d4 100755 --- a/tests/ts/lsfd/mkfds-timerfd-alarm +++ b/tests/ts/lsfd/mkfds-timerfd-alarm @@ -47,7 +47,7 @@ EXPR='(FD == '"$FD"')' ${TS_CMD_LSFD} -p "${PID}" -n -o TIMERFD.INTERVAL -Q "${EXPR}" echo 'TIMERFD.INTERVAL': $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" done diff --git a/tests/ts/lsfd/mkfds-udp b/tests/ts/lsfd/mkfds-udp index f202100405..3d1b272538 100755 --- a/tests/ts/lsfd/mkfds-udp +++ b/tests/ts/lsfd/mkfds-udp @@ -60,7 +60,7 @@ for lite in 0 1; do -p "${PID}" -Q "${EXPR[$lite]}" echo "ASSOC,TYPE,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,INET.LADDR,INET.RADDR,${COLNS[$lite]}.LADDR,${COLNS[$lite]}.LPORT,${COLNS[$lite]}.RADDR,${COLNS[$lite]}.RPORT": $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" @@ -85,7 +85,7 @@ for lite in 0 1; do echo "NAME pattern match: FAILED (NAME=$NAME)" fi - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" @@ -115,7 +115,7 @@ for lite in 0 1; do echo "LADDR/LPORT pattern match: FAILED (LADDR=$LADDR, LPORT=$LPORT)" fi - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" @@ -130,7 +130,7 @@ for lite in 0 1; do -p "${PID}" -Q "${EXPR[$lite]}" echo 'ASSOC,TYPE,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,INET.LADDR,INET.RADDR,UDP.LADDR,UDP.LPORT,UDP.RADDR,UDP.RPORT': $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" done > "$TS_OUTPUT" 2>&1 diff --git a/tests/ts/lsfd/mkfds-udp6 b/tests/ts/lsfd/mkfds-udp6 index eb8d3054e5..26bdacd7c8 100755 --- a/tests/ts/lsfd/mkfds-udp6 +++ b/tests/ts/lsfd/mkfds-udp6 @@ -61,7 +61,7 @@ for lite in 0 1; do -p "${PID}" -Q "${EXPR[$lite]}" echo "ASSOC,TYPE,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,INET6.LADDR,INET6.RADDR,${COLNS[$lite]}.LADDR,${COLNS[$lite]}.LPORT,${COLNS[$lite]}.RADDR,${COLNS[$lite]}.RPORT": $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" @@ -86,7 +86,7 @@ for lite in 0 1; do echo "NAME pattern match: FAILED (NAME=$NAME)" fi - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" @@ -116,7 +116,7 @@ for lite in 0 1; do echo "LADDR/LPORT pattern match: FAILED (LADDR=$LADDR, LPORT=$LPORT)" fi - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" @@ -131,7 +131,7 @@ for lite in 0 1; do -p "${PID}" -Q "${EXPR[$lite]}" echo "ASSOC,TYPE,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,INET6.LADDR,INET6.RADDR,${COLNS[$lite]}.LADDR,${COLNS[$lite]}.LPORT,${COLNS[$lite]}.RADDR,${COLNS[$lite]}.RPORT": $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" done > "$TS_OUTPUT" 2>&1 diff --git a/tests/ts/lsfd/mkfds-unix-dgram b/tests/ts/lsfd/mkfds-unix-dgram index c8b40eb0d5..79e475a133 100755 --- a/tests/ts/lsfd/mkfds-unix-dgram +++ b/tests/ts/lsfd/mkfds-unix-dgram @@ -47,7 +47,7 @@ make_state_connected() -p "${PID}" -Q "${EXPR}" | make_state_connected echo 'ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH': ${PIPESTATUS[0]} - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" @@ -60,7 +60,7 @@ make_state_connected() -p "${PID}" -Q "${EXPR}" | make_state_connected echo 'ASSOC,STTYPE,NAME,SOCK.STATE,SOCK.TYPE,SOCK.LISTENING,UNIX.PATH': $? - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" } > "$TS_OUTPUT" 2>&1 diff --git a/tests/ts/lsfd/mkfds-unix-in-netns b/tests/ts/lsfd/mkfds-unix-in-netns index cfca087b15..9ed456701c 100755 --- a/tests/ts/lsfd/mkfds-unix-in-netns +++ b/tests/ts/lsfd/mkfds-unix-in-netns @@ -78,7 +78,7 @@ for t in stream dgram seqpacket; do compare_net_namespaces "$t" "${PID}" - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" @@ -94,7 +94,7 @@ for t in stream dgram seqpacket; do compare_net_namespaces "abstract $t" "${PID}" - kill -CONT "${PID}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" } > "$TS_OUTPUT" 2>&1 diff --git a/tests/ts/lsfd/mkfds-unix-stream b/tests/ts/lsfd/mkfds-unix-stream index fe08e72035..3c31443dbe 100755 --- a/tests/ts/lsfd/mkfds-unix-stream +++ b/tests/ts/lsfd/mkfds-unix-stream @@ -46,7 +46,7 @@ EXPR='(((TYPE == "UNIX-STREAM") or (TYPE == "UNIX")) and (FD >= 3) and (FD <= 5) -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}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" @@ -59,7 +59,7 @@ EXPR='(((TYPE == "UNIX-STREAM") or (TYPE == "UNIX")) and (FD >= 3) and (FD <= 5) -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}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" @@ -75,7 +75,7 @@ EXPR='(((TYPE == "UNIX-STREAM") or (TYPE == "UNIX")) and (FD >= 3) and (FD <= 5) 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}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" @@ -88,7 +88,7 @@ EXPR='(((TYPE == "UNIX-STREAM") or (TYPE == "UNIX")) and (FD >= 3) and (FD <= 5) -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}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" diff --git a/tests/ts/lsfd/mkfds-unix-stream-requiring-sockdiag b/tests/ts/lsfd/mkfds-unix-stream-requiring-sockdiag index 64bdae0eb3..c188464b2c 100755 --- a/tests/ts/lsfd/mkfds-unix-stream-requiring-sockdiag +++ b/tests/ts/lsfd/mkfds-unix-stream-requiring-sockdiag @@ -46,7 +46,7 @@ EXPR='(((TYPE == "UNIX-STREAM") or (TYPE == "UNIX")) and (FD >= 3) and (FD <= 5) -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}" + echo DONE >&"${MKFDS[1]}" fi wait "${MKFDS_PID}" diff --git a/tests/ts/lsfd/option-pid b/tests/ts/lsfd/option-pid index 0ea4353e3e..003b624ae3 100755 --- a/tests/ts/lsfd/option-pid +++ b/tests/ts/lsfd/option-pid @@ -72,7 +72,7 @@ POUT= [ "${QOUT}" = "${POUT}" ] echo "EQ[-p PID --pid=1]:" $? - kill -CONT ${PID} + echo DONE >&"${MKFDS[1]}" fi wait ${MKFDS_PID} } > $TS_OUTPUT 2>&1