diff options
author | Jim Meyering <meyering@redhat.com> | 2009-04-22 21:41:10 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2009-04-22 21:45:24 +0200 |
commit | 2ad7da759490a5680844e1e4b6b4ac1d13b95d3b (patch) | |
tree | 7ad2d2f195d968207bd85fa51d0a6f864afd67d7 | |
parent | 4298108f46ff4e216470d3a34b24be3122053d48 (diff) | |
download | coreutils-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.pm | 18 |
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; |