AmigaOS patches to 5.003_28
[p5sagit/p5-mst-13.2.git] / t / lib / open3.t
index a5d7f2e..4258eec 100755 (executable)
@@ -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>;