This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Revert change #31489.
[perl5.git] / t / test.pl
index 0f2f7a0..37e6682 100644 (file)
--- a/t/test.pl
+++ b/t/test.pl
@@ -1,6 +1,20 @@
 #
 # t/test.pl - most of Test::More functionality without the fuss
+
+
+# NOTE:
+#
+# Increment ($x++) has a certain amount of cleverness for things like
+#
+#   $x = 'zz';
+#   $x++; # $x eq 'aaa';
+#
+# stands more chance of breaking than just a simple
 #
+#   $x = $x + 1
+#
+# In this file, we use the latter "Baby Perl" approach, and increment
+# will be worked over by t/op/inc.t
 
 $Level = 1;
 my $test = 1;
@@ -49,6 +63,10 @@ sub _diag {
 
 }
 
+sub diag {
+    _diag(@_);
+}
+
 sub skip_all {
     if (@_) {
        print STDOUT "1..0 # Skipped: @_\n";
@@ -81,7 +99,7 @@ sub _ok {
     # Ensure that the message is properly escaped.
     _diag @mess;
 
-    $test++;
+    $test = $test + 1; # don't use ++
 
     return $pass;
 }
@@ -256,9 +274,10 @@ sub like_yn ($$$@) {
     $pass = $got !~ /$expected/ if $flip;
     unless ($pass) {
        unshift(@mess, "#      got '$got'\n",
-               "# expected /$expected/\n");
+               $flip
+               ? "# expected !~ /$expected/\n" : "# expected /$expected/\n");
     }
-    local $Level = 2;
+    local $Level = $Level + 1;
     _ok($pass, _where(), $name, @mess);
 }
 
@@ -276,7 +295,9 @@ sub curr_test {
 }
 
 sub next_test {
-  $test++;
+  my $retval = $test;
+  $test = $test + 1; # don't use ++
+  $retval;
 }
 
 # Note: can't pass multipart messages since we try to
@@ -286,7 +307,7 @@ sub skip {
     my $n    = @_ ? shift : 1;
     for (1..$n) {
         print STDOUT "ok $test # skip: $why\n";
-        $test++;
+        $test = $test + 1;
     }
     local $^W = 0;
     last SKIP;
@@ -298,7 +319,7 @@ sub todo_skip {
 
     for (1..$n) {
         print STDOUT "not ok $test # TODO & SKIP: $why\n";
-        $test++;
+        $test = $test + 1;
     }
     local $^W = 0;
     last TODO;
@@ -485,7 +506,7 @@ sub runperl {
 
     my $tainted = ${^TAINT};
     my %args = @_;
-    exists $args{switches} && grep m/^-T$/, @{$args{switches}} and $tainted++;
+    exists $args{switches} && grep m/^-T$/, @{$args{switches}} and $tainted = $tainted + 1;
 
     if ($tainted) {
        # We will assume that if you're running under -T, you really mean to
@@ -503,10 +524,11 @@ sub runperl {
        my @keys = grep {exists $ENV{$_}} qw(CDPATH IFS ENV BASH_ENV);
        local @ENV{@keys} = ();
        # Untaint, plus take out . and empty string:
+       local $ENV{'DCL$PATH'} = $1 if $is_vms && ($ENV{'DCL$PATH'} =~ /(.*)/s);
        $ENV{PATH} =~ /(.*)/s;
        local $ENV{PATH} =
            join $sep, grep { $_ ne "" and $_ ne "." and
-               ($is_mswin or !((stat$_)[2]&0022)) }
+               ($is_mswin or $is_vms or !(stat && (stat _)[2]&0022)) }
                    split quotemeta ($sep), $1;
 
        $runperl =~ /(.*)/s;