X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fio%2Fopenpid.t;h=7c04a29fe81f5ed7890519d740f8fa17b3754334;hb=569bd3158af2276a406770e3d68e76b7da59b730;hp=fca7fcf8cba8491c42382dff9dcee98a45116b02;hpb=340465361a0007175411aaaa64455dcdc736f3a1;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/io/openpid.t b/t/io/openpid.t index fca7fcf..7c04a29 100755 --- a/t/io/openpid.t +++ b/t/io/openpid.t @@ -9,17 +9,15 @@ BEGIN { chdir 't' if -d 't'; - unshift @INC, '../lib'; + @INC = '../lib'; if ($^O eq 'dos') { print "1..0 # Skip: no multitasking\n"; exit 0; } } - -use FileHandle; use Config; -autoflush STDOUT 1; +$| = 1; $SIG{PIPE} = 'IGNORE'; print "1..10\n"; @@ -33,10 +31,8 @@ $perl = qq[$^X "-I../lib"]; # the other reader reads one line, waits a few seconds and then # exits to test the waitpid function. # -$cmd1 = qq/$perl -e "use FileHandle; autoflush STDOUT 1; / . - qq/print qq[first process\\n]; sleep 30;"/; -$cmd2 = qq/$perl -e "use FileHandle; autoflush STDOUT 1; / . - qq/print qq[second process\\n]; sleep 30;"/; +$cmd1 = qq/$perl -e "\$|=1; print qq[first process\\n]; sleep 30;"/; +$cmd2 = qq/$perl -e "\$|=1; print qq[second process\\n]; sleep 30;"/; $cmd3 = qq/$perl -e "print <>;"/; # hangs waiting for end of STDIN $cmd4 = qq/$perl -e "print scalar <>;"/; @@ -76,11 +72,10 @@ print "not " unless $kill_cnt == 2; print "ok 8\n"; # send one expected line of text to child process and then wait for it -autoflush FH4 1; +select(FH4); $| = 1; select(STDOUT); + print FH4 "ok 9\n"; print "# waiting for process $pid4 to exit\n"; -#VMS: Send an EOF to convince the subprocess to exit as well -if ($^O eq 'VMS') { use VMS::Stdio qw(&writeof); writeof(FH4); } $reap_pid = waitpid $pid4, 0; print "# reaped pid $reap_pid != $pid4\nnot " unless $reap_pid == $pid4;