lib/PublicInbox/TestCommon.pm | 9 +++++++++
t/extsearch.t | 4 ++--
t/nntpd.t | 3 +--
t/v2writable.t | 2 +-
diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm
index 55d82fc08592d0efa1370e1aeb7f4e2886075d49..333791b4cd5d9d5d858572866fdd343e572f1e66 100644
--- a/lib/PublicInbox/TestCommon.pm
+++ b/lib/PublicInbox/TestCommon.pm
@@ -117,6 +117,12 @@ }
1;
}
+my %IPv6_VERSION = (
+ 'Net::NNTP' => 3.00,
+ 'Mail::IMAPClient' => 3.40,
+ 'HTTP::Tiny' => 0.042,
+);
+
sub require_mods {
my @mods = @_;
my $maybe = pop @mods if $mods[-1] =~ /\A[0-9]+\z/;
@@ -166,6 +172,9 @@ # by libnet, at least:
# https://rt.cpan.org/Ticket/Display.html?id=100529
!eval{ IO::Socket::SSL->VERSION(2.007); 1 }) {
push @need, $@;
+ }
+ if (defined(my $v = $IPv6_VERSION{$mod})) {
+ $ENV{TEST_IPV4_ONLY} = 1 if !eval { $mod->VERSION($v) };
}
}
return unless @need;
diff --git a/t/extsearch.t b/t/extsearch.t
index 2d7375d63f9a6467f3b98b80da2715589ad4b573..6cbe52626830d5886054072a594b06c31725c5d0 100644
--- a/t/extsearch.t
+++ b/t/extsearch.t
@@ -13,8 +13,6 @@ require PublicInbox::Search;
use_ok 'PublicInbox::ExtSearch';
use_ok 'PublicInbox::ExtSearchIdx';
use_ok 'PublicInbox::OverIdx';
-my $sock = tcp_server();
-my $host_port = tcp_host_port($sock);
my ($home, $for_destroy) = tmpdir();
local $ENV{HOME} = $home;
mkdir "$home/.public-inbox" or BAIL_OUT $!;
@@ -125,6 +123,8 @@ }
SKIP: {
require_mods(qw(Net::NNTP), 1);
+ my $sock = tcp_server();
+ my $host_port = tcp_host_port($sock);
my ($out, $err) = ("$home/nntpd.out.log", "$home/nntpd.err.log");
my $cmd = [ '-nntpd', '-W0', "--stdout=$out", "--stderr=$err" ];
my $td = start_script($cmd, undef, { 3 => $sock });
diff --git a/t/nntpd.t b/t/nntpd.t
index 34e9e1b45462675d175f807fc6a1bdc38477334f..d352c3c14805aa523cd15518f1a4789c97416933 100644
--- a/t/nntpd.t
+++ b/t/nntpd.t
@@ -2,10 +2,9 @@ #!perl -w
# Copyright (C) all contributors
# License: AGPL-3.0+
use strict; use v5.10.1; use PublicInbox::TestCommon;
-require_mods(qw(DBD::SQLite));
+require_mods(qw(DBD::SQLite Net::NNTP));
use PublicInbox::Eml;
use Socket qw(IPPROTO_TCP TCP_NODELAY);
-use Net::NNTP;
use Sys::Hostname;
use POSIX qw(_exit);
use Digest::SHA;
diff --git a/t/v2writable.t b/t/v2writable.t
index 477621e24d011449e611f14caf567b32cfb645ab..ad946338e0aeb730ba5fa6b6bb6ca41cd61d12dd 100644
--- a/t/v2writable.t
+++ b/t/v2writable.t
@@ -149,7 +149,7 @@ is_deeply([values(%uniq)], [3], '3 queries, 3 results');
}
{
- use Net::NNTP;
+ require_mods('Net::NNTP', 1);
my $err = "$inboxdir/stderr.log";
my $out = "$inboxdir/stdout.log";
my $group = 'inbox.comp.test.v2writable';