aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMasatake YAMATO <yamato@redhat.com>2024-04-05 04:00:45 +0900
committerMasatake YAMATO <yamato@redhat.com>2024-04-09 02:19:29 +0900
commit59f818429767d3b17d4accfb8819e7670ed840ca (patch)
treef82f95d16a92bd6078afb4957231e45f68688614
parent07aacb371470b5561f13b95e399e5ff77e417b8f (diff)
downloadutil-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-xtests/ts/lsfd/mkfds-multiplexing16
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: $?"