about summary refs log tree commit homepage
path: root/t
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2023-01-30 22:50:07 +0000
committerEric Wong <e@80x24.org>2023-01-31 00:27:05 +0000
commit5dbb060037ce3e3a3ba0812baa90c80eeee762af (patch)
tree4c61aef7f5822ede45c8c352320ed8bc5b7492b8 /t
parent155ee9cdaffd6232ef3c774d1a9f61d708fc8d6e (diff)
downloadpublic-inbox-5dbb060037ce3e3a3ba0812baa90c80eeee762af.tar.gz
We'll rely on defined(wantarray) to implicitly skip subtests,
and memoize these to reduce syscalls, since tests should
be short-lived enough to not be affected by new installations or
removals of git/xapian-compact/curl/etc...
Diffstat (limited to 't')
-rw-r--r--t/admin.t4
-rw-r--r--t/config.t5
-rw-r--r--t/convert-compact.t5
-rw-r--r--t/git.t5
-rw-r--r--t/imapd.t5
-rw-r--r--t/import.t9
-rw-r--r--t/index-git-times.t5
-rw-r--r--t/init.t8
-rw-r--r--t/nntpd.t2
-rw-r--r--t/v2mirror.t4
10 files changed, 25 insertions, 27 deletions
diff --git a/t/admin.t b/t/admin.t
index 8d09bfc1..20e3deb7 100644
--- a/t/admin.t
+++ b/t/admin.t
@@ -1,5 +1,5 @@
 #!perl -w
-# Copyright (C) 2019-2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
 use v5.10.1;
@@ -13,7 +13,7 @@ my ($res, $err, $v);
 my $v2ibx;
 SKIP: {
         require_mods(qw(DBD::SQLite), 5);
-        require_git(2.6, 1) or skip 5, 'git too old';
+        require_git(2.6, 5);
         $v2ibx = create_inbox 'v2', indexlevel => 'basic', version => 2,
                                 -no_gc => 1, sub {
                 my ($v2w, $ibx) = @_;
diff --git a/t/config.t b/t/config.t
index 7e753cbe..ba83e63f 100644
--- a/t/config.t
+++ b/t/config.t
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
 use v5.10.1;
@@ -245,8 +245,7 @@ EOF
 
 SKIP: {
         # XXX wildcard match requires git 2.26+
-        require_git('1.8.5', 2) or
-                skip 'git 1.8.5+ required for --url-match', 2;
+        require_git('1.8.5', 2);
         my $f = "$tmpdir/urlmatch";
         open my $fh, '>', $f or BAIL_OUT $!;
         print $fh <<EOF or BAIL_OUT $!;
diff --git a/t/convert-compact.t b/t/convert-compact.t
index def09567..bad6560e 100644
--- a/t/convert-compact.t
+++ b/t/convert-compact.t
@@ -1,5 +1,5 @@
 #!perl -w
-# Copyright (C) 2018-2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
 use v5.10.1;
@@ -8,8 +8,7 @@ use PublicInbox::TestCommon;
 use PublicInbox::Import;
 require_git(2.6);
 require_mods(qw(DBD::SQLite Search::Xapian));
-have_xapian_compact or
-        plan skip_all => 'xapian-compact missing for '.__FILE__;
+have_xapian_compact;
 my ($tmpdir, $for_destroy) = tmpdir();
 my $ibx = create_inbox 'v1', indexlevel => 'medium', tmpdir => "$tmpdir/v1",
                 pre_cb => sub {
diff --git a/t/git.t b/t/git.t
index d8957e42..dfa5eab2 100644
--- a/t/git.t
+++ b/t/git.t
@@ -1,7 +1,8 @@
+#!perl -w
 # Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
-use Test::More;
+use v5.10.1;
 use PublicInbox::TestCommon;
 my ($dir, $for_destroy) = tmpdir();
 use PublicInbox::Import;
@@ -134,7 +135,7 @@ if (1) {
 }
 
 SKIP: {
-        require_git(2.6, 7) or skip('need git 2.6+ for --batch-all-objects', 7);
+        require_git(2.6, 7);
         my ($alt, $alt_obj) = tmpdir();
         my $hash_obj = [ 'git', "--git-dir=$alt", qw(hash-object -w --stdin) ];
         PublicInbox::Import::init_bare($alt);
diff --git a/t/imapd.t b/t/imapd.t
index cbd6c1b9..c7dc01a5 100644
--- a/t/imapd.t
+++ b/t/imapd.t
@@ -3,7 +3,7 @@
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 # end-to-end IMAP tests, see unit tests in t/imap.t, too
 use strict;
-use Test::More;
+use v5.10.1;
 use Time::HiRes ();
 use PublicInbox::TestCommon;
 use PublicInbox::Config;
@@ -438,8 +438,7 @@ ok($mic->logout, 'logged out');
 
 SKIP: {
         use_ok 'PublicInbox::InboxIdle';
-        require_git('1.8.5', 1) or
-                skip('git 1.8.5+ needed for --urlmatch', 4);
+        require_git '1.8.5', 4;
         my $old_env = { HOME => $ENV{HOME} };
         my $home = "$tmpdir/watch_home";
         mkdir $home or BAIL_OUT $!;
diff --git a/t/import.t b/t/import.t
index 4ba74022..f1d61dae 100644
--- a/t/import.t
+++ b/t/import.t
@@ -1,8 +1,8 @@
+#!perl -w
 # Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
+use v5.10.1;
 use strict;
-use warnings;
-use Test::More;
 use PublicInbox::Eml;
 use PublicInbox::Smsg;
 use PublicInbox::Git;
@@ -26,10 +26,11 @@ hello world
 EOF
 
 my $v2 = require_git(2.6, 1);
-my $smsg = bless {}, 'PublicInbox::Smsg' if $v2;
+my $smsg = $v2 ? bless({}, 'PublicInbox::Smsg') : undef;
 like($im->add($mime, undef, $smsg), qr/\A:[0-9]+\z/, 'added one message');
 
-if ($v2) {
+SKIP: {
+        skip 'git 2.6+ required', 3 if !$v2;
         like($smsg->{blob}, qr/\A[a-f0-9]{40,64}\z/, 'got last object_id');
         my @cmd = ('git', "--git-dir=$git->{git_dir}", qw(hash-object --stdin));
         open my $in, '+<', undef or BAIL_OUT "open(+<): $!";
diff --git a/t/index-git-times.t b/t/index-git-times.t
index 52173396..ffe9223c 100644
--- a/t/index-git-times.t
+++ b/t/index-git-times.t
@@ -1,9 +1,8 @@
 #!perl -w
-# Copyright (C) 2020-2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
 use v5.10.1;
-use Test::More;
 use PublicInbox::TestCommon;
 use PublicInbox::Config;
 use PublicInbox::Admin;
@@ -74,7 +73,7 @@ my $smsg;
         is($res->[0]->{ds}, $smsg->{ds}, 'Xapian search on datestamp');
 }
 SKIP: {
-        require_git(2.6, 1) or skip('git 2.6+ required for v2', 10);
+        require_git(2.6, 10);
         my $v2dir = "$tmpdir/v2";
         run_script(['-convert', $v1dir, $v2dir]) or die 'v2 conversion failed';
 
diff --git a/t/init.t b/t/init.t
index 460c83f3..46258e45 100644
--- a/t/init.t
+++ b/t/init.t
@@ -1,8 +1,8 @@
-# Copyright (C) 2014-2021 all contributors <meta@public-inbox.org>
+#!perl -w
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
-use warnings;
-use Test::More;
+use v5.10.1;
 use PublicInbox::Config;
 use PublicInbox::TestCommon;
 use PublicInbox::Admin;
@@ -117,7 +117,7 @@ sub quiet_fail {
 
 SKIP: {
         require_mods(qw(DBD::SQLite Search::Xapian), 2);
-        require_git(2.6, 1) or skip "git 2.6+ required", 2;
+        require_git(2.6, 2);
         use_ok 'PublicInbox::Msgmap';
         local $ENV{PI_DIR} = "$tmpdir/.public-inbox/";
         local $ENV{PI_EMERGENCY} = "$tmpdir/.public-inbox/emergency";
diff --git a/t/nntpd.t b/t/nntpd.t
index 84a60574..dbbc37b8 100644
--- a/t/nntpd.t
+++ b/t/nntpd.t
@@ -413,7 +413,7 @@ sub test_watch {
         use_ok 'PublicInbox::Watch';
         use_ok 'PublicInbox::InboxIdle';
         use_ok 'PublicInbox::Config';
-        require_git('1.8.5', 1) or skip('git 1.8.5+ needed for --urlmatch', 4);
+        require_git('1.8.5', 4);
         my $old_env = { HOME => $ENV{HOME} };
         my $home = "$tmpdir/watch_home";
         mkdir $home or BAIL_OUT $!;
diff --git a/t/v2mirror.t b/t/v2mirror.t
index f9074e45..c1c66d45 100644
--- a/t/v2mirror.t
+++ b/t/v2mirror.t
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
 use v5.10.1;
@@ -330,7 +330,7 @@ SKIP: {
         require_mods('Email::MIME', 1); # for legacy revision
         # using plackup to test old PublicInbox::WWW since -httpd from
         # back then relied on some packages we no longer depend on
-        my $plackup = which('plackup') or skip('no plackup in path', 1);
+        my $plackup = require_cmd('plackup', 1) or skip('no plackup in path', 1);
         require PublicInbox::Lock;
         chomp $oldrev;
         my ($base) = ($0 =~ m!\b([^/]+)\.[^\.]+\z!);