about summary refs log tree commit homepage
path: root/t/www_listing.t
diff options
context:
space:
mode:
authorKyle Meyer <kyle@kyleam.com>2021-02-21 16:46:11 -0500
committerEric Wong <e@80x24.org>2021-02-21 22:16:08 +0000
commit44138460e53f90426476fa0c323fc15ef17568df (patch)
treed2e47ac6a907fea051e011cfdd691389f7cfc086 /t/www_listing.t
parentdab15b41723dd4b00ea3cc90bb7aac943053dcdc (diff)
downloadpublic-inbox-44138460e53f90426476fa0c323fc15ef17568df.tar.gz
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.
Diffstat (limited to 't/www_listing.t')
-rw-r--r--t/www_listing.t34
1 files changed, 20 insertions, 14 deletions
diff --git a/t/www_listing.t b/t/www_listing.t
index bf35530f..6a2892de 100644
--- a/t/www_listing.t
+++ b/t/www_listing.t
@@ -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 $_");
         }