From: Eric Wong Date: Sat, 4 Jan 2020 21:37:52 +0000 (+0000) Subject: tests: fix running without SQLite or Xapian X-Git-Tag: v1.3.0~140 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;ds=sidebyside;h=cb850caf867e3e6920233c1c1ab7120cac054af8;p=public-inbox.git tests: fix running without SQLite or Xapian PublicInbox::Search always loads DBD::SQLite, so we can't blindly "use" it in t/xcpdb-reshard.t. We also need to account for that in TestCommon. --- diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm index 532cbee6..68785969 100644 --- a/lib/PublicInbox/TestCommon.pm +++ b/lib/PublicInbox/TestCommon.pm @@ -65,11 +65,15 @@ sub require_mods { 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 2a0aeb45..9f0034f1 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 @@ for my $R (qw(2 4 1 3 3)) { # 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;