]> granicus.if.org Git - strace/blobdiff - tests/count.test
strace: terminate itself if interrupted by a signal
[strace] / tests / count.test
index bc7ae7cde1c82c06d8aaae2562bb9cc2d15779d5..6abb177260db7bdb7b73d0074edfdd770133148e 100755 (executable)
@@ -1,44 +1,41 @@
 #!/bin/sh
-
+#
 # Check whether -c and -w options work.
+#
+# Copyright (c) 2014-2016 Dmitry V. Levin <ldv@altlinux.org>
+# Copyright (c) 2014-2018 The strace developers.
+# All rights reserved.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
 
 . "${srcdir=.}/init.sh"
 
-check_prog sleep
+run_prog ../sleep 0
 check_prog grep
 
-make_log()
-{
-       $STRACE $args > $LOG 2>&1 || {
-               cat $LOG
-               fail_ "$STRACE $args failed"
-       }
-}
-
 grep_log()
 {
-       LC_ALL=C grep -E -x -e "$*" $LOG > /dev/null || {
-               cat $LOG
-               fail_ "unexpected output from $STRACE $args"
-       }
-}
+       local pattern="$1"; shift
 
-args='-c sleep 1'
-make_log
-grep nanosleep $LOG > /dev/null ||
-       skip_ 'sleep does not use nanosleep'
-grep_log ' *[^ ]+ +0\.0[^n]*nanosleep'
+       run_strace "$@" ../sleep 1
 
-args='-c -enanosleep sleep 1'
-make_log
-grep_log ' *[^ ]+ +0\.0[^n]*nanosleep'
+       grep nanosleep "$LOG" > /dev/null ||
+               framework_skip_ 'sleep does not use nanosleep'
 
-args='-cw sleep 1'
-make_log
-grep_log ' *[^ ]+ +1\.0[^n]*nanosleep'
+       LC_ALL=C grep -E -x -e "$pattern" "$LOG" > /dev/null || {
+               echo "Pattern of expected output: $pattern"
+               echo 'Actual output:'
+               dump_log_and_fail_with "$STRACE $args output mismatch"
+       }
+}
 
-args='-cw -enanosleep sleep 1'
-make_log
-grep_log '100\.00 +1\.0[^n]*nanosleep'
+grep_log ' *[^ ]+ +0\.0[^n]*nanosleep'         -c
+grep_log ' *[^ ]+ +0\.0[^n]*nanosleep'         -c -O1
+grep_log ' *[^ ]+ +0\.0[^n]*nanosleep'         -c -enanosleep
+grep_log ' *[^ ]+ +0\.0[^n]*nanosleep'         -c -O1 -enanosleep
+grep_log ' *[^ ]+ +(1\.[01]|0\.99)[^n]*nanosleep'      -cw
+grep_log ' *[^ ]+ +(1\.[01]|0\.99)[^n]*nanosleep'      -cw -O1
+grep_log '100\.00 +(1\.[01]|0\.99)[^n]*nanosleep'      -cw -enanosleep
+grep_log '100\.00 +(1\.[01]|0\.99)[^n]*nanosleep'      -cw -O1 -enanosleep
 
 exit 0