3 # Check whether -c and -w options work.
5 # Copyright (c) 2014-2016 Dmitry V. Levin <ldv@altlinux.org>
6 # Copyright (c) 2014-2018 The strace developers.
9 # SPDX-License-Identifier: GPL-2.0-or-later
11 . "${srcdir=.}/init.sh"
18 local pattern="$1"; shift
20 run_strace "$@" ../sleep 1
22 grep nanosleep "$LOG" > /dev/null ||
23 framework_skip_ 'sleep does not use nanosleep'
25 LC_ALL=C grep -E -x -e "$pattern" "$LOG" > /dev/null || {
26 echo "Pattern of expected output: $pattern"
28 dump_log_and_fail_with "$STRACE $args output mismatch"
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 *'
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