6 unless(grep /blib/, @INC) {
20 if ($ENV{PERL_CORE} and $Config{'extensions'} !~ /\bIO\b/) {
21 $reason = 'IO extension unavailable';
26 ! defined($pid) and die "Fork failed!";
28 defined waitpid($pid, 0);
31 $reason = "no fork: $@";
33 elsif ($^O eq 'MSWin32' && !$ENV{TEST_IO_PIPE}) {
34 $reason = 'Win32 testing environment not set';
37 print "1..0 # Skip: $reason\n";
44 my $is_win32=$^O eq 'MSWin32' ? "MSWin32 has broken pipes" : "";
50 print "ok $_ # skipped: $is_win32\n" for 1..4;
52 $pipe = new IO::Pipe->reader($perl, '-e', 'print qq(not ok 1)\n"');
57 $pipe->close or print "# \$!=$!\nnot ";
59 $cmd = 'BEGIN{$SIG{ALRM} = sub {print qq(not ok 4\n); exit}; alarm 10} s/not //';
60 $pipe = new IO::Pipe->writer($perl, '-pe', $cmd);
61 print $pipe "not ok 3\n" ;
62 $pipe->close or print "# \$!=$!\nnot ";
66 # Check if can fork with dynamic extensions (bug in CRT):
68 system "$^X -I../lib -MOpcode -e 'defined fork or die' > /dev/null 2>&1") {
69 print "ok $_ # skipped: broken fork\n" for 5..10;
88 $stdin = bless \*STDIN, "IO::Handle";
89 $stdin->fdopen($pipe,"r");
90 exec $^X, '-pne', 'tr/YX/ko/';
98 print "ok $_ # skipped: $is_win32\n" for 7..8;
100 $pipe = new IO::Pipe;
117 $stdout = bless \*STDOUT, "IO::Handle";
118 $stdout->fdopen($pipe,"w");
119 print STDOUT "not ok 7\n";
120 exec 'echo', 'not ok 8';
128 print "ok $_ # skipped: $is_win32\n" for 9;
130 $pipe = new IO::Pipe;
133 $SIG{'PIPE'} = 'broken_pipe';
139 print $pipe "not ok 9\n";