X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FTestCommon.pm;h=b252810fca51865903e332aaecd2ef4b4f21d2a0;hb=b2b1006759730507731fcd3fc3e0de68239e3b92;hp=a97125e59850a391bcef929bf63b5b8acdc6395e;hpb=4042599799a3706d1b1c0589675b07cab610505a;p=public-inbox.git diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm index a97125e5..b252810f 100644 --- a/lib/PublicInbox/TestCommon.pm +++ b/lib/PublicInbox/TestCommon.pm @@ -10,7 +10,7 @@ use Fcntl qw(FD_CLOEXEC F_SETFD F_GETFD :seek); use POSIX qw(dup2); use IO::Socket::INET; our @EXPORT = qw(tmpdir tcp_server tcp_connect require_git require_mods - run_script start_script key2sub xsys xqx eml_load); + run_script start_script key2sub xsys xqx eml_load tick); sub eml_load ($) { my ($path, $cb) = @_; @@ -95,7 +95,15 @@ sub require_mods { } else { eval "require $mod"; } - push @need, $mod if $@; + if ($@) { + push @need, $mod; + } elsif ($mod eq 'IO::Socket::SSL' && + # old versions of IO::Socket::SSL aren't supported + # by libnet, at least: + # https://rt.cpan.org/Ticket/Display.html?id=100529 + !eval{ IO::Socket::SSL->VERSION(2.007); 1 }) { + push @need, $@; + } } return unless @need; my $m = join(', ', @need)." missing for $0"; @@ -364,6 +372,7 @@ sub start_script { } $0 = join(' ', @$cmd); if ($sub) { + eval { PublicInbox::DS->Reset }; _run_sub($sub, $key, \@argv); POSIX::_exit($? >> 8); } else { @@ -409,4 +418,8 @@ sub DESTROY { $self->join('TERM'); } +package PublicInbox::TestCommon::InboxWakeup; +use strict; +sub on_inbox_unlock { ${$_[0]}->($_[1]) } + 1;