This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Glob.xs: Eliminate x_GLOB_ITER
[perl5.git] / ext / IPC-Open3 / t / fd.t
CommitLineData
a0ed8b7b
FC
1#!./perl
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
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',
36use IPC::Open3;
37open FOO, 'Makefile' or die $!;
38open3('<&' . fileno FOO, my $out, undef, $ENV{PERLEXE}, '-eprint scalar <STDIN>');
39print <$out>;
40EOP
41 $want,
42 undef,
43 'Numeric file handles are duplicated correctly'
44 );
45}