* tests/init.sh (check_timeout): New function.
* tests/ptrace_setoptions: Use it.
* tests/qual_syscall: Likewise.
* tests/stat: Likewise.
* tests/strace-f: Likewise.
ME_="${0##*/}"
-check_timeout=60
-
warn_() { printf >&2 '%s\n' "$*"; }
fail_() { warn_ "$ME_: failed test: $*"; exit 1; }
skip_() { warn_ "$ME_: skipped test: $*"; exit 77; }
$STRACE -V > /dev/null ||
framework_failure_ "$STRACE is not available"
}
+
+timeout_duration=60
+check_timeout()
+{
+ TIMEOUT="timeout -s 9 $timeout_duration"
+ $TIMEOUT true > /dev/null 2>&1 ||
+ TIMEOUT=
+}
esac
check_strace
-check_prog timeout
+check_timeout
-timeout -s 9 $check_timeout \
-$STRACE -df -enone / 2>&1 |
+$TIMEOUT $STRACE -df -enone / 2>&1 |
grep -F -x 'ptrace_setoptions = 0xe' > /dev/null ||
fail_ 'strace -f failed to recognize proper kernel PTRACE_O_TRACECLONE support'
-timeout -s 9 $check_timeout \
-$STRACE -df -enone / 2>&1 |
+$TIMEOUT $STRACE -df -enone / 2>&1 |
grep -F -x 'ptrace_setoptions = 0x1f' > /dev/null ||
fail_ 'strace -f failed to recognize proper kernel PTRACE_O_TRACESYSGOOD support'
-timeout -s 9 $check_timeout \
-$STRACE -d -enone / 2>&1 |
+$TIMEOUT $STRACE -d -enone / 2>&1 |
grep -F -x 'ptrace_setoptions = 0x11' > /dev/null ||
fail_ 'strace failed to recognize proper kernel PTRACE_O_TRACESYSGOOD support'
. "${srcdir=.}/init.sh"
check_strace
-check_prog timeout
+check_timeout
check_prog ls
check_prog grep
-timeout -s 9 $check_timeout \
-$STRACE -e execve ls > /dev/null 2> check.log &&
+$TIMEOUT $STRACE -e execve ls > /dev/null 2> check.log &&
grep '^execve(' check.log > /dev/null ||
{ cat check.log; fail_ 'strace -e execve does not work'; }
LC_ALL=C grep '^[[:alnum:]_]*(' > /dev/null &&
{ cat check.log; fail_ 'strace -e execve does not work properly'; }
-timeout -s 9 $check_timeout \
-$STRACE -e trace=process ls > /dev/null 2> check.log &&
+$TIMEOUT $STRACE -e trace=process ls > /dev/null 2> check.log &&
grep '^execve(' check.log > /dev/null ||
{ cat check.log; fail_ 'strace -e trace=process does not work'; }
. "${srcdir=.}/init.sh"
check_strace
+check_timeout
check_prog dd
check_prog find
check_prog grep
check_prog rm
-check_prog timeout
umask 022
truncate_cmd='dd seek=46118400000 obs=1 count=0 if=/dev/null of=sample'
{ cat check.log; framework_skip_ 'failed to create a large sparse file'; }
rm -f sample
-timeout -s 9 $check_timeout \
-$STRACE -edesc $truncate_cmd 2>&1 > /dev/null 2> check.log &&
+$TIMEOUT $STRACE -edesc $truncate_cmd 2>&1 > /dev/null 2> check.log &&
LC_ALL=C grep -E -x 'ftruncate(64)?\(1, 46118400000\) += 0' check.log > /dev/null ||
{ cat check.log; fail_ 'strace -edesc failed to trace ftruncate/ftruncate64 properly'; }
LC_ALL=C grep -E -x 'lseek\(1, 46118400000, SEEK_CUR\) += 46118400000|_llseek\(1, 46118400000, \[46118400000\], SEEK_CUR\) += 0' check.log > /dev/null ||
{ cat check.log; fail_ 'strace -edesc failed to trace lseek/_llseek properly'; }
-timeout -s 9 $check_timeout \
-$STRACE -efile find -L sample > /dev/null 2> check.log &&
+$TIMEOUT $STRACE -efile find -L sample > /dev/null 2> check.log &&
LC_ALL=C grep -E -x 'stat(64)?\("sample", \{st_mode=S_IFREG\|0644, st_size=46118400000, \.\.\.\}\) += 0|(new)?fstatat(64)?\(AT_FDCWD, "sample", \{st_mode=S_IFREG\|0644, st_size=46118400000, \.\.\.\}, 0\) += 0' check.log > /dev/null ||
{ cat check.log; fail_ 'strace -efile failed to trace stat/stat64 properly'; }
-timeout -s 9 $check_timeout \
-$STRACE -efile find sample > /dev/null 2> check.log &&
+$TIMEOUT $STRACE -efile find sample > /dev/null 2> check.log &&
LC_ALL=C grep -E -x 'lstat(64)?\("sample", \{st_mode=S_IFREG\|0644, st_size=46118400000, \.\.\.\}\) += 0|(new)?fstatat(64)?\(AT_FDCWD, "sample", \{st_mode=S_IFREG\|0644, st_size=46118400000, \.\.\.\}, AT_SYMLINK_NOFOLLOW\) += 0' check.log > /dev/null ||
{ cat check.log; fail_ 'strace -efile failed to trace fstatat/fstatat64 properly'; }
. "${srcdir=.}/init.sh"
check_strace
-check_prog timeout
+check_timeout
time=/usr/bin/time
check_prog $time
-timeout -s 9 $check_timeout \
-$STRACE -f $time /bin/ls > check.log 2>&1 ||
+$TIMEOUT $STRACE -f $time /bin/ls > check.log 2>&1 ||
{ cat check.log; fail_ 'strace -f does not work'; }