]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/v2reindex.t
SearchIdx: Allow the amount of indexing be configured
[public-inbox.git] / t / v2reindex.t
index 5bc307f1cac11ed34c3c3ec6e4c8258544c85652..20903967bf255f7133c09d71821165417003f3e6 100644 (file)
@@ -19,6 +19,7 @@ my $ibx_config = {
        name => 'test-v2writable',
        version => 2,
        -primary_address => 'test@example.com',
+       indexlevel => 'full',
 };
 my $ibx = PublicInbox::Inbox->new($ibx_config);
 my $mime = PublicInbox::MIME->create(
@@ -63,7 +64,7 @@ $im->done;
 ok(-d $xap, 'Xapian directories recreated');
 
 delete $ibx->{mm};
-is_deeply($minmax, [ $ibx->mm->minmax ], 'minmax unchanged');
+is_deeply([ $ibx->mm->minmax ], $minmax, 'minmax unchanged');
 
 ok(unlink "$mainrepo/msgmap.sqlite3", 'remove msgmap');
 remove_tree($xap);
@@ -77,7 +78,7 @@ ok(!-d $xap, 'Xapian directories removed again');
        $im->done;
        ok(-d $xap, 'Xapian directories recreated');
        delete $ibx->{mm};
-       is_deeply($minmax, [ $ibx->mm->minmax ], 'minmax unchanged');
+       is_deeply([ $ibx->mm->minmax ], $minmax, 'minmax unchanged');
 }
 
 ok(unlink "$mainrepo/msgmap.sqlite3", 'remove msgmap');
@@ -92,7 +93,46 @@ ok(!-d $xap, 'Xapian directories removed again');
        $im->done;
        ok(-d $xap, 'Xapian directories recreated');
        delete $ibx->{mm};
-       is_deeply($minmax, [ $ibx->mm->minmax ], 'minmax unchanged');
+       is_deeply([ $ibx->mm->minmax ], $minmax, 'minmax unchanged');
+}
+
+ok(unlink "$mainrepo/msgmap.sqlite3", 'remove msgmap');
+remove_tree($xap);
+ok(!-d $xap, 'Xapian directories removed again');
+
+$ibx_config->{index_level} = 'medium';
+$ibx = PublicInbox::Inbox->new($ibx_config);
+$im = PublicInbox::V2Writable->new($ibx);
+{
+       my @warn;
+       local $SIG{__WARN__} = sub { push @warn, @_ };
+       eval { $im->index_sync({reindex => 1}) };
+       is($@, '', 'no error from reindexing without msgmap');
+       is_deeply(\@warn, [], 'no warnings');
+       $im->done;
+       ok(-d $xap, 'Xapian directories recreated');
+       delete $ibx->{mm};
+       is_deeply([ $ibx->mm->minmax ], $minmax, 'minmax unchanged');
+}
+
+
+ok(unlink "$mainrepo/msgmap.sqlite3", 'remove msgmap');
+remove_tree($xap);
+ok(!-d $xap, 'Xapian directories removed again');
+
+$ibx_config->{index_level} = 'basic';
+$ibx = PublicInbox::Inbox->new($ibx_config);
+$im = PublicInbox::V2Writable->new($ibx);
+{
+       my @warn;
+       local $SIG{__WARN__} = sub { push @warn, @_ };
+       eval { $im->index_sync({reindex => 1}) };
+       is($@, '', 'no error from reindexing without msgmap');
+       is_deeply(\@warn, [], 'no warnings');
+       $im->done;
+       ok(-d $xap, 'Xapian directories recreated');
+       delete $ibx->{mm};
+       is_deeply([ $ibx->mm->minmax ], $minmax, 'minmax unchanged');
 }
 
 done_testing();