X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fspawn.t;h=db3f2dc97de3a32fdfef45a98699fabf7ac562aa;hb=69329215485cf2ab9d8cd1fa7faf65d8ec42dc0b;hp=d52b646562c45d38704869e2022cc129c931db17;hpb=617f35dacbd4e5972bf2d82411b45009bbc79a42;p=public-inbox.git diff --git a/t/spawn.t b/t/spawn.t index d52b6465..db3f2dc9 100644 --- a/t/spawn.t +++ b/t/spawn.t @@ -1,4 +1,4 @@ -# Copyright (C) 2015 all contributors +# Copyright (C) 2015-2018 all contributors # License: AGPL-3.0+ use strict; use warnings; @@ -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: '.$?); } { @@ -78,8 +87,9 @@ use PublicInbox::Spawn qw(which spawn popen_rd); is(kill(0, $pid), 1, 'child process is running'); ok(!defined(sysread($fh, my $buf, 1)) && $!{EAGAIN}, 'sysread returned quickly with EAGAIN'); - is(kill(15, $pid), 1, 'child process killed early'); + is(kill(9, $pid), 1, 'child process killed early'); is(waitpid($pid, 0), $pid, 'child process reapable'); + isnt($?, 0, '$? set properly: '.$?); } done_testing();