X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fqspawn.t;h=58c6febb544738e1b99465e8ba74037a812f0681;hb=7227d5882471e32858e460043e2dd69b4a926d4a;hp=ab6e37586fb14bc6ed57bc19da3f2c0474f9564c;hpb=9a6fe0aac9ef23537af6221568c28aa11a81bbb5;p=public-inbox.git diff --git a/t/qspawn.t b/t/qspawn.t index ab6e3758..58c6febb 100644 --- a/t/qspawn.t +++ b/t/qspawn.t @@ -11,6 +11,12 @@ use_ok 'PublicInbox::Qspawn'; is($res, "err\nout\n", 'captured stderr and stdout'); } +sub finish_err ($) { + my ($qsp) = @_; + $qsp->finish; + $qsp->{err}; +} + my $limiter = PublicInbox::Qspawn::Limiter->new(1); { my $x = PublicInbox::Qspawn->new([qw(true)]); @@ -18,7 +24,7 @@ my $limiter = PublicInbox::Qspawn::Limiter->new(1); $x->start($limiter, sub { my ($rpipe) = @_; is(0, sysread($rpipe, my $buf, 1), 'read zero bytes'); - ok(!$x->finish, 'no error on finish'); + ok(!finish_err($x), 'no error on finish'); $run = 1; }); is($run, 1, 'callback ran alright'); @@ -30,8 +36,7 @@ my $limiter = PublicInbox::Qspawn::Limiter->new(1); $x->start($limiter, sub { my ($rpipe) = @_; is(0, sysread($rpipe, my $buf, 1), 'read zero bytes from false'); - my $err = $x->finish; - ok($err, 'error on finish'); + ok(finish_err($x), 'error on finish'); $run = 1; }); is($run, 1, 'callback ran alright'); @@ -57,11 +62,11 @@ foreach my $cmd ([qw(sleep 1)], [qw(sh -c), 'sleep 1; false']) { } (0..2); if ($cmd->[-1] =~ /false\z/) { - ok($s->finish, 'got error on false after sleep'); + ok(finish_err($s), 'got error on false after sleep'); } else { - ok(!$s->finish, 'no error on sleep'); + ok(!finish_err($s), 'no error on sleep'); } - ok(!$_->[0]->finish, "true $_->[1] succeeded") foreach @t; + ok(!finish_err($_->[0]), "true $_->[1] succeeded") foreach @t; is_deeply([qw(sleep 0 1 2)], \@run, 'ran in order'); }