]> Sergey Matveev's repositories - public-inbox.git/commitdiff
tests: fix running without SQLite or Xapian
authorEric Wong <e@80x24.org>
Sat, 4 Jan 2020 21:37:52 +0000 (21:37 +0000)
committerEric Wong <e@80x24.org>
Sat, 4 Jan 2020 22:08:08 +0000 (22:08 +0000)
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.

lib/PublicInbox/TestCommon.pm
t/xcpdb-reshard.t

index 532cbee676b2ac5b5184ddf24df2ed417c757bf0..68785969fc8a27c939c9b74e74ee159181bb73ed 100644 (file)
@@ -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";
                }
index 2a0aeb45a605832dde5933e1673bbf35eb684974..9f0034f1581305b5c32ab29f463876385087790a 100644 (file)
@@ -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;