diff options
author | Jim Meyering <jim@meyering.net> | 2006-10-23 11:52:48 +0200 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2006-10-23 11:52:48 +0200 |
commit | a002111341cec3efa6207143b56ca51db1123f91 (patch) | |
tree | a967de7d0b9223707d966c619784a11e1ff88ba6 /tests | |
parent | 0fdbf2e8c789765c3d04c5acb4de7fb557beda5a (diff) | |
download | coreutils-a002111341cec3efa6207143b56ca51db1123f91.tar.xz |
* tests/misc/pwd-long: Undo last change, since it made Perl invoke
pwd via a shell. Instead, ensure that the absolute name of the
pwd binary consists solely of reasonable characters.
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/misc/pwd-long | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/tests/misc/pwd-long b/tests/misc/pwd-long index bf6d00441..a9fb4022e 100755 --- a/tests/misc/pwd-long +++ b/tests/misc/pwd-long @@ -1,5 +1,5 @@ #!/bin/sh -# Check "printf" with long arguments. +# Ensure that pwd works even when run from a very deep directory. # Copyright (C) 2006 Free Software Foundation, Inc. @@ -46,7 +46,7 @@ export ARGV_0 CWD=$pwd/$tmp export CWD -$PERL -w -- - <<\EOF +exec $PERL -Tw -- - <<\EOF # Show that pwd works even when the length of the resulting # directory name is longer than PATH_MAX. @@ -55,6 +55,10 @@ use Cwd; (my $ME = $ENV{ARGV_0}) =~ s|.*/||; +# Set up a safe, well-known environment +delete @ENV{qw(BASH_ENV CDPATH ENV PATH)}; +$ENV{IFS} = ''; + my $cwd = $ENV{CWD}; my $z = 'z' x 31; my $n = 256; @@ -72,10 +76,19 @@ until (++$i == $n); my $build_src_dir = $ENV{BUILD_SRC_DIR}; $build_src_dir or die "$ME: envvar BUILD_SRC_DIR not defined\n"; +if ($build_src_dir !~ m!^([-.:/\w]+)$!) + { + warn "$0: skipping this test; odd build source directory name:\n" + . "$build_src_dir\n"; + exit 77; + } +$build_src_dir = $1; + my $pwd_binary = "$build_src_dir/pwd"; + -x $pwd_binary or die "$ME: $pwd_binary is not an executable file\n"; -chomp (my $actual = `"$pwd_binary"`); +chomp (my $actual = `$pwd_binary`); if ($expected ne $actual) { my $e_len = length $expected; |