summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2010-12-03 11:08:48 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2010-12-03 11:09:27 -0800
commitb6ef652e50f49e55871c5d08c43ee250950f1cbb (patch)
tree27b26d0e07c8935694f13180c18d40c7812a5c34
parentb5a25a996da0ed80025e6ed94ca7fe4347704864 (diff)
downloadcoreutils-b6ef652e50f49e55871c5d08c43ee250950f1cbb.tar.xz
tests: cleanup rm -rf fails under NFS
This problem was observed on RHEL 5.5 x86-64 when running as a client of a NetApp FAS2050. * tests/cp/cp-mv-backup: Don't leave a file descriptor open to a file in a directory that will be cleaned up with "rm -rf". Under NFS, when the rm unlinks that file, it is instead renamed to .nfsXXXX and then rm cannot remove the parent directory, and the test fails. * tests/cp/same-file: Likewise.
-rwxr-xr-xtests/cp/cp-mv-backup4
-rwxr-xr-xtests/cp/same-file3
2 files changed, 5 insertions, 2 deletions
diff --git a/tests/cp/cp-mv-backup b/tests/cp/cp-mv-backup
index d77568575..a1b2efeb0 100755
--- a/tests/cp/cp-mv-backup
+++ b/tests/cp/cp-mv-backup
@@ -28,7 +28,7 @@ umask 022
actual=actual
expected=expected
-exec 1> $actual
+exec 3>&1 1> $actual
for prog in cp mv; do
for initial_files in 'x' 'x y' 'x y y~' 'x y y.~1~' 'x y y~ y.~1~'; do
@@ -85,6 +85,8 @@ EOF
sed 's/: x/:/' $expected-tmp |cat $expected-tmp - > $expected
+exec 1>&3 3>&-
+
compare $expected $actual || fail=1
Exit $fail
diff --git a/tests/cp/same-file b/tests/cp/same-file
index 873ac2d40..7a8fe681d 100755
--- a/tests/cp/same-file
+++ b/tests/cp/same-file
@@ -42,7 +42,7 @@ test $hard_link_to_symlink_does_the_deref = yes \
actual=actual-$$
expected=expected-$$
-exec 1> $actual
+exec 3>&1 1> $actual
# FIXME: This should be bigger: like more than 8k
contents=XYZ
@@ -216,6 +216,7 @@ cat <<\EOF | sed "$remove_these_sed" > $expected
EOF
+exec 1>&3 3>&-
compare $expected $actual 1>&2 || fail=1