summaryrefslogtreecommitdiffstats
path: root/t
diff options
context:
space:
mode:
authorjluehrs2 <jluehrs2@uiuc.edu>2007-08-20 22:34:12 -0500
committerjluehrs2 <jluehrs2@uiuc.edu>2007-08-20 22:34:12 -0500
commit435497f5c4928e3310cd7e845977bc3c28610d7f (patch)
tree957ebf753c24d62795f7086bd8e7cde18ec72daf /t
parentd924a23abbd2f4848a6c156506d639d160476483 (diff)
downloadio-pty-easy-435497f5c4928e3310cd7e845977bc3c28610d7f.tar.gz
io-pty-easy-435497f5c4928e3310cd7e845977bc3c28610d7f.zip
print something on success and failure, so that the read call doesn't block, and make sure that the spawned script survives long enough for us to read from it
Diffstat (limited to 't')
-rw-r--r--t/003-subprocess.t12
1 files changed, 9 insertions, 3 deletions
diff --git a/t/003-subprocess.t b/t/003-subprocess.t
index bb6b093..c5d17bd 100644
--- a/t/003-subprocess.t
+++ b/t/003-subprocess.t
@@ -5,11 +5,17 @@ use Test::More tests => 2;
use IO::Pty::Easy;
my $pty = new IO::Pty::Easy;
-my $script = "$^X -e '-t *STDIN && -t *STDOUT && print \"ok\";'";
+my $script = << 'EOF';
+$| = 1;
+if (-t *STDIN && -t *STDOUT) { print "ok" }
+else { print "failed" }
+EOF
-my $outside_of_pty = `$script`;
+my $outside_of_pty = `$^X -e '$script'`;
unlike($outside_of_pty, qr/ok/, "running outside of pty fails -t checks");
-$pty->spawn("$script");
+# we need to keep the script alive until we can read the output from it
+$script .= "sleep 1 while 1;";
+$pty->spawn("$^X -e '$script'");
like($pty->read, qr/ok/, "runs subprocess in a pty");
$pty->kill;