From: Graham Knop Date: Mon, 3 Aug 2020 11:10:01 +0000 (+0200) Subject: use IPC::Open3 rather than IPC::Run3 X-Git-Tag: v1.42~9 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Devel.git;a=commitdiff_plain;h=3f9e067ca892ae2b896de150dd22973de622dd1e use IPC::Open3 rather than IPC::Run3 --- diff --git a/Makefile.PL b/Makefile.PL index 14a471e..964ce6b 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -38,7 +38,6 @@ if (!$Module::Install::AUTHOR && $^O ne 'MSWin32') { # it in its inc/ directory for releases. requires 'Module::Install' => '1.02'; -author_requires 'IPC::Run3'; author_requires 'Proc::Background'; author_requires 'Test::Pod'; author_requires 'Test::Pod::Coverage'; diff --git a/t/generated_app.t b/t/generated_app.t index 01469b9..2b50377 100644 --- a/t/generated_app.t +++ b/t/generated_app.t @@ -8,9 +8,7 @@ use File::Basename qw( dirname ); use Catalyst::Helper; use Test::More; use Config; - -eval "use IPC::Run3"; -plan skip_all => 'These tests require IPC::Run3' if $@; +use IPC::Open3 qw( open3 ); my $helper_lib = abs_path(catdir(dirname($INC{'Catalyst/Helper.pm'}), updir)); @@ -173,17 +171,21 @@ done_testing; sub command_ok { my $cmd = shift; - my $desc = shift; + my $desc = shift || "Exit status ok for '@{$cmd}'"; - my $stdout; - my $stderr; - run3( $cmd, \undef, \$stdout, \$stderr ); + open my $stdin, '<', $devnull + or die "Cannot read $devnull: $!"; - $desc ||= "Exit status ok for '@{$cmd}'"; - unless ( is $? >> 8, 0, $desc ) { - diag "STDOUT:\n$stdout" if defined $stdout; - diag "STDERR:\n$stderr" if defined $stderr; - } + my $pid = open3( $stdin, my $stdout, undef, @$cmd ); + my $output = do { local $/; <$stdout> }; + waitpid $pid, 0; + + my $result = is $?, 0, $desc; + + diag "output:\n$output" + if !$result; + + return $result; } sub runperl {