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