]> 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 b252810fca51865903e332aaecd2ef4b4f21d2a0..7b4da8b5f09a7599c18ee5f8686627c37d37c56a 100644 (file)
@@ -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;