This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Make "NEWS" an IGNORABLE file
[perl5.git] / ext / IPC-Open3 / t / fd.t
CommitLineData
3830cb7e 1#!./perl -- # Perl Rules
a0ed8b7b 2
0c24d268 3BEGIN {
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
10use strict;
11use warnings;
12
9f3ee5ee 13plan 3;
a0ed8b7b 14
3830cb7e
NC
15 my $file = 't/fd.t';
16
a0ed8b7b 17# [perl #76474]
45a1ce97
FC
18{
19 my $stderr = runperl(
a0ed8b7b 20 switches => ['-MIPC::Open3', '-w'],
3830cb7e 21 prog => "open STDIN, q _${file}_ or die \$!; open3(q _<&0_, my \$out, undef, \$ENV{PERLEXE}, q _-e0_)",
a0ed8b7b 22 stderr => 1,
45a1ce97 23 );
a12c5011
NC
24
25 is $stderr, '',
26 "dup STDOUT in a child process by using its file descriptor";
45a1ce97 27}
9f3ee5ee
NC
28
29{
3830cb7e
NC
30 my $want = qr{\A#!\./perl -- # Perl Rules\r?\z};
31 open my $fh, '<', $file or die "Can't open $file: $!";
9f3ee5ee
NC
32 my $have = <$fh>;
33 chomp $have;
3830cb7e 34 like($have, $want, 'We can find our test string');
9f3ee5ee
NC
35 close $fh;
36
3830cb7e 37 fresh_perl_like(<<"EOP",
9f3ee5ee 38use IPC::Open3;
3830cb7e
NC
39open FOO, '$file' or die \$!;
40open3('<&' . fileno FOO, my \$out, undef, \$ENV{PERLEXE}, '-eprint scalar <STDIN>');
41print <\$out>;
9f3ee5ee
NC
42EOP
43 $want,
44 undef,
45 'Numeric file handles are duplicated correctly'
46 );
47}