Commit | Line | Data |
378cc40b |
1 | #!./perl |
2 | |
ba553610 |
3 | BEGIN { |
4 | chdir 't' if -d 't'; |
5 | @INC = '../lib'; |
6 | } |
378cc40b |
7 | |
ba553610 |
8 | my $test = 1; |
e4a4387c |
9 | print "1..8\n"; |
378cc40b |
10 | print "ok 1\n"; |
11 | |
ba553610 |
12 | open(DUPOUT,">&STDOUT"); |
13 | open(DUPERR,">&STDERR"); |
378cc40b |
14 | |
ba553610 |
15 | open(STDOUT,">Io.dup") || die "Can't open stdout"; |
a687059c |
16 | open(STDERR,">&STDOUT") || die "Can't open stderr"; |
378cc40b |
17 | |
a687059c |
18 | select(STDERR); $| = 1; |
19 | select(STDOUT); $| = 1; |
378cc40b |
20 | |
a687059c |
21 | print STDOUT "ok 2\n"; |
22 | print STDERR "ok 3\n"; |
ba553610 |
23 | |
24 | # Since some systems don't have echo, we use Perl. |
dc459aad |
25 | $echo = qq{$^X -le "print q(ok %d)"}; |
ba553610 |
26 | |
dc459aad |
27 | $cmd = sprintf $echo, 4; |
ba553610 |
28 | print `$cmd`; |
29 | |
dc459aad |
30 | $cmd = sprintf "$echo 1>&2", 5; |
31 | $cmd = sprintf $echo, 5 if $^O eq 'MacOS'; # don't know if we can do this ... |
ba553610 |
32 | print `$cmd`; |
33 | |
34 | # KNOWN BUG system() does not honor STDOUT redirections on VMS. |
35 | if( $^O eq 'VMS' ) { |
36 | print "not ok $_ # TODO system() not honoring STDOUT redirect on VMS\n" |
37 | for 6..7; |
38 | } |
39 | else { |
40 | system sprintf $echo, 6; |
dc459aad |
41 | if ($^O eq 'MacOS') { |
42 | system sprintf $echo, 7; |
43 | } |
44 | else { |
45 | system sprintf "$echo 1>&2", 7; |
46 | } |
ba553610 |
47 | } |
378cc40b |
48 | |
d1e4d418 |
49 | close(STDOUT) or die "Could not close: $!"; |
50 | close(STDERR) or die "Could not close: $!"; |
378cc40b |
51 | |
d1e4d418 |
52 | open(STDOUT,">&DUPOUT") or die "Could not open: $!"; |
53 | open(STDERR,">&DUPERR") or die "Could not open: $!"; |
378cc40b |
54 | |
cda41bc1 |
55 | if (($^O eq 'MSWin32') || ($^O eq 'NetWare') || ($^O eq 'VMS')) { print `type Io.dup` } |
dc459aad |
56 | elsif ($^O eq 'MacOS') { system 'catenate Io.dup' } |
57 | else { system 'cat Io.dup' } |
378cc40b |
58 | unlink 'Io.dup'; |
59 | |
e4a4387c |
60 | print STDOUT "ok 8\n"; |
9394203c |
61 | |