about summary refs log tree commit homepage
path: root/t/v2mda.t
diff options
context:
space:
mode:
Diffstat (limited to 't/v2mda.t')
-rw-r--r--t/v2mda.t39
1 files changed, 35 insertions, 4 deletions
diff --git a/t/v2mda.t b/t/v2mda.t
index 3dfc569e..b7d177b2 100644
--- a/t/v2mda.t
+++ b/t/v2mda.t
@@ -1,16 +1,17 @@
-# Copyright (C) 2018-2021 all contributors <meta@public-inbox.org>
+#!perl -w
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
+use v5.10.1;
 use strict;
-use warnings;
-use Test::More;
 use Fcntl qw(SEEK_SET);
 use Cwd;
 use PublicInbox::TestCommon;
 use PublicInbox::Eml;
+use File::Path qw(remove_tree);
 require_git(2.6);
 
 my $V = 2;
-require_mods(qw(DBD::SQLite Search::Xapian));
+require_mods(qw(DBD::SQLite Xapian));
 use_ok 'PublicInbox::V2Writable';
 my ($tmpdir, $for_destroy) = tmpdir();
 my $ibx = {
@@ -88,6 +89,36 @@ is($eml->as_string, $mime->as_string, 'injected message');
         $pre = $ibx->search->mset_to_smsg($ibx, $pre);
         $post = $ibx->search->mset_to_smsg($ibx, $post);
         is($post->[0]->{blob}, $pre->[0]->{blob}, 'same message in both cases');
+
+        # git patch-id --stable <t/data/0001.patch | awk '{print $1}'
+        my $patchid = '91ee6b761fc7f47cad9f2b09b10489f313eb5b71';
+        my $mset = $ibx->search->mset("patchid:$patchid");
+        is($mset->size, 1, 'patchid search works');
+}
+
+{
+        my @shards = grep(m!/[0-9]+\z!, glob("$ibx->{inboxdir}/xap*/*"));
+        ok(remove_tree(@shards), 'rm shards to convert to indexlevel=basic');
+        $ibx->do_cleanup;
+        $rdr->{2} = \(my $err = '');
+        $rdr->{0} = \<<'EOM';
+From: a@example.com
+To: test@example.com
+Subject: this is a ham message for learn
+Date: Fri, 02 Oct 1993 00:00:00 +0000
+Message-ID: <ham@example>
+
+yum
+EOM
+        my ($id, $prev);
+        is($ibx->over->next_by_mid('ham@example', \$id, \$prev), undef,
+                'no ham@example, yet');
+        ok(run_script([qw(-learn ham)], undef, $rdr), '-learn runs on basic')
+                or diag $err;
+        my $smsg = $ibx->over->next_by_mid('ham@example', \$id, \$prev);
+        ok($smsg, 'ham message learned w/ indexlevel=basic');
+        @shards = grep(m!/[0-9]+\z!, glob("$ibx->{inboxdir}/xap*/*"));
+        is_deeply(\@shards, [], 'not converted to medium/full after learn');
 }
 
 done_testing();