1N/A#!./perl
1N/A
1N/ABEGIN {
1N/A unless(grep /blib/, @INC) {
1N/A chdir 't' if -d 't';
1N/A @INC = '../lib';
1N/A }
1N/A}
1N/A
1N/Ause Config;
1N/A
1N/ABEGIN {
1N/A if($ENV{PERL_CORE}) {
1N/A if ($Config{'extensions'} !~ /\bIO\b/) {
1N/A print "1..0 # Skip: IO extension not compiled\n";
1N/A exit 0;
1N/A }
1N/A }
1N/A}
1N/A
1N/Ause IO::Handle;
1N/Ause IO::File;
1N/A
1N/Aselect(STDERR); $| = 1;
1N/Aselect(STDOUT); $| = 1;
1N/A
1N/Aprint "1..6\n";
1N/A
1N/Aprint "ok 1\n";
1N/A
1N/A$dupout = IO::Handle->new->fdopen( \*STDOUT ,"w");
1N/A$duperr = IO::Handle->new->fdopen( \*STDERR ,"w");
1N/A
1N/A$stdout = \*STDOUT; bless $stdout, "IO::File"; # "IO::Handle";
1N/A$stderr = \*STDERR; bless $stderr, "IO::Handle";
1N/A
1N/A$stdout->open( "Io.dup","w") || die "Can't open stdout";
1N/A$stderr->fdopen($stdout,"w");
1N/A
1N/Aprint $stdout "ok 2\n";
1N/Aprint $stderr "ok 3\n";
1N/A
1N/A# Since some systems don't have echo, we use Perl.
1N/A$echo = qq{$^X -le "print q(ok %d)"};
1N/A
1N/A$cmd = sprintf $echo, 4;
1N/Aprint `$cmd`;
1N/A
1N/A$cmd = sprintf "$echo 1>&2", 5;
1N/A$cmd = sprintf $echo, 5 if $^O eq 'MacOS';
1N/Aprint `$cmd`;
1N/A
1N/A$stderr->close;
1N/A$stdout->close;
1N/A
1N/A$stdout->fdopen($dupout,"w");
1N/A$stderr->fdopen($duperr,"w");
1N/A
1N/Aif ($^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'VMS') { print `type Io.dup` }
1N/Aelsif ($^O eq 'MacOS') { system 'Catenate Io.dup' }
1N/Aelse { system 'cat Io.dup' }
1N/Aunlink 'Io.dup';
1N/A
1N/Aprint STDOUT "ok 6\n";