diff options
author | Masatake YAMATO <yamato@redhat.com> | 2024-04-05 04:00:45 +0900 |
---|---|---|
committer | Masatake YAMATO <yamato@redhat.com> | 2024-04-09 02:19:29 +0900 |
commit | 59f818429767d3b17d4accfb8819e7670ed840ca (patch) | |
tree | f82f95d16a92bd6078afb4957231e45f68688614 | |
parent | 07aacb371470b5561f13b95e399e5ff77e417b8f (diff) | |
download | util-linux-59f818429767d3b17d4accfb8819e7670ed840ca.tar.gz |
tests: (lsfd::mkfds-multiplexing) skip if /proc/$pid/syscall is broken
Close #2867
Close #2887
We should skip the test case on the platforms where /proc/$pid/syscall
doesn't report correct system call number. On such platforms,
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
(cherry picked from commit e199a933058ae052b1dfa2fcb457791f47b60b11)
-rwxr-xr-x | tests/ts/lsfd/mkfds-multiplexing | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/tests/ts/lsfd/mkfds-multiplexing b/tests/ts/lsfd/mkfds-multiplexing index 8cc7f31c09..a53f6eb122 100755 --- a/tests/ts/lsfd/mkfds-multiplexing +++ b/tests/ts/lsfd/mkfds-multiplexing @@ -26,6 +26,8 @@ ts_check_test_command "$TS_HELPER_MKFDS" # /proc/${PID}/syscall is rendered in the host side byteorder. ts_skip_qemu_user +ts_check_prog "cat" +ts_check_prog "cut" ts_check_prog "grep" ts_cd "$TS_OUTDIR" @@ -44,12 +46,24 @@ for multiplexer in pselect6 select poll ppoll; do } > "$TS_OUTPUT" 2>&1 if read -r -u "${MKFDS[0]}" PID; then - if ! cat /proc/"${PID}"/syscall > /dev/null 2>&1; then + syscall_line=$(cat /proc/"${PID}"/syscall 2>> "$TS_OUTPUT") + syscall_status=$? + if [[ "$syscall_status" != 0 ]]; then kill -CONT "${PID}" wait "${MKFDS_PID}" ts_skip_subtest "cannot open /proc/${PID}/syscall" continue fi + syscall_n=$(cut -f1 -d' ' <<< "$syscall_line") + # We assume the syscall number for the $multiplexer is not zero + # on any platforms. + if [[ "$syscall_n" == 0 ]]; then + kill -CONT "${PID}" + wait "${MKFDS_PID}" + ts_skip_subtest "incorrect syscall number in /proc/${PID}/syscall" + continue + fi + { "${TS_CMD_LSFD}" -n -o ASSOC,XMODE -p "${PID}" -Q '(FD >= 10) && (FD <= 22)' echo "[$multiplexer] ASSOC,XMODE: $?" |