4
4
# TODO: On non-Unix, test only `echo` with no parameters.
5
5
6
6
use rlib ' ./lib' ;
7
- use PerlPPTest;
7
+ use PerlPPTest qw( :DEFAULT quote_string) ;
8
+ use List::Util ' any' ;
9
+
10
+ if (any { $_ eq $^O } ' VMS' , ' os390' , ' os400' , ' riscos' , ' amigaos' ) {
11
+ plan skip_all => " I don't know how to run this test on $^O" ;
12
+ exit ;
13
+ }
8
14
9
15
(my $whereami = __FILE__ ) =~ s / macro\. t$// ;
10
16
my $incfn = ' \"' . $whereami . ' included.txt\"' ;
@@ -22,13 +28,26 @@ my @testcases=(
22
28
23
29
); # @testcases
24
30
25
- plan tests => count_tests(\@testcases , 2, 3);
31
+ my $ntests = 1 + count_tests(\@testcases , 2, 3);
32
+ plan tests => $ntests ;
33
+
34
+ # First check, which will hopefully work everywhere.
35
+ do {
36
+ my ($out , $err );
37
+ run_perlpp [], \' <?! echo howdy' , \$out , \$err ;
38
+ is($out , " howdy\n " , " basic echo" );
39
+ };
40
+
41
+ if (any { $_ eq $^O } ' dos' , ' os2' , ' MSWin' ) {
42
+ skip " I don't know how to run the rest of the tests on $^O" , $ntests -1;
43
+ exit ;
44
+ }
26
45
27
46
for my $lrTest (@testcases ) {
28
47
my ($opts , $testin , $out_re , $err_re ) = @$lrTest ;
29
-
30
48
my ($out , $err );
31
- # diag "perlpp $opts <<<@{[Text::PerlPP::_QuoteString $testin]}";
49
+
50
+ # diag "perlpp $opts <<<@{[quote_string $testin]}";
32
51
run_perlpp $opts , \$testin , \$out , \$err ;
33
52
34
53
if (defined $out_re ) {
@@ -37,7 +56,6 @@ for my $lrTest (@testcases) {
37
56
if (defined $err_re ) {
38
57
like($err , $err_re );
39
58
}
40
- # print STDERR "$err\n";
41
59
42
60
} # foreach test
43
61
0 commit comments