summaryrefslogtreecommitdiffstats
path: root/tests/ts/lsfd/mkfds-multiplexing
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ts/lsfd/mkfds-multiplexing')
-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 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: $?"