This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[patch] blead@25282 - VMS specific fixes. [2nd try]
[perl5.git] / t / x2p / s2p.t
index 15219fc..85df364 100755 (executable)
@@ -789,10 +789,20 @@ my $plsed  = "s2pt$$.pl";
 # various command lines for 
 my $s2p  = File::Spec->catfile( File::Spec->updir(), 'x2p', 's2p' );
 my $psed = File::Spec->catfile( File::Spec->curdir(), 'psed' );
+if ($^O eq 'VMS') {
+  # default in the .com extenson if it's not already there
+  $s2p = VMS::Filespec::vmsify($s2p);
+  $psed = VMS::Filespec::vmsify($psed);
+  $s2p = VMS::Filespec::rmsexpand($s2p, '.com');
+  $psed = VMS::Filespec::rmsexpand($psed, '.com');
+}
 my $sedcmd = [ $psed, '-f', $script, $stdin ];
 my $s2pcmd = [ $s2p,  '-f', $script ];
 my $plcmd  = [ $plsed, $stdin ];
 
+my $switches = '';
+$switches = ['-x'] if $^O eq 'MacOS';
+
 # psed: we create a local copy as linking may not work on some systems.
 copy( $s2p, $psed );
 push( @aux, $psed );
@@ -830,21 +840,25 @@ for my $tc ( sort keys %testcase ){
         close( IN ) || goto FAIL_BOTH;
     }
 
+    # on VMS, runperl eats blank lines to work around 
+    # spurious newlines in pipes
+    $testcase{$tc}{expect} =~ s/\n\n/\n/ if $^O eq 'VMS';
+
     # run and compare
     #
-    $psedres = runperl( args => $sedcmd );
+    $psedres = runperl( args => $sedcmd, switches => $switches );
     is( $psedres, $testcase{$tc}{expect}, "psed $tc" );
 
     # 2nd test: run s2p
     # translate the sed script to a Perl program
-    
-    my $perlprog = runperl( args => $s2pcmd );
+
+    my $perlprog = runperl( args => $s2pcmd, switches => $switches );
     open( PP, ">$plsed" ) || goto FAIL_S2P;
     print PP $perlprog;
     close( PP ) || goto FAIL_S2P;
 
     # execute generated Perl program, compare
-    $s2pres = runperl( args => $plcmd );
+    $s2pres = runperl( args => $plcmd, switches => $switches );
     is( $s2pres, $testcase{$tc}{expect}, "s2p $tc" );
     next;