mirror of
https://https.git.savannah.gnu.org/git/coreutils.git
synced 2026-01-26 15:29:07 +00:00
tests: use bash in some scripts to avoid false failures
* init.cfg (require_bash_as_SHELL_): A new function to replace SHELL for the current test, with bash if available. This is useful on OpenIndiana 11 where /bin/sh was seen to have races in handling of SIGPIPE. * tests/misc/seq-epipe.sh: Use the new function to enforce bash. * tests/misc/env-signal-handler.sh: Likewise. Reported by Bruno Haible
This commit is contained in:
parent
5cdab9f26b
commit
04e2b9b1a6
9
init.cfg
9
init.cfg
@ -629,6 +629,15 @@ trap_sigpipe_or_skip_()
|
||||
skip_ 'trapping SIGPIPE is not supported'
|
||||
}
|
||||
|
||||
require_bash_as_SHELL_()
|
||||
{
|
||||
if bash --version >/dev/null 2>&1; then
|
||||
SHELL='bash'
|
||||
else
|
||||
skip_ 'bash is required'
|
||||
fi
|
||||
}
|
||||
|
||||
# Disable the current test if the working directory seems to have
|
||||
# the setgid bit set.
|
||||
skip_if_setgid_()
|
||||
|
||||
@ -20,6 +20,11 @@
|
||||
print_ver_ env seq test timeout printf
|
||||
trap_sigpipe_or_skip_
|
||||
|
||||
# /bin/sh has an intermittent failure in ignoring SIGPIPE on OpenIndiana 11
|
||||
# so we require bash as discussed at:
|
||||
# https://lists.gnu.org/archive/html/coreutils/2020-03/msg00004.html
|
||||
require_bash_as_SHELL_
|
||||
|
||||
# Paraphrasing http://bugs.gnu.org/34488#8:
|
||||
# POSIX requires that sh started with an inherited ignored SIGPIPE must
|
||||
# silently ignore all attempts from within the shell to restore SIGPIPE
|
||||
|
||||
@ -20,8 +20,13 @@
|
||||
print_ver_ seq
|
||||
trap_sigpipe_or_skip_
|
||||
|
||||
# /bin/sh has an intermittent failure in ignoring SIGPIPE on OpenIndiana 11
|
||||
# so we require bash as discussed at:
|
||||
# https://lists.gnu.org/archive/html/coreutils/2020-03/msg00004.html
|
||||
require_bash_as_SHELL_
|
||||
|
||||
# upon EPIPE with signals ignored, 'seq' should exit with an error.
|
||||
timeout 10 sh -c \
|
||||
timeout 10 $SHELL -c \
|
||||
'trap "" PIPE && { seq inf 2>err; echo $? >code; } | head -n1' >out
|
||||
|
||||
# Exit-code must be 1, indicating 'write error'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user