]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/v1reindex.t
config: support "inboxdir" in addition to "mainrepo"
[public-inbox.git] / t / v1reindex.t
index 876c9db3441aee0f341ce28ec5554ab5414aed8a..e35477535800626e47bda9bd64546c32d3514098 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2018 all contributors <meta@public-inbox.org>
+# Copyright (C) 2018-2019 all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
 use warnings;
@@ -7,6 +7,8 @@ use PublicInbox::MIME;
 use PublicInbox::ContentId qw(content_digest);
 use File::Temp qw/tempdir/;
 use File::Path qw(remove_tree);
+require './t/common.perl';
+require_git(2.6);
 
 foreach my $mod (qw(DBD::SQLite Search::Xapian)) {
        eval "require $mod";
@@ -14,10 +16,10 @@ foreach my $mod (qw(DBD::SQLite Search::Xapian)) {
 }
 use_ok 'PublicInbox::SearchIdx';
 use_ok 'PublicInbox::Import';
-my $mainrepo = tempdir('pi-v1reindex-XXXXXX', TMPDIR => 1, CLEANUP => 1);
-is(system(qw(git init -q --bare), $mainrepo), 0);
+my $inboxdir = tempdir('pi-v1reindex-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+is(system(qw(git init -q --bare), $inboxdir), 0);
 my $ibx_config = {
-       mainrepo => $mainrepo,
+       inboxdir => $inboxdir,
        name => 'test-v1reindex',
        -primary_address => 'test@example.com',
        indexlevel => 'full',
@@ -63,6 +65,7 @@ my ($mark1, $mark2, $mark3, $mark4);
        $minmax = [ $ibx->mm->minmax ];
        ok(defined $minmax->[0] && defined $minmax->[1], 'minmax defined');
        is_deeply($minmax, [ 1, 10 ], 'minmax as expected');
+       is($ibx->mm->num_highwater, 10, 'num_highwater as expected');
 
        my ($min, $max) = @$minmax;
        $msgmap = $ibx->mm->msg_range(\$min, $max);
@@ -87,11 +90,13 @@ my ($mark1, $mark2, $mark3, $mark4);
        is($@, '', 'no error from reindexing');
        $im->done;
 
+       is($ibx->mm->num_highwater, 10, 'num_highwater as expected');
+
        my ($min, $max) = $ibx->mm->minmax;
        is_deeply($ibx->mm->msg_range(\$min, $max), $msgmap, 'msgmap unchanged');
 }
 
-my $xap = "$mainrepo/public-inbox/xapian".PublicInbox::Search::SCHEMA_VERSION();
+my $xap = "$inboxdir/public-inbox/xapian".PublicInbox::Search::SCHEMA_VERSION();
 remove_tree($xap);
 ok(!-d $xap, 'Xapian directories removed');
 {
@@ -107,12 +112,13 @@ ok(!-d $xap, 'Xapian directories removed');
 
        delete $ibx->{mm};
        is_deeply([ $ibx->mm->minmax ], $minmax, 'minmax unchanged');
+       is($ibx->mm->num_highwater, 10, 'num_highwater as expected');
 
        my ($min, $max) = $ibx->mm->minmax;
        is_deeply($ibx->mm->msg_range(\$min, $max), $msgmap, 'msgmap unchanged');
 }
 
-ok(unlink "$mainrepo/public-inbox/msgmap.sqlite3", 'remove msgmap');
+ok(unlink "$inboxdir/public-inbox/msgmap.sqlite3", 'remove msgmap');
 remove_tree($xap);
 ok(!-d $xap, 'Xapian directories removed again');
 {
@@ -129,12 +135,13 @@ ok(!-d $xap, 'Xapian directories removed again');
        ok(-d $xap, 'Xapian directories recreated');
        delete $ibx->{mm};
        is_deeply([ $ibx->mm->minmax ], $minmax, 'minmax unchanged');
+       is($ibx->mm->num_highwater, 10, 'num_highwater as expected');
 
        my ($min, $max) = $ibx->mm->minmax;
        is_deeply($ibx->mm->msg_range(\$min, $max), $msgmap, 'msgmap unchanged');
 }
 
-ok(unlink "$mainrepo/public-inbox/msgmap.sqlite3", 'remove msgmap');
+ok(unlink "$inboxdir/public-inbox/msgmap.sqlite3", 'remove msgmap');
 remove_tree($xap);
 ok(!-d $xap, 'Xapian directories removed again');
 {
@@ -151,12 +158,13 @@ ok(!-d $xap, 'Xapian directories removed again');
        ok(-d $xap, 'Xapian directories recreated');
        delete $ibx->{mm};
        is_deeply([ $ibx->mm->minmax ], $minmax, 'minmax unchanged');
+       is($ibx->mm->num_highwater, 10, 'num_highwater as expected');
 
        my ($min, $max) = @$minmax;
        is_deeply($ibx->mm->msg_range(\$min, $max), $msgmap, 'msgmap unchanged');
 }
 
-ok(unlink "$mainrepo/public-inbox/msgmap.sqlite3", 'remove msgmap');
+ok(unlink "$inboxdir/public-inbox/msgmap.sqlite3", 'remove msgmap');
 remove_tree($xap);
 ok(!-d $xap, 'Xapian directories removed again');
 {
@@ -174,6 +182,7 @@ ok(!-d $xap, 'Xapian directories removed again');
        ok(-d $xap, 'Xapian directories recreated');
        delete $ibx->{mm};
        is_deeply([ $ibx->mm->minmax ], $minmax, 'minmax unchanged');
+       is($ibx->mm->num_highwater, 10, 'num_highwater as expected');
        my $mset = $ibx->search->query('hello world', {mset=>1});
        isnt($mset->size, 0, 'got Xapian search results');
 
@@ -181,7 +190,7 @@ ok(!-d $xap, 'Xapian directories removed again');
        is_deeply($ibx->mm->msg_range(\$min, $max), $msgmap, 'msgmap unchanged');
 }
 
-ok(unlink "$mainrepo/public-inbox/msgmap.sqlite3", 'remove msgmap');
+ok(unlink "$inboxdir/public-inbox/msgmap.sqlite3", 'remove msgmap');
 remove_tree($xap);
 ok(!-d $xap, 'Xapian directories removed again');
 {
@@ -199,8 +208,8 @@ ok(!-d $xap, 'Xapian directories removed again');
        ok(-d $xap, 'Xapian directories recreated');
        delete $ibx->{mm};
        is_deeply([ $ibx->mm->minmax ], $minmax, 'minmax unchanged');
-       my $mset = $ibx->search->reopen->query('hello world', {mset=>1});
-       is($mset->size, 0, "no Xapian search results");
+       is($ibx->mm->num_highwater, 10, 'num_highwater as expected');
+       isnt($ibx->search, 'no search for basic');
 
        my ($min, $max) = $ibx->mm->minmax;
        is_deeply($ibx->mm->msg_range(\$min, $max), $msgmap, 'msgmap unchanged');
@@ -214,7 +223,7 @@ ok(!-d $xap, 'Xapian directories removed again');
        my @warn;
        local $SIG{__WARN__} = sub { push @warn, @_ };
        my %config = %$ibx_config;
-       $config{indexleve} = 'medium';
+       $config{indexlevel} = 'medium';
        my $ibx = PublicInbox::Inbox->new(\%config);
        my $rw = PublicInbox::SearchIdx->new($ibx, 1);
        eval { $rw->index_sync };
@@ -223,12 +232,14 @@ ok(!-d $xap, 'Xapian directories removed again');
        my $mset = $ibx->search->reopen->query('hello world', {mset=>1});
        isnt($mset->size, 0, 'search OK after basic -> medium');
 
+       is($ibx->mm->num_highwater, 10, 'num_highwater as expected');
+
        my ($min, $max) = $ibx->mm->minmax;
        is_deeply($ibx->mm->msg_range(\$min, $max), $msgmap, 'msgmap unchanged');
 }
 
 # An incremental indexing test
-ok(unlink "$mainrepo/public-inbox/msgmap.sqlite3", 'remove msgmap');
+ok(unlink "$inboxdir/public-inbox/msgmap.sqlite3", 'remove msgmap');
 remove_tree($xap);
 ok(!-d $xap, 'Xapian directories removed again');
 {
@@ -338,7 +349,7 @@ ok(!-d $xap, 'Xapian directories removed again');
 
 
 # Another incremental indexing test
-ok(unlink "$mainrepo/public-inbox/msgmap.sqlite3", 'remove msgmap');
+ok(unlink "$inboxdir/public-inbox/msgmap.sqlite3", 'remove msgmap');
 remove_tree($xap);
 ok(!-d $xap, 'Xapian directories removed again');
 {