]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/search.t
searchidx: require PublicInbox::Inbox (or InboxWritable) ref
[public-inbox.git] / t / search.t
index a9d0c92030e1a936a5e7d5a77b4b22c65d5645c1..d4c1e150ef960ac0e581b48aafdf0f7ca8b96adb 100644 (file)
@@ -3,21 +3,25 @@
 use strict;
 use warnings;
 use Test::More;
-eval { require Search::Xapian };
-plan skip_all => "Search::Xapian missing for search" if $@;
+my @mods = qw(DBI DBD::SQLite Search::Xapian);
+foreach my $mod (@mods) {
+       eval "require $mod";
+       plan skip_all => "missing $mod for $0" if $@;
+};
 require PublicInbox::SearchIdx;
+require PublicInbox::Inbox;
 use File::Temp qw/tempdir/;
 use Email::MIME;
 my $tmpdir = tempdir('pi-search-XXXXXX', TMPDIR => 1, CLEANUP => 1);
 my $git_dir = "$tmpdir/a.git";
+my $ibx = PublicInbox::Inbox->new({ mainrepo => $git_dir });
 my ($root_id, $last_id);
 
 is(0, system(qw(git init --shared -q --bare), $git_dir), "git init (main)");
 eval { PublicInbox::Search->new($git_dir)->xdb };
 ok($@, "exception raised on non-existent DB");
 
-my $rw = PublicInbox::SearchIdx->new($git_dir, 1);
-my $ibx = $rw->{-inbox};
+my $rw = PublicInbox::SearchIdx->new($ibx, 1);
 $ibx->with_umask(sub {
        $rw->_xdb_acquire;
        $rw->_xdb_release;
@@ -26,7 +30,8 @@ $rw = undef;
 my $ro = PublicInbox::Search->new($git_dir);
 my $rw_commit = sub {
        $rw->commit_txn_lazy if $rw;
-       $rw = PublicInbox::SearchIdx->new($git_dir, 1);
+       $rw = PublicInbox::SearchIdx->new($ibx, 1);
+       $rw->{qp_flags} = 0; # quiet a warning
        $rw->begin_txn_lazy;
 };