diff options
author | Eric Wong <e@80x24.org> | 2020-01-04 21:37:52 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2020-01-04 22:08:08 +0000 |
commit | cb850caf867e3e6920233c1c1ab7120cac054af8 (patch) | |
tree | 3fae0ca287eb514312cecd441ebda7b3ec6e7426 | |
parent | 9c6dbb636ae2738c4b5d5b96752b7433be0d7b62 (diff) | |
download | public-inbox-cb850caf867e3e6920233c1c1ab7120cac054af8.tar.gz |
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.
-rw-r--r-- | lib/PublicInbox/TestCommon.pm | 12 | ||||
-rw-r--r-- | t/xcpdb-reshard.t | 7 |
2 files changed, 13 insertions, 6 deletions
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; |