X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Ftest.pl;h=1a16fba03c2589fc52e1a5a7ff51ef5fc99bf3a6;hb=538204d5c084ddeba9f54debc89d135829749520;hp=7df12b6f4d30ee6306e26e56c46b142273e6e4f5;hpb=dc459aad73ffc3aaf43c03d9908415c433fd93ba;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/test.pl b/t/test.pl index 7df12b6..1a16fba 100644 --- 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 ($@) {