unofficial mirror of meta@public-inbox.org
 help / color / mirror / Atom feed
From: Kyle Meyer <kyle@kyleam.com>
To: meta@public-inbox.org
Subject: [PATCH 3/3] t/www_listing: require grok-pull version 2 or later
Date: Sun, 21 Feb 2021 16:46:11 -0500	[thread overview]
Message-ID: <20210221214612.15071-4-kyle@kyleam.com> (raw)
In-Reply-To: <20210221214612.15071-1-kyle@kyleam.com>

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.
---

  Another option would be to generate an appropriate v1 or v2
  configuration based on which Grokmirror version is detected.  I'm
  not sure that's worth the trouble though.

 t/www_listing.t | 34 ++++++++++++++++++++--------------
 1 file changed, 20 insertions(+), 14 deletions(-)

diff --git a/t/www_listing.t b/t/www_listing.t
index bf35530f3494c016..6a2892de9b827fe6 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 $_");
 	}
-- 
2.30.1


  parent reply	other threads:[~2021-02-21 21:46 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-21 21:46 [PATCH 0/3] t/www_listing: update for Grokmirror v2 Kyle Meyer
2021-02-21 21:46 ` [PATCH 1/3] t/www_listing: correct the number of tests for grok-pull skip Kyle Meyer
2021-02-21 22:02   ` Eric Wong
2021-02-21 21:46 ` [PATCH 2/3] t/www_listing: reword grok-pull skip message Kyle Meyer
2021-02-21 21:46 ` Kyle Meyer [this message]
2021-02-21 22:20   ` [PATCH 3/3] t/www_listing: require grok-pull version 2 or later Eric Wong
2021-02-22 14:05     ` Konstantin Ryabitsev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://public-inbox.org/README

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210221214612.15071-4-kyle@kyleam.com \
    --to=kyle@kyleam.com \
    --cc=meta@public-inbox.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).