summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2009-04-22 21:41:10 +0200
committerJim Meyering <meyering@redhat.com>2009-04-22 21:45:24 +0200
commit2ad7da759490a5680844e1e4b6b4ac1d13b95d3b (patch)
tree7ad2d2f195d968207bd85fa51d0a6f864afd67d7
parent4298108f46ff4e216470d3a34b24be3122053d48 (diff)
downloadcoreutils-2ad7da759490a5680844e1e4b6b4ac1d13b95d3b.tar.xz
tests: avoid new "make distcheck" failure due to newer File::Temp
With newer perl (e.g., Fedora 10's 4:5.10.0-68.fc10), tests/CuTmpdir.pm stopped removing its temporary directories, with diagnostics like this: cannot remove path when cwd is /c/coreutils/tests/misc/seq.tmp-e2up \ for /c/coreutils/tests/misc/seq.tmp-e2up: at \ /usr/lib/perl5/5.10.0/File/Temp.pm line 902 Chdir out of the target directory before that code runs: * tests/CuTmpdir.pm (END): chdir '..'. (chmod_tree): Remove explicit "chdir $dir".
-rw-r--r--tests/CuTmpdir.pm18
1 files changed, 8 insertions, 10 deletions
diff --git a/tests/CuTmpdir.pm b/tests/CuTmpdir.pm
index 1e5264086..0af5d94cf 100644
--- a/tests/CuTmpdir.pm
+++ b/tests/CuTmpdir.pm
@@ -49,16 +49,9 @@ sub chmod_tree
defined $dir
or return;
- if (chdir $dir)
- {
- # Perform the equivalent of find . -type d -print0|xargs -0 chmod -R 700.
- my $options = {untaint => 1, wanted => \&chmod_1};
- find ($options, '.');
- }
- else
- {
- warn "$ME: failed to chdir to $dir: $!\n";
- }
+ # Perform the equivalent of find "$dir" -type d -print0|xargs -0 chmod -R 700.
+ my $options = {untaint => 1, wanted => \&chmod_1};
+ find ($options, $dir);
}
sub import {
@@ -105,6 +98,11 @@ sub import {
}
END {
+ # Move cwd out of the directory we're about to remove.
+ # This is required on some systems, and by some versions of File::Temp.
+ chdir '..'
+ or warn "$ME: failed to chdir to .. from $dir: $!\n";
+
my $saved_errno = $?;
chmod_tree;
$? = $saved_errno;