my @found = ();
$srch->each_smsg_by_mid($smsg->mid, sub { push @found, @_; 1 });
is(scalar(@found), 0, 'no longer found in Xapian skeleton');
+ my @log1 = qw(log -1 --pretty=raw --raw -r --no-abbrev --no-renames);
- my $after = $git0->qx(qw(log -1 --pretty=raw --raw -r --no-abbrev));
- if ($after =~ m!( [a-f0-9]+ )A\t_/D$!) {
+ my $after = $git0->qx(@log1);
+ if ($after =~ m!( [a-f0-9]+ )A\td$!m) {
my $oid = $1;
ok(index($before, $oid) > 0, 'no new blob introduced');
} else {
is($im->remove($mime, 'test removal'), undef,
'remove is idempotent');
$im->done;
- is($git0->qx(qw(log -1 --pretty=raw --raw -r --no-abbrev)),
+ is($git0->qx(@log1),
$after, 'no git history made with idempotent remove');
eval { $im->done };
ok(!$@, '->done is idempotent');
$im->done;
}
+{
+ my @warn;
+ my $x = 'x'x250;
+ my $y = 'y'x250;
+ local $SIG{__WARN__} = sub { push @warn, @_ };
+ $mime->header_set('Subject', 'long mid');
+ $mime->header_set('Message-ID', "<$x>");
+ ok($im->add($mime), 'add excessively long Message-ID');
+
+ $mime->header_set('Message-ID', "<$y>");
+ $mime->header_set('References', "<$x>");
+ ok($im->add($mime), 'add excessively long References');
+ $im->barrier;
+
+ my $msgs = $ibx->search->reopen->get_thread('x'x244)->{msgs};
+ is(2, scalar(@$msgs), 'got both messages');
+ is($msgs->[0]->{mid}, 'x'x244, 'stored truncated mid');
+ is($msgs->[1]->{references}, '<'.('x'x244).'>', 'stored truncated ref');
+ is($msgs->[1]->{mid}, 'y'x244, 'stored truncated mid(2)');
+ $im->done;
+}
+
done_testing();