X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F54taint.t;h=6b866e6d170f5bdce47c2a82d2b82828fcfb7210;hb=fd6687a2ebe23f631656136106280ff7721e3353;hp=cfcde4344fceda13481311c874e83f937ce1e03e;hpb=ade96c1f2c6fadf64af6c3dc3f0a4dea2fdd3347;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/t/54taint.t b/t/54taint.t index cfcde43..6b866e6 100644 --- a/t/54taint.t +++ b/t/54taint.t @@ -6,16 +6,24 @@ use Config; # doesn't work. We don't want to have the user deal with that. BEGIN { unless ($INC{'t/lib/DBICTest/WithTaint.pm'}) { + if ( $^O eq 'MSWin32' and $^X =~ /\x20/ ) { + print "1..0 # SKIP Running this test on Windows with spaces within the perl executable path (\$^X) is not possible due to https://rt.perl.org/Ticket/Display.html?id=123907\n"; + exit 0; + } + # it is possible the test itself is initially invoked in taint mode # and with relative paths *and* with a relative $^X and some other # craziness... in short: just be proactive require File::Spec; - $ENV{PATH} = join $Config{path_sep}, - map { length($_) ? File::Spec->rel2abs($_) : () } - split /\Q$Config{path_sep}/, $ENV{PATH} - ; - my $perl = $^X; - ($_) = $_ =~ /\A(.+)\z/ for ( $ENV{PATH}, $perl ); + + if (length $ENV{PATH}) { + ( $ENV{PATH} ) = join ( $Config{path_sep}, + map { length($_) ? File::Spec->rel2abs($_) : () } + split /\Q$Config{path_sep}/, $ENV{PATH} + ) =~ /\A(.+)\z/; + } + + my ($perl) = $^X =~ /\A(.+)\z/; { local $ENV{PATH} = "/nosuchrootbindir"; @@ -63,7 +71,7 @@ throws_ok ( sub { $ENV{PATH} . (kill (0)) }, qr/Insecure dependency in kill/, 'taint mode active' -); +) if length $ENV{PATH}; { package DBICTest::Taint::Classes;