Let rip with t/op/*.t in parallel too.
[p5sagit/p5-mst-13.2.git] / t / io / fflush.t
index 6c22fa6..19143c6 100644 (file)
@@ -3,6 +3,7 @@
 BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
+    require './test.pl';
 }
 
 # Script to test auto flush on fork/exec/system/qx.  The idea is to
@@ -23,17 +24,19 @@ my $fflushall = defined $Config{fflushall} ? $Config{fflushall} eq 'define' ? 1
 my $d_fork = defined $Config{d_fork} ? $Config{d_fork} eq 'define' ? 1 : 0 : 0;
 
 if ($useperlio || $fflushNULL || $d_sfio) {
-    print "1..4\n";
+    print "1..7\n";
 } else {
     if ($fflushall) {
-       print "1..4\n";
+       print "1..7\n";
     } else {
        print "1..0 # Skip: fflush(NULL) or equivalent not available\n";
         exit;
     }
 }
 
-my $runperl = qq{$^X "-I../lib"};
+my $runperl = $^X =~ m/\s/ ? qq{"$^X"} : $^X;
+$runperl .= qq{ "-I../lib"};
+
 my @delete;
 
 END {
@@ -66,7 +69,7 @@ print OUT $str;
 close OUT;
 EOF
     ;
-close PROG;
+close PROG or die "close ff-prog: $!";;
 push @delete, "ff-prog";
 
 $| = 0; # we want buffered output
@@ -122,10 +125,23 @@ for (qw(system qx popen)) {
     my $command = qq{$runperl "ff-prog" "$f" "rl"};
     open OUT, "> $f" or die "open $f: $!";
     print OUT "Pe";
-    close OUT;
+    close OUT or die "close $f: $!";;
     print "# $command\n";
     $code->($command);
     print file_eq($f, "Perl") ? "ok $t\n" : "not ok $t\n";
     push @delete, $f;
     ++$t;
 }
+
+my $cmd = _create_runperl(
+                         switches => ['-l'],
+                         prog =>
+                         sprintf('print qq[ok $_] for (%d..%d)', $t, $t+2));
+print "# cmd = '$cmd'\n";
+open my $CMD, "$cmd |" or die "Can't open pipe to '$cmd': $!";
+while (<$CMD>) {
+    system("$runperl -e 0");
+    print;
+}
+close $CMD;
+$t += 3;