summaryrefslogtreecommitdiffstats
path: root/debian/patches/upstream/tests-lsfd-mkfds-multiplexing-skip-if-proc-pid-syscall-is.patch
blob: cdd72f6eec25eba8d95a2573d43416e7fb011875 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
From: Masatake YAMATO <yamato@redhat.com>
Date: Fri, 5 Apr 2024 04:00:45 +0900
Subject: 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>
---
 tests/ts/lsfd/mkfds-multiplexing | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/tests/ts/lsfd/mkfds-multiplexing b/tests/ts/lsfd/mkfds-multiplexing
index 8cc7f31..a53f6eb 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: $?"