This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix t/op/taint.t on Windows
authorFather Chrysostomos <sprout@cpan.org>
Tue, 2 Sep 2014 05:17:08 +0000 (22:17 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Wed, 3 Sep 2014 05:37:19 +0000 (22:37 -0700)
$ENV{PATH} seems to be the problem.  If we clear it, then we can’t
spawn another process.  I am basing this solely on this comment ear-
lier in the file:

    # On Windows we can't spawn a fresh Perl interpreter unless at
    # least the Windows system directory (usually C:\Windows\System32)
    # is still on the PATH.  There is however no way to determine the
    # actual path on the current system without loading the Win32
    # module, so we just restore the original $ENV{PATH} here.

t/op/taint.t

index cb9074d..f9e8331 100644 (file)
@@ -2323,12 +2323,18 @@ $_ = "$TAINT".reset "x";
 is eval { eval $::x.1 }, 1, 'reset does not taint undef';
 
 # [perl #122669]
-is runperl(
-   switches => [ '-T' ],
-   prog => 'use constant K=>$^X; 0 if K; BEGIN{} use strict; print 122669, qq-\n-',
-   stderr => 1,
- ), "122669\n",
-    'tainted constant as logop condition should not prevent "use"';
+{
+    # See the comment above the first formline test.
+    local $ENV{PATH} = $ENV{PATH};
+    $ENV{PATH} = $old_env_path if $Is_MSWin32;
+    is runperl(
+       switches => [ '-T' ],
+       prog => 'use constant K=>$^X; 0 if K; BEGIN{} use strict; '
+              .'print 122669, qq-\n-',
+       stderr => 1,
+     ), "122669\n",
+        'tainted constant as logop condition should not prevent "use"';
+}
 
 # This may bomb out with the alarm signal so keep it last
 SKIP: {