From 9015a8af2909b0071e54b332bfafc4e5b8d0f6c2 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 29 Jul 2018 09:34:41 +0000 Subject: mda: v2: ensure message bodies are indexed We must not clobber the original message string, as Email::MIME(*) still needs it for iterating through parts in SearchIdx (but not when handing it as a raw string to git-fast-import). I've noticed message bodies (especially dfpre/dpost) were not getting indexed when going through -mda (no problems with -watch). This also did not affect v1 repos, since indexing is a separate process for v1 and requires re-reading the data from git. (*) tested Email::MIME 1.937 on Debian stretch --- t/watch_maildir_v2.t | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 't/watch_maildir_v2.t') diff --git a/t/watch_maildir_v2.t b/t/watch_maildir_v2.t index a76e413f..fc002dc1 100644 --- a/t/watch_maildir_v2.t +++ b/t/watch_maildir_v2.t @@ -120,6 +120,21 @@ More majordomo info at http://vger.kernel.org/majordomo-info.html\n); is($nr, 1, 'inbox has one mail after spamc OK-ed a message'); my $mref = $ibx->msg_by_smsg($msgs->[0]); like($$mref, qr/something\n\z/s, 'message scrubbed on import'); + delete $config->{'publicinboxwatch.spamcheck'}; +} + +{ + my $patch = 't/data/0001.patch'; + open my $fh, '<', $patch or die "failed to open $patch: $!\n"; + $msg = eval { local $/; <$fh> }; + PublicInbox::Emergency->new($maildir)->prepare(\$msg); + PublicInbox::WatchMaildir->new($config)->scan('full'); + ($nr, $msgs) = $srch->reopen->query('dfpost:6e006fd7'); + is($nr, 1, 'diff postimage found'); + my $post = $msgs->[0]; + ($nr, $msgs) = $srch->query('dfpre:090d998b6c2c'); + is($nr, 1, 'diff preimage found'); + is($post->{blob}, $msgs->[0]->{blob}, 'same message'); } done_testing; -- cgit v1.2.3-24-ge0c7