]> granicus.if.org Git - strace/blob - tests/count.test
Remove XLAT_END
[strace] / tests / count.test
1 #!/bin/sh
2 #
3 # Check whether -c and -w options work.
4 #
5 # Copyright (c) 2014-2016 Dmitry V. Levin <ldv@altlinux.org>
6 # Copyright (c) 2014-2018 The strace developers.
7 # All rights reserved.
8 #
9 # SPDX-License-Identifier: GPL-2.0-or-later
10
11 . "${srcdir=.}/init.sh"
12
13 run_prog ../sleep 0
14 check_prog grep
15
16 grep_log()
17 {
18         local pattern="$1"; shift
19
20         run_strace "$@" ../sleep 1
21
22         grep nanosleep "$LOG" > /dev/null ||
23                 framework_skip_ 'sleep does not use nanosleep'
24
25         LC_ALL=C grep -E -x -e "$pattern" "$LOG" > /dev/null || {
26                 echo "Pattern of expected output: $pattern"
27                 echo 'Actual output:'
28                 dump_log_and_fail_with "$STRACE $args output mismatch"
29         }
30 }
31
32 GENERIC=' *[^ ]+ +0\.0[^n]*nanosleep *'
33 WALLCLOCK=' *[^ ]+ +(1\.[01]|0\.99)[^n]*nanosleep *'
34 WALLCLOCK1='100\.00 +(1\.[01]|0\.99)[^n]*nanosleep'
35 HALFCLOCK=' *[^ ]+ +0\.[567][^n]*nanosleep *'
36
37 grep_log "$GENERIC"     -c
38 grep_log "$GENERIC"     -c -O1
39 grep_log "$GENERIC"     -c -enanosleep
40 grep_log "$GENERIC"     -c -O1 -enanosleep
41 grep_log "$WALLCLOCK"   -cw
42 grep_log "$WALLCLOCK"   -cw -O1
43 grep_log "$WALLCLOCK1"  -cw -enanosleep
44 grep_log "$WALLCLOCK1"  -cw -O1 -enanosleep
45 grep_log "$HALFCLOCK"   -cw -O4.5e2ms -enanosleep
46 grep_log "$HALFCLOCK"   -cw -O4.5e-1s -enanosleep
47 grep_log "$HALFCLOCK"   -cw -O456789012ns -enanosleep
48
49 exit 0