X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fio%2Ffflush.t;h=19143c6304cded1140d50c9412ade2bcd2ba525b;hb=213f370f28504f3af87af602895b0afe68c0106a;hp=6c22fa663a00a2f516216b737d314291eb1b5f65;hpb=a3d14d6a6e59cea3b2c933b54e6d6babf7210ef8;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/io/fflush.t b/t/io/fflush.t index 6c22fa6..19143c6 100644 --- a/t/io/fflush.t +++ b/t/io/fflush.t @@ -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;