X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fsearch.t;h=b1dbb301a7fa5abe9726e7e8bd5eabf7269328f2;hb=9bd675d33ad1e49bd2ebe12a1d216216e61380de;hp=493e00de5df17ff14cd64fda8e660f3b953fcfdc;hpb=70caf43a131fc5bdf7104f82f2acee9d5353d6a8;p=public-inbox.git diff --git a/t/search.t b/t/search.t index 493e00de..b1dbb301 100644 --- a/t/search.t +++ b/t/search.t @@ -1,31 +1,37 @@ -# Copyright (C) 2015-2018 all contributors +# Copyright (C) 2015-2019 all contributors # License: AGPL-3.0+ use strict; use warnings; use Test::More; -eval { require PublicInbox::SearchIdx; }; -plan skip_all => "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) }; +eval { PublicInbox::Search->new($ibx)->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; }); $rw = undef; -my $ro = PublicInbox::Search->new($git_dir); +my $ro = PublicInbox::Search->new($ibx); 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; };