public-inbox.git  about / heads / tags
an "archives first" approach to mailing lists
blob d43e833b45c6956076e65bedd3112e9bd2614a42 1343 bytes (raw)
$ git show HEAD:t/v2index-late-dupe.t	# shows this blob on the CLI

 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;

git clone https://public-inbox.org/public-inbox.git
git clone http://7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd.onion/public-inbox.git