summaryrefslogtreecommitdiff
path: root/tests/strace--syscall-limit.test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/strace--syscall-limit.test')
-rwxr-xr-xtests/strace--syscall-limit.test33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/strace--syscall-limit.test b/tests/strace--syscall-limit.test
new file mode 100755
index 000000000..410c24a3d
--- /dev/null
+++ b/tests/strace--syscall-limit.test
@@ -0,0 +1,33 @@
+#!/bin/sh -e
+#
+# Check -l/--syscall-limit option.
+#
+# Copyright (c) 2016-2023 The strace developers.
+# All rights reserved.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+. "${srcdir=.}/init.sh"
+
+prog_args="../$NAME"
+set -- --syscall-limit=3 --trace='chdir,rmdir' "$@"
+
+run_prog > /dev/null
+echo 0 > exp_status
+match_diff exp_status parent_status 'parent_status does not match expectations'
+rm parent_status
+
+run_strace --signal='!SIGCHLD,SIGCONT' --quiet=path-resolution,personality \
+ -f -a9 "$@" $prog_args > "$EXP"
+
+# Do not wait forever, stop waiting
+# if the file won't appear after 10 iterations.
+attempt=1
+while [ "$attempt" -le 10 ] && [ ! -s 'parent_status' ]; do
+ $SLEEP_A_BIT
+ attempt=$((attempt + 1))
+done
+
+match_diff "$LOG" "$EXP"
+match_diff exp_status parent_status 'parent_status does not match expectations'
+rm parent_status exp_status