Warn inside character classes about unknown backslash escapes
[p5sagit/p5-mst-13.2.git] / t / pragma / strict.t
index bf90266..2b8c587 100755 (executable)
@@ -2,21 +2,25 @@
 
 BEGIN {
     chdir 't' if -d 't';
-    @INC = '../lib';
+    unshift @INC, '../lib';
     $ENV{PERL5LIB} = '../lib';
 }
 
 $| = 1;
 
+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; } }
 
 my @prgs = () ;
 
 foreach (sort glob("pragma/strict-*")) {
 
+    next if /(~|\.orig)$/;
+
     open F, "<$_" or die "Cannot open $_: $!\n" ;
     while (<F>) {
        last if /^__END__/ ;
@@ -58,12 +62,19 @@ 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` :
+                  `./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
     $expected =~ s/\n+$//;
     my $prefix = ($results =~ s/^PREFIX\n//) ;
     if ( $results =~ s/^SKIPPED\n//) {