summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorBrian McCauley <nobull@mail.com>2001-06-15 08:51:26 +0100
committerJarkko Hietaniemi <jhi@iki.fi>2001-06-15 14:08:19 +0000
commit9f826d6a0fa46286bcc4b159b950e3f1073f9af4 (patch)
tree8e2e1bd51be112a505c91d41dab8b47f4b7339f6 /t
parentb7bcf49446150838af3c7cd1dec335ba45a2fc6b (diff)
downloadperl-9f826d6a0fa46286bcc4b159b950e3f1073f9af4.tar.gz
Re: [ID 20010608.010] File::Find re-entrancy
Message-Id: <200106150923.f5F9NpG02725@wcl-l.bham.ac.uk> p4raw-id: //depot/perl@10607
Diffstat (limited to 't')
-rwxr-xr-xt/lib/filefind.t30
1 files changed, 28 insertions, 2 deletions
diff --git a/t/lib/filefind.t b/t/lib/filefind.t
index d07948b0ea..3e73ffcadc 100755
--- a/t/lib/filefind.t
+++ b/t/lib/filefind.t
@@ -9,10 +9,10 @@ my $cwd_untainted;
BEGIN {
chdir 't' if -d 't';
- @INC = '../lib';
+ unshift @INC => '../lib';
for (keys %ENV) { # untaint ENV
- ($ENV{$_}) = keys %{{ map {$_ => 1} $ENV{$_} }};
+ ($ENV{$_}) = $ENV{$_} =~ /(.*)/;
}
$SIG{'__WARN__'} = sub { $warn_msg = $_[0]; warn "# Warn: $_[0]"; }
@@ -215,6 +215,19 @@ if ($^O eq 'MacOS') {
File::Find::find( {wanted => \&wanted, untaint => 1},':fa' );
Check( scalar(keys %Expect) == 0 );
+ print "# check re-entancy\n";
+ %Expect = (':' => 1, 'fsl' => 1, 'fa_ord' => 1, 'fab' => 1, 'fab_ord' => 1,
+ 'faba' => 1, 'faa' => 1, 'faa_ord' => 1);
+ delete $Expect{'fsl'} unless $symlink_exists;
+ %Expect_Dir = (':' => 1, 'fa' => 1, 'faa' => 1, 'fab' => 1, 'faba' => 1,
+ 'fb' => 1, 'fba' => 1);
+ delete @Expect_Dir{'fb','fba'} unless $symlink_exists;
+ File::Find::find( {wanted => sub {
+ wanted();
+ File::Find::find( {wanted => sub {} , untaint => 1 },':' );
+ }, untaint => 1 }, ':fa' );
+ Check( scalar(keys %Expect) == 0 );
+
%Expect=(':fa' => 1, ':fa:fsl' => 1, ':fa:fa_ord' => 1, ':fa:fab' => 1,
':fa:fab:fab_ord' => 1, ':fa:fab:faba' => 1,
':fa:fab:faba:faba_ord' => 1, ':fa:faa' => 1, ':fa:faa:faa_ord' => 1);
@@ -465,6 +478,19 @@ if ($^O eq 'MacOS') {
File::Find::find( {wanted => \&wanted, untaint => 1, untaint_pattern => qr|^(.+)$|},'fa' );
Check( scalar(keys %Expect) == 0 );
+ print "# check re-entancy\n";
+ %Expect = ('.' => 1, 'fsl' => 1, 'fa_ord' => 1, 'fab' => 1, 'fab_ord' => 1,
+ 'faba' => 1, 'faa' => 1, 'faa_ord' => 1);
+ delete $Expect{'fsl'} unless $symlink_exists;
+ %Expect_Dir = ('fa' => 1, 'faa' => 1, 'fab' => 1, 'faba' => 1,
+ 'fb' => 1, 'fba' => 1);
+ delete @Expect_Dir{'fb','fba'} unless $symlink_exists;
+ File::Find::find( {wanted => sub {
+ wanted();
+ File::Find::find( {wanted => sub {} , untaint => 1, untaint_pattern => qr|^(.+)$|},'.' );
+ }, untaint => 1, untaint_pattern => qr|^(.+)$|},'fa' );
+ Check( scalar(keys %Expect) == 0 );
+
%Expect=('fa' => 1, 'fa/fsl' => 1, 'fa/fa_ord' => 1, 'fa/fab' => 1,
'fa/fab/fab_ord' => 1, 'fa/fab/faba' => 1,
'fa/fab/faba/faba_ord' => 1, 'fa/faa' => 1, 'fa/faa/faa_ord' => 1);