]> Sergey Matveev's repositories - public-inbox.git/blob - t/v2index-late-dupe.t
git_async_cat: use awaitpid
[public-inbox.git] / t / v2index-late-dupe.t
1 # Copyright (C) all contributors <meta@public-inbox.org>
2 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
3 #
4 # this simulates a mirror path: git fetch && -index
5 use strict; use v5.10.1; use PublicInbox::TestCommon;
6 use Test::More; # redundant, used for bisect
7 require_mods 'v2';
8 require PublicInbox::Import;
9 require PublicInbox::Inbox;
10 require PublicInbox::Git;
11 my ($tmpdir, $for_destroy) = tmpdir();
12 my $inboxdir = "$tmpdir/i";
13 local $ENV{HOME} = $tmpdir;
14 PublicInbox::Import::init_bare(my $e0 = "$inboxdir/git/0.git");
15 open my $fh, '>', "$inboxdir/inbox.lock" or xbail $!;
16 my $git = PublicInbox::Git->new($e0);
17 my $im = PublicInbox::Import->new($git, qw(i i@example.com));
18 $im->{lock_path} = undef;
19 $im->{path_type} = 'v2';
20 my $eml = eml_load('t/plack-qp.eml');
21 ok($im->add($eml), 'add original');
22 $im->done;
23 run_script([qw(-index -Lbasic), $inboxdir]);
24 is($?, 0, 'basic index');
25 my $ibx = PublicInbox::Inbox->new({ inboxdir => $inboxdir });
26 my $orig = $ibx->over->get_art(1);
27
28 my @mid = $eml->header_raw('Message-ID');
29 $eml->header_set('Message-ID', @mid, '<extra@z>');
30 ok($im->add($eml), 'add another');
31 $im->done;
32 run_script([qw(-index -Lbasic), $inboxdir]);
33 is($?, 0, 'basic index again');
34
35 my $after = $ibx->over->get_art(1);
36 is_deeply($after, $orig, 'original unchanged') or note explain([$orig,$after]);
37
38 done_testing;