guix-play/gnu/packages/patches/coreutils-skip-nohup.patch
Cyril Roelandt ff3c0c1b80 coreutils: fix test suite
* gnu/packages/patches/coreutils-skip-nohup.patch: patch taken from the git
  repository of coreutils, that makes sure tests/misc/nohup.sh does not fail
  when /dev/tty does not exist.
* gnu/packages/base.scm (coreutils): use it.
* gnu-system.am (dist_patch_DATA): add it.
2014-03-07 00:45:51 +01:00

29 lines
1.0 KiB
Diff

commit 5dce6bdfafc930dfd17d5d16aea7d1add3472066
Author: Pádraig Brady <P@draigBrady.com>
Date: Wed Mar 5 15:14:07 2014 +0000
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
diff --git a/tests/misc/nohup.sh b/tests/misc/nohup.sh
index 6d2b515..2328b43 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