]> Sergey Matveev's repositories - public-inbox.git/commitdiff
t/www_listing: require grok-pull version 2 or later
authorKyle Meyer <kyle@kyleam.com>
Sun, 21 Feb 2021 21:46:11 +0000 (16:46 -0500)
committerEric Wong <e@80x24.org>
Sun, 21 Feb 2021 22:16:08 +0000 (22:16 +0000)
The grok-pull-based tests in www_listing are incompatible with
Grokmirror v2 in two ways: the generated configuration format and the
expected exit codes.  Update the tests to work with v2, and skip them
for earlier versions.

This was tested with the latest release of Grokmirror, v2.0.7.  Note
that the "pull" and "fsck" sections are required even though they're
empty.

t/www_listing.t

index bf35530f3494c0161597a60e50ca0a8c8ade57b0..6a2892de9b827fe6a2e47bd0ef10cf48a3ea4c82 100644 (file)
@@ -122,22 +122,27 @@ SKIP: {
 
        my $grok_pull = which('grok-pull') or
                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 $_");
        }
@@ -146,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 $_");
        }