]> Sergey Matveev's repositories - public-inbox.git/commitdiff
searchidx: require PublicInbox::Inbox (or InboxWritable) ref
authorEric Wong <e@80x24.org>
Fri, 14 Jun 2019 17:01:55 +0000 (17:01 +0000)
committerEric Wong <e@80x24.org>
Fri, 14 Jun 2019 17:27:06 +0000 (17:27 +0000)
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
t/nntpd.t
t/psgi_search.t
t/search-thr-index.t
t/search.t

index 7cd67f12f6e5e893d970e82e0e4f1cd03e620127..a088ce75fe62e5b32331e778b559bce7e0bc5d94 100644 (file)
@@ -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 {
index a95fb6fca8801d66ac4a97efa61bdd342fa0a8ac..c37880bf1c486c2974c74021fdaed00d3b83e56b 100644 (file)
--- 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>");
index a65076769e976fe2c251bb54c1f1309bcdcc6cd5..bbf5a96a718773ca8a6cafe90ca36dae4c012f62 100644 (file)
@@ -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';
index 1872af84e124430ee02b826f57e00b7045d52b4a..0f593c2aa8a823fafcb91b5a469c2bb1a09ebae1 100644 (file)
@@ -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]
index 538baeff4e0afec319d0df27dba1b94f1e8fd0e3..d4c1e150ef960ac0e581b48aafdf0f7ca8b96adb 100644 (file)
@@ -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;
 };