diff options
Diffstat (limited to 't/v2index-late-dupe.t')
-rw-r--r-- | t/v2index-late-dupe.t | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/t/v2index-late-dupe.t b/t/v2index-late-dupe.t new file mode 100644 index 00000000..d43e833b --- /dev/null +++ b/t/v2index-late-dupe.t @@ -0,0 +1,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; |