about summary refs log tree commit homepage
path: root/lib/PublicInbox/TestCommon.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-09-13 20:53:50 +0000
committerEric Wong <e@80x24.org>2021-09-13 21:11:13 +0000
commit04657044bb3695d70298624eb25394fb864fb718 (patch)
treefce610c4e7c2b3a7287d9a3cbde42bfc2ff36bfa /lib/PublicInbox/TestCommon.pm
parentdc489bfd4b4c659b7ebb166ab540b4e767e51aaa (diff)
downloadpublic-inbox-04657044bb3695d70298624eb25394fb864fb718.tar.gz
t/v2mirror.t and t/lei-mirror.t are now skipped when curl
is missing (instead of failing in appropriate places).
A bunch of which() checks are updated to use require_cmd
to avoid explicitly loading Spawn.
Diffstat (limited to 'lib/PublicInbox/TestCommon.pm')
-rw-r--r--lib/PublicInbox/TestCommon.pm20
1 files changed, 13 insertions, 7 deletions
diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm
index 628beaf1..d8346673 100644
--- a/lib/PublicInbox/TestCommon.pm
+++ b/lib/PublicInbox/TestCommon.pm
@@ -18,7 +18,7 @@ BEGIN {
                 run_script start_script key2sub xsys xsys_e xqx eml_load tick
                 have_xapian_compact json_utf8 setup_public_inboxes create_inbox
                 tcp_host_port test_lei lei lei_ok $lei_out $lei_err $lei_opt
-                test_httpd xbail);
+                test_httpd xbail require_cmd);
         require Test::More;
         my @methods = grep(!/\W/, @Test::More::EXPORT);
         eval(join('', map { "*$_=\\&Test::More::$_;" } @methods));
@@ -87,6 +87,18 @@ sub tcp_connect {
         $s;
 }
 
+sub require_cmd ($;$) {
+        my ($cmd, $maybe) = @_;
+        require PublicInbox::Spawn;
+        my $bin = PublicInbox::Spawn::which($cmd);
+        return $bin if $bin;
+        $maybe ? 0 : plan(skip_all => "$cmd missing from PATH for $0");
+}
+
+sub have_xapian_compact () {
+        require_cmd($ENV{XAPIAN_COMPACT} || 'xapian-compact', 1);
+}
+
 sub require_git ($;$) {
         my ($req, $maybe) = @_;
         my ($req_maj, $req_min, $req_sub) = split(/\./, $req);
@@ -467,12 +479,6 @@ sub start_script {
         PublicInboxTestProcess->new($pid, $tail_pid);
 }
 
-sub have_xapian_compact () {
-        require PublicInbox::Spawn;
-        # $ENV{XAPIAN_COMPACT} is used by PublicInbox/Xapcmd.pm, too
-        PublicInbox::Spawn::which($ENV{XAPIAN_COMPACT} || 'xapian-compact');
-}
-
 # favor lei() or lei_ok() over $lei for new code
 sub lei (@) {
         my ($cmd, $env, $xopt) = @_;