From 189fd7c304e30e7dee6711f9f4213339a310d07a Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 22 May 2016 07:49:04 +0000 Subject: t/spawn.t: additional tests for popen_rd We need to ensure $? is set properly for users. --- t/spawn.t | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 't') diff --git a/t/spawn.t b/t/spawn.t index d52b6465..9e58f675 100644 --- a/t/spawn.t +++ b/t/spawn.t @@ -70,6 +70,15 @@ use PublicInbox::Spawn qw(which spawn popen_rd); is(sysread($fh, $buf, 6), 6, 'sysread got 6 bytes'); is($buf, "hello\n", 'tied gets works'); is(sysread($fh, $buf, 6), 0, 'sysread got EOF'); + $? = 1; + close $fh; + is($?, 0, '$? set properly'); +} + +{ + my $fh = popen_rd([qw(false)]); + close $fh; + isnt($?, 0, '$? set properly: '.$?); } { @@ -80,6 +89,7 @@ use PublicInbox::Spawn qw(which spawn popen_rd); 'sysread returned quickly with EAGAIN'); is(kill(15, $pid), 1, 'child process killed early'); is(waitpid($pid, 0), $pid, 'child process reapable'); + isnt($?, 0, '$? set properly: '.$?); } done_testing(); -- cgit v1.2.3-24-ge0c7