lib/PublicInbox/LeiSavedSearch.pm | 1 + t/lei-q-save.t | 13 +++++++++++++ diff --git a/lib/PublicInbox/LeiSavedSearch.pm b/lib/PublicInbox/LeiSavedSearch.pm index 948e4954343a59690fd2e28a8a00220869bf0bb2..cd9effce43ac7cc9dc52034a6315031e48c4cf0e 100644 --- a/lib/PublicInbox/LeiSavedSearch.pm +++ b/lib/PublicInbox/LeiSavedSearch.pm @@ -182,6 +182,7 @@ sub pause_dedupe { my ($self) = @_; $self->{ale}->git->cleanup; + my $lockfh = delete $self->{lockfh}; # from lock_for_scope_fast; my $oidx = delete($self->{oidx}) // return; $oidx->commit_lazy; } diff --git a/t/lei-q-save.t b/t/lei-q-save.t index 5bc8fb7440e3565f16ded8e954504c2c372d7316..c0c7458164101a84d5321aed6cc32bb4839735fd 100644 --- a/t/lei-q-save.t +++ b/t/lei-q-save.t @@ -84,6 +84,7 @@ 'mbcl2 output shown despite unlink'); lei_ok([qw(up mbcl2)], undef, { -C => $home, %$lei_opt }); ok(-f "$home/mbcl2" && -s _ == 0, 'up recreates on missing output'); + # no --augment open my $mb, '>', "$home/mbrd" or xbail "open $!"; print $mb $pre_existing; close $mb or xbail "close: $!"; @@ -92,8 +93,20 @@ chdir($dh) or xbail "fchdir . $!"; open $mb, '<', "$home/mbrd" or xbail "open $!"; is_deeply([grep(/pre-existing/, <$mb>)], [], 'pre-existing messsage gone w/o augment'); + close $mb; lei_ok(qw(q m:import-before@example.com)); is(json_utf8->decode($lei_out)->[0]->{'s'}, 'pre-existing', '--save imported before clobbering'); + + # --augment + open $mb, '>', "$home/mbrd-aug" or xbail "open $!"; + print $mb $pre_existing; + close $mb or xbail "close: $!"; + lei_ok(qw(q -a --save -o mboxrd:mbrd-aug m:qp@example.com -C), $home); + chdir($dh) or xbail "fchdir . $!"; + open $mb, '<', "$home/mbrd-aug" or xbail "open $!"; + $mb = do { local $/; <$mb> }; + like($mb, qr/pre-existing/, 'pre-existing message preserved w/ -a'); + like($mb, qr//, 'new result written w/ -a'); }); done_testing;