From 7227d5882471e32858e460043e2dd69b4a926d4a Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 17 Sep 2019 08:31:18 +0000 Subject: qspawn: remove return value from ->finish We don't use the return value in real code since we do waitpid asynchronously, now. So simplify our runtime code at the cost of making our test slighly more complex. --- lib/PublicInbox/Qspawn.pm | 1 - t/qspawn.t | 17 +++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/PublicInbox/Qspawn.pm b/lib/PublicInbox/Qspawn.pm index 54976b00..6b350f0f 100644 --- a/lib/PublicInbox/Qspawn.pm +++ b/lib/PublicInbox/Qspawn.pm @@ -141,7 +141,6 @@ sub finish ($;$) { _do_spawn(@$next); } } - $self->{err}; # may be meaningless if non-blocking } sub start { 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'); } -- cgit v1.2.3-24-ge0c7