X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fv2writable.t;h=4a42c016538bebc6d1efe5184cfbdd611dbe004c;hb=fad9acd35e56a289ade90a62d056b2a6663d448c;hp=7e29ef7660de98376346f1b25c1615351098733e;hpb=1cb230c4d47c8ef5d03f0b8de2f8ad93c303d816;p=public-inbox.git diff --git a/t/v2writable.t b/t/v2writable.t index 7e29ef76..4a42c016 100644 --- a/t/v2writable.t +++ b/t/v2writable.t @@ -105,16 +105,16 @@ if ('ensure git configs are correct') { { $mime->header_set('Message-Id', '', ''); + $mime->header_set('References', ''); ok($im->add($mime), 'message with multiple Message-ID'); $im->done; - my @found; my $srch = $ibx->search; - $srch->reopen->each_smsg_by_mid('abcde@1', sub { push @found, @_; 1 }); - is(scalar(@found), 1, 'message found by first MID'); - $srch->reopen->each_smsg_by_mid('abcde@2', sub { push @found, @_; 1 }); - is(scalar(@found), 2, 'message found by second MID'); - is($found[0]->{doc_id}, $found[1]->{doc_id}, 'same document'); - ok($found[1]->{doc_id} > 0, 'doc_id is positive'); + my $mset1 = $srch->reopen->query('m:abcde@1', { mset => 1 }); + is($mset1->size, 1, 'message found by first MID'); + my $mset2 = $srch->reopen->query('m:abcde@2', { mset => 1 }); + is($mset2->size, 1, 'message found by second MID'); + is((($mset1->items)[0])->get_docid, (($mset2->items)[0])->get_docid, + 'same document'); } SKIP: { @@ -189,6 +189,22 @@ EOF is($nn{$mid}++, 0, "MID is unique in NEWNEWS"); } is_deeply([sort keys %nn], [sort keys %uniq]); + + my %lg; + foreach my $num (@{$n->listgroup($group)}) { + is($lg{$num}++, 0, "num is unique in LISTGROUP"); + } + is_deeply([sort keys %lg], [sort keys %$x], + 'XOVER and LISTGROUPS return the same article numbers'); + + my $xref = $n->xhdr('Xref', '1-'); + is_deeply([sort keys %lg], [sort keys %$xref], 'Xref range OK'); + + my $mids = $n->xhdr('Message-ID', '1-'); + is_deeply([sort keys %lg], [sort keys %$xref], 'Message-ID range OK'); + + my $rover = $n->xrover('1-'); + is_deeply([sort keys %lg], [sort keys %$rover], 'XROVER range OK'); }; { local $ENV{NPROC} = 2; @@ -201,16 +217,17 @@ EOF $im->done; my $tip = shift @after; like($tip, qr/\A[a-f0-9]+ test removal\n\z/s, - 'commit message propaged to git'); + 'commit message propagated to git'); is_deeply(\@after, \@before, 'only one commit written to git'); is($ibx->mm->num_for($smsg->mid), undef, 'no longer in Msgmap by mid'); like($smsg->num, qr/\A\d+\z/, 'numeric number in return message'); is($ibx->mm->mid_for($smsg->num), undef, 'no longer in Msgmap by num'); my $srch = $ibx->search->reopen; - my @found = (); - $srch->each_smsg_by_mid($smsg->mid, sub { push @found, @_; 1 }); - is(scalar(@found), 0, 'no longer found in Xapian skeleton'); + my $mset = $srch->query('m:'.$smsg->mid, { mset => 1}); + is($mset->size, 0, 'no longer found in Xapian'); my @log1 = qw(log -1 --pretty=raw --raw -r --no-abbrev --no-renames); + is($srch->{over_ro}->get_art($smsg->num), undef, + 'removal propagated to Over DB'); my $after = $git0->qx(@log1); if ($after =~ m!( [a-f0-9]+ )A\td$!m) { @@ -231,7 +248,8 @@ EOF { ok($im->add($mime), 'add message to be purged'); local $SIG{__WARN__} = sub {}; - ok($im->purge($mime), 'purged message'); + ok(my $cmts = $im->purge($mime), 'purged message'); + like($cmts->[0], qr/\A[a-f0-9]{40}\z/, 'purge returned current commit'); $im->done; } @@ -249,7 +267,7 @@ EOF ok($im->add($mime), 'add excessively long References'); $im->barrier; - my $msgs = $ibx->search->reopen->get_thread('x'x244)->{msgs}; + my $msgs = $ibx->search->reopen->get_thread('x'x244); 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');