]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/www_listing.t
t/sigfd: add diagnostic for occasional FreeBSD failure
[public-inbox.git] / t / www_listing.t
index 94c1e5bbbcb0f37ac26aae03b42a802902f712dc..6a2892de9b827fe6a2e47bd0ef10cf48a3ea4c82 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2020 all contributors <meta@public-inbox.org>
+# Copyright (C) 2019-2021 all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 # manifest.js.gz generation and grok-pull integration test
 use strict;
@@ -79,8 +79,7 @@ SKIP: {
        my $cfgfile = "$tmpdir/config";
        my $v2 = "$tmpdir/v2";
        my $sock = tcp_server();
-       ok($sock, 'sock created');
-       my ($host, $port) = ($sock->sockhost, $sock->sockport);
+       my ($host, $port) = tcp_host_port($sock);
        my @clone = qw(git clone -q -s --bare);
        is(xsys(@clone, $bare->{git_dir}, $alt), 0, 'clone shared repo');
 
@@ -122,23 +121,28 @@ SKIP: {
        tiny_test($json, $host, $port);
 
        my $grok_pull = which('grok-pull') or
-               skip('skipping grok-pull integration test', 2);
+               skip('grok-pull not available', 12);
+       my ($grok_version) = (xqx([$grok_pull, "--version"])
+                       =~ /(\d+)\.(?:\d+)(?:\.(\d+))?/);
+       $grok_version >= 2 or
+               skip('grok-pull v2 or later not available', 12);
 
        ok(mkdir("$tmpdir/mirror"), 'prepare grok mirror dest');
        open $fh, '>', "$tmpdir/repos.conf" or die;
        print $fh <<"" or die;
-# You can pull from multiple grok mirrors, just create
-# a separate section for each mirror. The name can be anything.
-[test]
-site = http://$host:$port
-manifest = http://$host:$port/manifest.js.gz
+[core]
 toplevel = $tmpdir/mirror
-mymanifest = $tmpdir/local-manifest.js.gz
+manifest = $tmpdir/local-manifest.js.gz
+[remote]
+site = http://$host:$port
+manifest = \${site}/manifest.js.gz
+[pull]
+[fsck]
 
        close $fh or die;
 
        xsys($grok_pull, '-c', "$tmpdir/repos.conf");
-       is($? >> 8, 127, 'grok-pull exit code as expected');
+       is($? >> 8, 0, 'grok-pull exit code as expected');
        for (qw(alt bare v2/git/0.git v2/git/1.git v2/git/2.git)) {
                ok(-d "$tmpdir/mirror/$_", "grok-pull created $_");
        }
@@ -147,18 +151,19 @@ mymanifest = $tmpdir/local-manifest.js.gz
        # /$INBOX/v2/manifest.js.gz
        open $fh, '>', "$tmpdir/per-inbox.conf" or die;
        print $fh <<"" or die;
-# You can pull from multiple grok mirrors, just create
-# a separate section for each mirror. The name can be anything.
-[v2]
-site = http://$host:$port
-manifest = http://$host:$port/v2/manifest.js.gz
+[core]
 toplevel = $tmpdir/per-inbox
-mymanifest = $tmpdir/per-inbox-manifest.js.gz
+manifest = $tmpdir/per-inbox-manifest.js.gz
+[remote]
+site = http://$host:$port
+manifest = \${site}/v2/manifest.js.gz
+[pull]
+[fsck]
 
        close $fh or die;
        ok(mkdir("$tmpdir/per-inbox"), 'prepare single-v2-inbox mirror');
        xsys($grok_pull, '-c', "$tmpdir/per-inbox.conf");
-       is($? >> 8, 127, 'grok-pull exit code as expected');
+       is($? >> 8, 0, 'grok-pull exit code as expected');
        for (qw(v2/git/0.git v2/git/1.git v2/git/2.git)) {
                ok(-d "$tmpdir/per-inbox/$_", "grok-pull created $_");
        }