Commit | Line | Data |
---|---|---|
a0ed8b7b FC |
1 | #!./perl |
2 | ||
0c24d268 | 3 | BEGIN { |
b49fc163 CB |
4 | if ($^O eq 'VMS') { |
5 | print "1..0 # Skip: needs porting, perhaps imitating Win32 mechanisms\n"; | |
6 | exit 0; | |
7 | } | |
0c24d268 FC |
8 | require "../../t/test.pl"; |
9 | } | |
a0ed8b7b FC |
10 | use strict; |
11 | use warnings; | |
12 | ||
9f3ee5ee | 13 | plan 3; |
a0ed8b7b FC |
14 | |
15 | # [perl #76474] | |
45a1ce97 FC |
16 | { |
17 | my $stderr = runperl( | |
a0ed8b7b | 18 | switches => ['-MIPC::Open3', '-w'], |
2db249d3 | 19 | prog => 'open STDIN, q _Makefile_ or die $!; open3(q _<&0_, my $out, undef, $ENV{PERLEXE}, q _-e0_)', |
a0ed8b7b | 20 | stderr => 1, |
45a1ce97 | 21 | ); |
a12c5011 NC |
22 | |
23 | is $stderr, '', | |
24 | "dup STDOUT in a child process by using its file descriptor"; | |
45a1ce97 | 25 | } |
9f3ee5ee NC |
26 | |
27 | { | |
28 | my $want = qr/\A# This Makefile is for the IPC::Open3 extension to perl\.\r?\z/; | |
29 | open my $fh, '<', 'Makefile' or die "Can't open MAKEFILE: $!"; | |
30 | my $have = <$fh>; | |
31 | chomp $have; | |
32 | like($have, $want, 'No surprises from MakeMaker'); | |
33 | close $fh; | |
34 | ||
35 | fresh_perl_like(<<'EOP', | |
36 | use IPC::Open3; | |
37 | open FOO, 'Makefile' or die $!; | |
38 | open3('<&' . fileno FOO, my $out, undef, $ENV{PERLEXE}, '-eprint scalar <STDIN>'); | |
39 | print <$out>; | |
40 | EOP | |
41 | $want, | |
42 | undef, | |
43 | 'Numeric file handles are duplicated correctly' | |
44 | ); | |
45 | } |