diff options
Diffstat (limited to 't/lib/open3.t')
-rwxr-xr-x | t/lib/open3.t | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/t/lib/open3.t b/t/lib/open3.t index a5d7f2e8ee..4258eec401 100755 --- a/t/lib/open3.t +++ b/t/lib/open3.t @@ -3,6 +3,11 @@ BEGIN { chdir 't' if -d 't'; @INC = '../lib'; + require Config; import Config; + unless ($Config{'d_fork'}) { + print "1..0\n"; + exit 0; + } # make warnings fatal $SIG{__WARN__} = sub { die @_ }; } @@ -12,6 +17,8 @@ use IO::Handle; use IPC::Open3; #require 'open3.pl'; use subs 'open3'; +my $perl = './perl'; + sub ok { my ($n, $result, $info) = @_; if ($result) { @@ -30,7 +37,7 @@ STDERR->autoflush; print "1..21\n"; # basic -ok 1, $pid = open3 'WRITE', 'READ', 'ERROR', $^X, '-e', <<'EOF'; +ok 1, $pid = open3 'WRITE', 'READ', 'ERROR', $perl, '-e', <<'EOF'; $| = 1; print scalar <STDIN>; print STDERR "hi error\n"; @@ -46,7 +53,7 @@ ok 8, $reaped_pid == $pid, $reaped_pid; ok 9, $? == 0, $?; # read and error together, both named -$pid = open3 'WRITE', 'READ', 'READ', $^X, '-e', <<'EOF'; +$pid = open3 'WRITE', 'READ', 'READ', $perl, '-e', <<'EOF'; $| = 1; print scalar <STDIN>; print STDERR scalar <STDIN>; @@ -58,7 +65,7 @@ print scalar <READ>; waitpid $pid, 0; # read and error together, error empty -$pid = open3 'WRITE', 'READ', '', $^X, '-e', <<'EOF'; +$pid = open3 'WRITE', 'READ', '', $perl, '-e', <<'EOF'; $| = 1; print scalar <STDIN>; print STDERR scalar <STDIN>; @@ -72,7 +79,7 @@ waitpid $pid, 0; # dup writer ok 14, pipe PIPE_READ, PIPE_WRITE; $pid = open3 '<&PIPE_READ', 'READ', '', - $^X, '-e', 'print scalar <STDIN>'; + $perl, '-e', 'print scalar <STDIN>'; close PIPE_READ; print PIPE_WRITE "ok 15\n"; close PIPE_WRITE; @@ -81,7 +88,7 @@ waitpid $pid, 0; # dup reader $pid = open3 'WRITE', '>&STDOUT', 'ERROR', - $^X, '-e', 'print scalar <STDIN>'; + $perl, '-e', 'print scalar <STDIN>'; print WRITE "ok 16\n"; waitpid $pid, 0; @@ -89,12 +96,12 @@ waitpid $pid, 0; # stdout but putting stdout somewhere else, is a good case because it # used not to work. $pid = open3 'WRITE', 'READ', '>&STDOUT', - $^X, '-e', 'print STDERR scalar <STDIN>'; + $perl, '-e', 'print STDERR scalar <STDIN>'; print WRITE "ok 17\n"; waitpid $pid, 0; # dup reader and error together, both named -$pid = open3 'WRITE', '>&STDOUT', '>&STDOUT', $^X, '-e', <<'EOF'; +$pid = open3 'WRITE', '>&STDOUT', '>&STDOUT', $perl, '-e', <<'EOF'; $| = 1; print STDOUT scalar <STDIN>; print STDERR scalar <STDIN>; @@ -104,7 +111,7 @@ print WRITE "ok 19\n"; waitpid $pid, 0; # dup reader and error together, error empty -$pid = open3 'WRITE', '>&STDOUT', '', $^X, '-e', <<'EOF'; +$pid = open3 'WRITE', '>&STDOUT', '', $perl, '-e', <<'EOF'; $| = 1; print STDOUT scalar <STDIN>; print STDERR scalar <STDIN>; |