summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2014-03-05 15:14:07 +0000
committerPádraig Brady <P@draigBrady.com>2014-03-05 18:08:17 +0000
commit5dce6bdfafc930dfd17d5d16aea7d1add3472066 (patch)
tree6e4dcde37b7ec8ceafbab2b0651bbf552dc1e0e6 /tests
parent849c1c5b16c32756e14be719855601017770e621 (diff)
downloadcoreutils-5dce6bdfafc930dfd17d5d16aea7d1add3472066.tar.xz
tests: fix false failure in nohup.sh in non tty builds
* tests/misc/nohup.sh: When running tests without a controlling tty, an exec failure is triggered in a subshell, which causes POSIX shells to immediately exit the subshell. This was brought to notice by the newly conforming bash 4.3. Fixes http:/bugs.gnu.org/16940
Diffstat (limited to 'tests')
-rwxr-xr-xtests/misc/nohup.sh5
1 files changed, 5 insertions, 0 deletions
diff --git a/tests/misc/nohup.sh b/tests/misc/nohup.sh
index 6d2b51530..2328b43e2 100755
--- a/tests/misc/nohup.sh
+++ b/tests/misc/nohup.sh
@@ -63,6 +63,11 @@ rm -f nohup.out err
# to stderr must be fatal. Requires stdout to be terminal.
if test -w /dev/full && test -c /dev/full; then
(
+ # POSIX shells immediately exit the subshell on exec error.
+ # So check we can write to /dev/tty before the exec, which
+ # isn't possible if we've no controlling tty for example.
+ test -c /dev/tty && >/dev/tty || exit 0
+
exec >/dev/tty
test -t 1 || exit 0
nohup echo hi 2> /dev/full