exec $Perl, '-le', "print q{not ok $tnum - with fh dup }"; # This has to be done *outside* the fork. wait;
# Collect from $pid $SIG{
'PIPE'} =
'broken_pipe';
$SIG{'PIPE'} = 'IGNORE'; # loop preventer # VMS doesn't like spawning subprocesses that are still connected to # STDOUT. Someone should modify these tests to work with VMS. skip "doesn't like spawning subprocesses that are still connected", 10 # Sfio doesn't report failure when closing a broken pipe # that has pending output. Go figure. MachTen doesn't either, # but won't write to broken pipes, so nothing's pending at close. # BeOS will not write to broken pipes, either. skip "Won't report failure on broken pipe", 1 # If print was allowed we had better get an error on close skip "Don't work yet", 9 if $^O eq 'vmesa'; # check that errno gets forced to 0 if the piped program exited ok(!close NIL, 'close failure on non-zero piped exit'); skip "Don't work yet", 6 if $^O eq 'mpeix'; # check that status for the correct process is collected is( close FH, '', 'close failure for... umm, something' ); is( $?, 13*256, ' status' ); is( $?, 37*256, 'status correct after wait' ); # Test new semantics for missing command in piped open # 19990114 M-J. Dominus mjd@plover.com ok( !open(P, "| "), 'missing command in piped open input' ); ok( !open(P, " |"), ' output'); # check that status is unaffected by implicit close # NIL implicitly closed here is($?, 42, 'status unaffected by implicit close');
# check that child is reaped if the piped program can't be executed is($child, -1, 'child reaped if piped program cannot be executed');