op/exec Win32 patch from Schwern via Abe Timmerman.
[p5sagit/p5-mst-13.2.git] / t / test.pl
index e0220f5..4fdbd6f 100644 (file)
--- a/t/test.pl
+++ b/t/test.pl
@@ -23,10 +23,17 @@ sub plan {
 END {
     my $ran = $test - 1;
     if (!$NO_ENDING && defined $planned && $planned != $ran) {
-        print STDOUT "# Looks like you planned $planned tests but ran $ran.\n";
+        print STDERR "# Looks like you planned $planned tests but ran $ran.\n";
     }
 }
 
+# Use this instead of "print STDERR" when outputing failure diagnostic 
+# messages
+sub _diag {
+    my $fh = $TODO ? *STDOUT : *STDERR;
+    print $fh @_;
+}
+
 sub skip_all {
     if (@_) {
        print STDOUT "1..0 - @_\n";
@@ -53,12 +60,12 @@ sub _ok {
     print STDOUT "$out\n";
 
     unless ($pass) {
-       print STDOUT "# Failed $where\n";
+       _diag "# Failed $where\n";
     }
 
     # Ensure that the message is properly escaped.
-    print STDOUT map { /^#/ ? "$_\n" : "# $_\n" } 
-                 map { split /\n/ } @mess if @mess;
+    _diag map { /^#/ ? "$_\n" : "# $_\n" } 
+          map { split /\n/ } @mess if @mess;
 
     $test++;
 
@@ -206,12 +213,13 @@ sub eq_hash {
     $key = "" . $key;
     if (exists $orig->{$key}) {
       if ($orig->{$key} ne $value) {
-        print "# key ", _qq($key), " was ", _qq($orig->{$key}),
-          " now ", _qq($value), "\n";
+        print STDOUT "# key ", _qq($key), " was ", _qq($orig->{$key}),
+                     " now ", _qq($value), "\n";
         $fail = 1;
       }
     } else {
-      print "# key ", _qq($key), " is ", _qq($value), ", not in original.\n";
+      print STDOUT "# key ", _qq($key), " is ", _qq($value), 
+                   ", not in original.\n";
       $fail = 1;
     }
   }
@@ -219,7 +227,7 @@ sub eq_hash {
     # Force a hash recompute if this perl's internals can cache the hash key.
     $_ = "" . $_;
     next if (exists $suspect->{$_});
-    print "# key ", _qq($_), " was ", _qq($orig->{$_}), " now missing.\n";
+    print STDOUT "# key ", _qq($_), " was ", _qq($orig->{$_}), " now missing.\n";
     $fail = 1;
   }
   !$fail;
@@ -317,7 +325,7 @@ sub runperl {
     if ($args{verbose}) {
        my $runperldisplay = $runperl;
        $runperldisplay =~ s/\n/\n\#/g;
-       print STDOUT "# $runperldisplay\n";
+       print STDERR "# $runperldisplay\n";
     }
     my $result = `$runperl`;
     $result =~ s/\n\n/\n/ if $is_vms; # XXX pipes sometimes double these
@@ -325,9 +333,9 @@ sub runperl {
 }
 
 
-sub BAILOUT {
-    print STDOUT "Bail out! @_\n";
-    exit;
+sub DIE {
+    print STDERR "# @_\n";
+    exit 1;
 }
 
 # A somewhat safer version of the sometimes wrong $^X.
@@ -377,7 +385,7 @@ sub which_perl {
 sub unlink_all {
     foreach my $file (@_) {
         1 while unlink $file;
-        print "# Couldn't unlink '$file': $!\n" if -f $file;
+        print STDERR "# Couldn't unlink '$file': $!\n" if -f $file;
     }
 }
 1;