]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/TestCommon.pm
watch: remove Filesys::Notify::Simple dependency
[public-inbox.git] / lib / PublicInbox / TestCommon.pm
index a97125e59850a391bcef929bf63b5b8acdc6395e..b252810fca51865903e332aaecd2ef4b4f21d2a0 100644 (file)
@@ -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;