lib/PublicInbox/TestCommon.pm | 12 ++++++++---- t/xcpdb-reshard.t | 7 +++++-- diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm index 532cbee676b2ac5b5184ddf24df2ed417c757bf0..68785969fc8a27c939c9b74e74ee159181bb73ed 100644 --- a/lib/PublicInbox/TestCommon.pm +++ b/lib/PublicInbox/TestCommon.pm @@ -65,11 +65,15 @@ my $maybe = pop @mods if $mods[-1] =~ /\A[0-9]+\z/; my @need; for my $mod (@mods) { if ($mod eq 'Search::Xapian') { - require PublicInbox::Search; - PublicInbox::Search::load_xapian() and next; + if (eval { require PublicInbox::Search } && + PublicInbox::Search::load_xapian()) { + next; + } } elsif ($mod eq 'Search::Xapian::WritableDatabase') { - require PublicInbox::SearchIdx; - PublicInbox::SearchIdx::load_xapian_writable() and next; + if (eval { require PublicInbox::SearchIdx } && + PublicInbox::SearchIdx::load_xapian_writable()){ + next; + } } else { eval "require $mod"; } diff --git a/t/xcpdb-reshard.t b/t/xcpdb-reshard.t index 2a0aeb45a605832dde5933e1673bbf35eb684974..9f0034f1581305b5c32ab29f463876385087790a 100644 --- a/t/xcpdb-reshard.t +++ b/t/xcpdb-reshard.t @@ -8,7 +8,7 @@ require_mods(qw(DBD::SQLite Search::Xapian)); require_git('2.6'); use PublicInbox::MIME; use PublicInbox::InboxWritable; -use PublicInbox::Search; +require PublicInbox::Search; my $mime = PublicInbox::MIME->create( header => [ @@ -62,7 +62,10 @@ # ensure docids in Xapian match NNTP article numbers my $tot = 0; my %tmp = %nums; - my $XapianDatabase = $PublicInbox::Search::X{Database}; + my $XapianDatabase = do { + no warnings 'once'; + $PublicInbox::Search::X{Database}; + }; foreach my $d (@new_shards) { my $xdb = $XapianDatabase->new($d); $tot += $xdb->get_doccount;