X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fpragma%2Fsubs.t;h=6ebbf78a465cd9721eb821e770318bdcc6c8b5d6;hb=284102e897f98dc140b5c4416caadc04d1261661;hp=cf936d2b9f48b7ad9458966d3ae2e7e423a6530f;hpb=8ebc5c0145d2e3559bce3073437e6d027dcdffcc;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/pragma/subs.t b/t/pragma/subs.t index cf936d2..6ebbf78 100755 --- a/t/pragma/subs.t +++ b/t/pragma/subs.t @@ -11,10 +11,12 @@ undef $/; my @prgs = split "\n########\n", ; print "1..", scalar @prgs, "\n"; +my $Is_VMS = $^O eq 'VMS'; +my $Is_MSWin32 = $^O eq 'MSWin32'; my $tmpfile = "tmp0000"; my $i = 0 ; 1 while -f ++$tmpfile; -END { unlink $tmpfile if $tmpfile; } +END { if ($tmpfile) { 1 while unlink $tmpfile} } for (@prgs){ my $switch = ""; @@ -40,12 +42,22 @@ for (@prgs){ shift @files ; $prog = shift @files ; } - open TEST, "| sh -c './perl $switch' >$tmpfile 2>&1"; - print TEST $prog, "\n"; + open TEST, ">$tmpfile"; + print TEST $prog,"\n"; close TEST; + my $results = $Is_VMS ? + `MCR $^X $switch $tmpfile` : + $Is_MSWin32 ? + `.\\perl -I../lib $switch $tmpfile 2>&1` : + `sh -c './perl $switch $tmpfile' 2>&1`; my $status = $?; - my $results = `cat $tmpfile`; $results =~ s/\n+$//; + # allow expected output to be written as if $prog is on STDIN + $results =~ s/tmp\d+/-/g; + $results =~ s/\n%[A-Z]+-[SIWEF]-.*$// if $Is_VMS; # clip off DCL status msg +# bison says 'parse error' instead of 'syntax error', +# various yaccs may or may not capitalize 'syntax'. + $results =~ s/^(syntax|parse) error/syntax error/mig; $expected =~ s/\n+$//; my $prefix = ($results =~ s/^PREFIX\n//) ; if ( $results =~ s/^SKIPPED\n//) { @@ -83,7 +95,7 @@ EXPECT Number found where operator expected at - line 3, near "Fred 1" (Do you need to predeclare Fred?) syntax error at - line 3, near "Fred 1" -Execution of - aborted due to compilation errors. +BEGIN not safe after errors--compilation aborted at - line 4. ######## # AOK