Dmitry V. Levin | 772e32b | 2014-05-29 21:14:14 +0000 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | |
| 3 | # Check whether -c and -w options work. |
| 4 | |
| 5 | . "${srcdir=.}/init.sh" |
| 6 | |
Dmitry V. Levin | 772e32b | 2014-05-29 21:14:14 +0000 | [diff] [blame] | 7 | check_prog grep |
Dmitry V. Levin | 3ec5c04 | 2014-09-23 01:51:05 +0000 | [diff] [blame] | 8 | check_prog sleep |
Dmitry V. Levin | 772e32b | 2014-05-29 21:14:14 +0000 | [diff] [blame] | 9 | |
Dmitry V. Levin | 772e32b | 2014-05-29 21:14:14 +0000 | [diff] [blame] | 10 | grep_log() |
| 11 | { |
Dmitry V. Levin | 8f54664 | 2015-03-17 17:07:57 +0000 | [diff] [blame] | 12 | local pattern="$1"; shift |
| 13 | |
| 14 | run_strace "$@" |
| 15 | |
| 16 | grep nanosleep "$LOG" > /dev/null || |
| 17 | framework_skip_ 'sleep does not use nanosleep' |
| 18 | |
| 19 | LC_ALL=C grep -E -x -e "$pattern" "$LOG" > /dev/null || { |
| 20 | echo "Pattern of expected output: $pattern" |
| 21 | echo 'Actual output:' |
| 22 | dump_log_and_fail_with "$STRACE $args output mismatch" |
Dmitry V. Levin | 772e32b | 2014-05-29 21:14:14 +0000 | [diff] [blame] | 23 | } |
| 24 | } |
| 25 | |
Dmitry V. Levin | 8f54664 | 2015-03-17 17:07:57 +0000 | [diff] [blame] | 26 | grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c sleep 1 |
| 27 | grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c -enanosleep sleep 1 |
| 28 | grep_log ' *[^ ]+ +(1\.0|0\.99)[^n]*nanosleep' -cw sleep 1 |
| 29 | grep_log '100\.00 +(1\.0|0\.99)[^n]*nanosleep' -cw -enanosleep sleep 1 |
Dmitry V. Levin | 772e32b | 2014-05-29 21:14:14 +0000 | [diff] [blame] | 30 | |
| 31 | exit 0 |