From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id CB88F1F463 for ; Sat, 4 Jan 2020 22:09:38 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH] tests: fix running without SQLite or Xapian Date: Sat, 4 Jan 2020 22:09:38 +0000 Message-Id: <20200104220938.93619-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: 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 | 12 ++++++++---- 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;