Two Cygwin patches from Gerrit.
[p5sagit/p5-mst-13.2.git] / t / test.pl
index 7df12b6..1a16fba 100644 (file)
--- a/t/test.pl
+++ b/t/test.pl
@@ -40,7 +40,7 @@ sub _diag {
 
 sub skip_all {
     if (@_) {
-       print STDOUT "1..0 - @_\n";
+       print STDOUT "1..0 # Skipped: @_\n";
     } else {
        print STDOUT "1..0\n";
     }
@@ -133,7 +133,16 @@ sub display {
 
 sub is {
     my ($got, $expected, $name, @mess) = @_;
-    my $pass = $got eq $expected;
+
+    my $pass;
+    if( !defined $got || !defined $expected ) {
+        # undef only matches undef
+        $pass = !defined $got && !defined $expected;
+    }
+    else {
+        $pass = $got eq $expected;
+    }
+
     unless ($pass) {
        unshift(@mess, "#      got "._q($got)."\n",
                       "# expected "._q($expected)."\n");
@@ -143,7 +152,16 @@ sub is {
 
 sub isnt {
     my ($got, $isnt, $name, @mess) = @_;
-    my $pass = $got ne $isnt;
+
+    my $pass;
+    if( !defined $got || !defined $isnt ) {
+        # undef only matches undef
+        $pass = defined $got || defined $isnt;
+    }
+    else {
+        $pass = $got ne $isnt;
+    }
+
     unless( $pass ) {
         unshift(@mess, "# it should not be "._q($got)."\n",
                        "# but it is.\n");
@@ -346,9 +364,9 @@ sub _quote_args {
     }
 }
 
-sub runperl {
+sub _create_runperl { # Create the string to qx in runperl().
     my %args = @_;
-    my $runperl = $^X;
+    my $runperl = $^X =~ m/\s/ ? qq{"$^X"} : $^X;
     unless ($args{nolib}) {
        if ($is_macos) {
            $runperl .= ' -I::lib';
@@ -415,6 +433,11 @@ sub runperl {
        $runperldisplay =~ s/\n/\n\#/g;
        print STDERR "# $runperldisplay\n";
     }
+    return $runperl;
+}
+
+sub runperl {
+    my $runperl = &_create_runperl;
     my $result = `$runperl`;
     $result =~ s/\n\n/\n/ if $is_vms; # XXX pipes sometimes double these
     return $result;
@@ -433,6 +456,9 @@ sub which_perl {
     unless (defined $Perl) {
        $Perl = $^X;
        
+       # VMS should have 'perl' aliased properly
+       return $Perl if $^O eq 'VMS';
+
        my $exe;
        eval "require Config; Config->import";
        if ($@) {