# 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';
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));
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 {