diff options
author | Assaf Gordon <assafgordon@gmail.com> | 2016-05-01 15:43:59 -0400 |
---|---|---|
committer | Assaf Gordon <assafgordon@gmail.com> | 2016-07-02 18:08:33 -0400 |
commit | 383e4b2ce589f6ecf0a375e94ab56fab6eff88f1 (patch) | |
tree | b84797dd0364950e851129236aac8f1ced582229 /tests/misc | |
parent | dfae7822006074d145dd7f2e4c88a9419604f9d9 (diff) | |
download | coreutils-383e4b2ce589f6ecf0a375e94ab56fab6eff88f1.tar.xz |
tests: improve recent seq EPIPE test
Follow-up to commit c92585b1: improve epipe test script, with
suggestions from Bernhard Voelker and Pádraig Brady.
see: http://lists.gnu.org/archive/html/coreutils/2016-04/msg00067.html .
* tests/misc/seq-epipe.sh: Avoid too many subshells,
stricter validation of errors and output from seq,
skip if trapping SIGPIPE is not supported.
Diffstat (limited to 'tests/misc')
-rwxr-xr-x | tests/misc/seq-epipe.sh | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/tests/misc/seq-epipe.sh b/tests/misc/seq-epipe.sh index 21e932293..9a43068bb 100755 --- a/tests/misc/seq-epipe.sh +++ b/tests/misc/seq-epipe.sh @@ -19,28 +19,23 @@ . "${srcdir=.}/tests/init.sh"; path_prepend_ ./src print_ver_ seq +(trap '' PIPE && yes | :) 2>&1 | grep -qF 'Broken pipe' || + skip_ 'trapping SIGPIPE is not supported' + # upon EPIPE with signals ignored, 'seq' should exit with an error. -(trap '' PIPE; - timeout 10 sh -c '( (seq inf 2>err ; echo $?>code) | head -n1)'>/dev/null) +timeout 10 sh -c \ + 'trap "" PIPE && { seq inf 2>err; echo $? >code; } | head -n1' >out # Exit-code must be 1, indicating 'write error' -cat << \EOF > exp || framework_failure_ -1 -EOF -if test -e code ; then - compare exp code || fail=1 -else - # 'exitcode' file was not created - warn_ "missing exit code file (seq failed to detect EPIPE?)" - fail=1 -fi +echo 1 > exp || framework_failure_ +compare exp out || fail=1 +compare exp code || fail=1 # The error message must begin with "standard output:" # (but don't hard-code the strerror text) -compare_dev_null_ /dev/null err -if ! grep -qE '^seq: standard output: .+$' err ; then - warn_ "seq emitted incorrect error on EPIPE" - fail=1 -fi +grep '^seq: standard output: ' err \ + || { warn_ "seq emitted incorrect error on EPIPE"; \ + cat err;\ + fail=1; } Exit $fail |