summaryrefslogtreecommitdiff
path: root/tests/misc/close-stdout
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2006-06-01 07:10:15 +0000
committerPaul Eggert <eggert@cs.ucla.edu>2006-06-01 07:10:15 +0000
commit42314d3303c9f7e596b738b21a0a2a1f067aa9c8 (patch)
treeda9f397b00397036998f8b5002b7592b50351489 /tests/misc/close-stdout
parent5d3b41a84a1b641d2986a120b161da2fb5f4bfaa (diff)
downloadcoreutils-42314d3303c9f7e596b738b21a0a2a1f067aa9c8.tar.xz
Don't assume that >&- works. Add a /dev/full test.
Diffstat (limited to 'tests/misc/close-stdout')
-rwxr-xr-xtests/misc/close-stdout18
1 files changed, 14 insertions, 4 deletions
diff --git a/tests/misc/close-stdout b/tests/misc/close-stdout
index c70b7fc54..42cd92c65 100755
--- a/tests/misc/close-stdout
+++ b/tests/misc/close-stdout
@@ -42,9 +42,19 @@ sleep 0 >&- || fail=1
$pwd/../../src/true >&- || fail=1
$pwd/../../src/printf '' >&- || fail=1
-# Ensure these fail, because stdout is closed and they *do*
-# generate output.
-$pwd/../../src/printf 'foo' >&- 2>/dev/null && fail=1
-cp --verbose a b >&- 2>/dev/null && fail=1
+# If >&- works, ensure these fail, because stdout is closed and they
+# *do* generate output. >&- apparently does not work in HP-UX 11.23.
+# This test is ineffective unless /dev/stdout also works.
+if $pwd/../../src/test -w /dev/stdout >/dev/null &&
+ $pwd/../../src/test ! -w /dev/stdout >&-; then
+ $pwd/../../src/printf 'foo' >&- 2>/dev/null && fail=1
+ cp --verbose a b >&- 2>/dev/null && fail=1
+fi
+
+# Likewise for /dev/full, if /dev/full works.
+if test -w /dev/full && test -c /dev/full; then
+ $pwd/../../src/printf 'foo' >/dev/full 2>/dev/null && fail=1
+ cp --verbose a b >/dev/full 2>/dev/null && fail=1
+fi
(exit $fail); exit $fail