From 585314673236d664729fe3ab2d4fb229d1c0f2d5 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 14 Jun 2019 17:01:55 +0000 Subject: searchidx: require PublicInbox::Inbox (or InboxWritable) ref PublicInbox::Inbox objects have minimal dependencies, so drop code to support old tests which existed before the PublicInbox::Inbox object came into existence. --- lib/PublicInbox/SearchIdx.pm | 35 +++++++++++++---------------------- t/nntpd.t | 4 ++-- t/psgi_search.t | 4 +++- t/search-thr-index.t | 4 +++- t/search.t | 7 ++++--- 5 files changed, 25 insertions(+), 29 deletions(-) diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm index 7cd67f12..a088ce75 100644 --- a/lib/PublicInbox/SearchIdx.pm +++ b/lib/PublicInbox/SearchIdx.pm @@ -30,31 +30,22 @@ my $xapianlevels = qr/\A(?:full|medium)\z/; sub new { my ($class, $ibx, $creat, $part) = @_; + ref $ibx or die "BUG: expected PublicInbox::Inbox object: $ibx"; my $levels = qr/\A(?:full|medium|basic)\z/; - my $mainrepo = $ibx; # for "public-inbox-index" w/o entry in config - my $git_dir = $mainrepo; - my ($altid, $git); - my $version = 1; + my $mainrepo = $ibx->{mainrepo}; + my $version = $ibx->{version} || 1; my $indexlevel = 'full'; - if (ref $ibx) { - $mainrepo = $ibx->{mainrepo}; - $altid = $ibx->{altid}; - $version = $ibx->{version} || 1; - if ($altid) { - require PublicInbox::AltId; - $altid = [ map { - PublicInbox::AltId->new($ibx, $_); - } @$altid ]; - } - if ($ibx->{indexlevel}) { - if ($ibx->{indexlevel} =~ $levels) { - $indexlevel = $ibx->{indexlevel}; - } else { - die("Invalid indexlevel $ibx->{indexlevel}\n"); - } + my $altid = $ibx->{altid}; + if ($altid) { + require PublicInbox::AltId; + $altid = [ map { PublicInbox::AltId->new($ibx, $_); } @$altid ]; + } + if ($ibx->{indexlevel}) { + if ($ibx->{indexlevel} =~ $levels) { + $indexlevel = $ibx->{indexlevel}; + } else { + die("Invalid indexlevel $ibx->{indexlevel}\n"); } - } else { # FIXME: old tests: old tests - $ibx = { mainrepo => $git_dir, version => 1 }; } $ibx = PublicInbox::InboxWritable->new($ibx); my $self = bless { diff --git a/t/nntpd.t b/t/nntpd.t index a95fb6fc..c37880bf 100644 --- a/t/nntpd.t +++ b/t/nntpd.t @@ -91,7 +91,7 @@ EOF $im->add($mime); $im->done; if ($version == 1) { - my $s = PublicInbox::SearchIdx->new($mainrepo, 1); + my $s = PublicInbox::SearchIdx->new($ibx, 1); $s->index_sync; } } @@ -243,7 +243,7 @@ Date: Fri, 02 Oct 1993 00:00:00 +0000 $im->add($for_leafnode); $im->done; if ($version == 1) { - my $s = PublicInbox::SearchIdx->new($mainrepo, 1); + my $s = PublicInbox::SearchIdx->new($ibx, 1); $s->index_sync; } my $hdr = $n->head("<$long_hdr>"); diff --git a/t/psgi_search.t b/t/psgi_search.t index a6507676..bbf5a96a 100644 --- a/t/psgi_search.t +++ b/t/psgi_search.t @@ -6,6 +6,7 @@ use Test::More; use File::Temp qw/tempdir/; use Email::MIME; use PublicInbox::Config; +use PublicInbox::Inbox; use PublicInbox::WWW; use bytes (); # only for bytes::length my @mods = qw(DBD::SQLite Search::Xapian HTTP::Request::Common Plack::Test @@ -19,7 +20,8 @@ my $tmpdir = tempdir('pi-psgi-search.XXXXXX', TMPDIR => 1, CLEANUP => 1); my $git_dir = "$tmpdir/a.git"; is(0, system(qw(git init -q --bare), $git_dir), "git init (main)"); -my $rw = PublicInbox::SearchIdx->new($git_dir, 1); +my $ibx = PublicInbox::Inbox->new({mainrepo => $git_dir}); +my $rw = PublicInbox::SearchIdx->new($ibx, 1); ok($rw, "search indexer created"); my $digits = '10010260936330'; my $ua = 'Pine.LNX.4.10'; diff --git a/t/search-thr-index.t b/t/search-thr-index.t index 1872af84..0f593c2a 100644 --- a/t/search-thr-index.t +++ b/t/search-thr-index.t @@ -13,11 +13,13 @@ foreach my $mod (@mods) { plan skip_all => "missing $mod for $0" if $@; } require PublicInbox::SearchIdx; +require PublicInbox::Inbox; my $tmpdir = tempdir('pi-search-thr-index.XXXXXX', TMPDIR => 1, CLEANUP => 1); my $git_dir = "$tmpdir/a.git"; is(0, system(qw(git init -q --bare), $git_dir), "git init (main)"); -my $rw = PublicInbox::SearchIdx->new($git_dir, 1); +my $ibx = PublicInbox::Inbox->new({mainrepo => $git_dir}); +my $rw = PublicInbox::SearchIdx->new($ibx, 1); ok($rw, "search indexer created"); my $data = <<'EOF'; Subject: [RFC 00/14] diff --git a/t/search.t b/t/search.t index 538baeff..d4c1e150 100644 --- a/t/search.t +++ b/t/search.t @@ -9,18 +9,19 @@ foreach my $mod (@mods) { 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; @@ -29,7 +30,7 @@ $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; }; -- cgit v1.2.3-24-ge0c7