fix unicode split /\s+/
[p5sagit/p5-mst-13.2.git] / t / op / taint.t
index be9071f..ec7c498 100755 (executable)
@@ -17,7 +17,7 @@ use Config;
 use File::Spec::Functions;
 
 BEGIN { require './test.pl'; }
-plan tests => 255;
+plan tests => 257;
 
 $| = 1;
 
@@ -44,6 +44,7 @@ my $Is_MSWin32  = $^O eq 'MSWin32';
 my $Is_NetWare  = $^O eq 'NetWare';
 my $Is_Dos      = $^O eq 'dos';
 my $Is_Cygwin   = $^O eq 'cygwin';
+my $Is_OpenBSD  = $^O eq 'openbsd';
 my $Invoke_Perl = $Is_VMS      ? 'MCR Sys$Disk:[]Perl.' :
                   $Is_MSWin32  ? '.\perl'               :
                   $Is_MacOS    ? ':perl'                :
@@ -154,22 +155,6 @@ my $TEST = catfile(curdir(), 'TEST');
     delete @ENV{@MoreEnv};
     $ENV{TERM} = 'dumb';
 
-    if ($Is_Cygwin && ! -f 'cygwin1.dll') {
-       system("/usr/bin/cp /usr/bin/cygwin1.dll .") &&
-           die "$0: failed to cp cygwin1.dll: $!\n";
-       eval q{
-           END { unlink "cygwin1.dll" }
-       };
-    }
-
-    if ($Is_Cygwin && ! -f 'cygcrypt-0.dll' && -f '/usr/bin/cygcrypt-0.dll') {
-       system("/usr/bin/cp /usr/bin/cygcrypt-0.dll .") &&
-           die "$0: failed to cp cygcrypt-0.dll: $!\n";
-       eval q{
-           END { unlink "cygcrypt-0.dll" }
-       };
-    }
-
     test eval { `$echo 1` } eq "1\n";
 
     SKIP: {
@@ -1163,6 +1148,8 @@ SKIP:
 {
     SKIP: {
        skip "fork() is not available", 3 unless $Config{'d_fork'};
+       skip "opening |- is not stable on threaded OpenBSD with taint", 3
+            if $Config{useithreads} && $Is_OpenBSD;
 
        $ENV{'PATH'} = $TAINT;
        local $SIG{'PIPE'} = 'IGNORE';
@@ -1215,3 +1202,15 @@ SKIP:
     eval { sprintf("# %s\n", $TAINT . "foo") };
     ok(!$@, q/sprintf accepts other tainted args/);
 }
+
+{
+    # 40708
+    my $n  = 7e9;
+    8e9 - $n;
+
+    my $val = $n;
+    is ($val, '7000000000', 'Assignment to untainted variable');
+    $val = $TAINT;
+    $val = $n;
+    is ($val, '7000000000', 'Assignment to tainted variable');
+}