]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/TestCommon.pm
config: support ->urlmatch method for -watch
[public-inbox.git] / lib / PublicInbox / TestCommon.pm
index dc360135569c762ea9cc1953e4aa8617d044d90c..7b4da8b5f09a7599c18ee5f8686627c37d37c56a 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) = @_;
@@ -55,15 +55,16 @@ sub tcp_connect {
 
 sub require_git ($;$) {
        my ($req, $maybe) = @_;
-       my ($req_maj, $req_min) = split(/\./, $req);
-       my ($cur_maj, $cur_min) = (`git --version` =~ /version (\d+)\.(\d+)/);
+       my ($req_maj, $req_min, $req_sub) = split(/\./, $req);
+       my ($cur_maj, $cur_min, $cur_sub) = (xqx([qw(git --version)])
+                       =~ /version (\d+)\.(\d+)(?:\.(\d+))?/);
 
-       my $req_int = ($req_maj << 24) | ($req_min << 16);
-       my $cur_int = ($cur_maj << 24) | ($cur_min << 16);
+       my $req_int = ($req_maj << 24) | ($req_min << 16) | ($req_sub // 0);
+       my $cur_int = ($cur_maj << 24) | ($cur_min << 16) | ($cur_sub // 0);
        if ($cur_int < $req_int) {
                return 0 if $maybe;
                Test::More::plan(skip_all =>
-                               "git $req+ required, have $cur_maj.$cur_min");
+                       "git $req+ required, have $cur_maj.$cur_min.$cur_sub");
        }
        1;
 }
@@ -350,6 +351,7 @@ sub start_script {
        }
        defined(my $pid = fork) or die "fork: $!\n";
        if ($pid == 0) {
+               eval { PublicInbox::DS->Reset };
                # pretend to be systemd (cf. sd_listen_fds(3))
                # 3 == SD_LISTEN_FDS_START
                my $fd;
@@ -418,4 +420,8 @@ sub DESTROY {
        $self->join('TERM');
 }
 
+package PublicInbox::TestCommon::InboxWakeup;
+use strict;
+sub on_inbox_unlock { ${$_[0]}->($_[1]) }
+
 1;