4 # Copyright (C) 2003, 2006-2011 Free Software Foundation, Inc.
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
19 .
"${srcdir=.}/init.sh"; path_prepend_ ..
/src
23 nohup sh
-c 'echo stdout; echo stderr 1>&2' 2>err || fail
=1
25 # Be careful. The results of the above nohup command
26 # change depending on whether stdin and stdout are redirected.
28 test "`cat nohup.out`" = stdout || fail
=1
30 echo 'nohup: ignoring input and appending output to `nohup.out'\'
32 echo 'nohup: appending output to `nohup.out'\'
35 # Here it should not even exist.
36 test -f nohup.out
&& fail
=1
38 echo 'nohup: ignoring input' >exp
43 echo 'stderr' >> exp || fail
=1
45 compare exp err || fail
=1
46 rm -f nohup.out err exp
47 # ----------------------
49 # Be careful. The results of the following nohup command
50 # change depending on whether stderr is redirected.
51 nohup sh
-c 'echo stdout; echo stderr 1>&2' >out || fail
=1
53 test "`cat out|tr '\n' -`" = stdout-stderr- || fail
=1
55 test "`cat out|tr '\n' -`" = stdout- || fail
=1
57 # It must *not* exist.
58 test -f nohup.out
&& fail
=1
60 # ----------------------
62 # Bug present through coreutils 8.0: failure to print advisory message
63 # to stderr must be fatal. Requires stdout to be terminal.
64 if test -w /dev
/full
&& test -c /dev
/full
; then
68 nohup
echo hi
2> /dev
/full
69 test $?
= 125 || fail
=1
70 test -f nohup.out || fail
=1
71 test -s nohup.out
&& fail
=1
77 nohup no-such-command
2> err
80 test $errno = 127 || fail
=1
82 test -f nohup.out || fail
=1
84 test -s nohup.out
&& fail
=1
87 cat <<\EOF
> exp || fail
=1
88 nohup
: appending output to
`nohup.out'
89 nohup: cannot run command `no-such-command
': No such file or directory
91 # Disable these comparisons. Too much variation in 2nd line.
92 # compare exp err || fail=1
93 rm -f nohup.out err exp
94 # ----------------------
99 test $errno = 126 || fail=1
102 test -f nohup.out || fail=1
104 test -s nohup.out && fail=1
107 cat <<\EOF > exp || fail=1
108 nohup: appending output to `nohup.out'
109 nohup
: cannot run
command `./k': Permission denied
111 # Disable these comparisons. Too much variation in 2nd line.
112 # compare exp err || fail=1
114 # Make sure it fails with exit status of 125 when given too few arguments,
115 # except that POSIX requires 127 in this case.
116 nohup >/dev/null 2>&1
117 test $? = 125 || fail=1
118 POSIXLY_CORRECT=1 nohup >/dev/null 2>&1
119 test $? = 127 || fail=1