#!perl -w # Copyright (C) 2021 all contributors # License: AGPL-3.0+ use strict; use v5.10.1; use Test::More; use PublicInbox::TestCommon; use POSIX qw(_exit); require_mods(qw(Search::Xapian DBD::SQLite)); require_ok 'PublicInbox::LeiOverview'; my $ovv = bless {}, 'PublicInbox::LeiOverview'; $ovv->ovv_out_lk_init; my $lock_path = $ovv->{lock_path}; ok(-f $lock_path, 'lock init'); undef $ovv; ok(!-f $lock_path, 'lock DESTROY'); $ovv = bless {}, 'PublicInbox::LeiOverview'; $ovv->ovv_out_lk_init; $lock_path = $ovv->{lock_path}; ok(-f $lock_path, 'lock init #2'); my $pid = fork // BAIL_OUT "fork $!"; if ($pid == 0) { undef $ovv; _exit(0); } is(waitpid($pid, 0), $pid, 'child exited'); is($?, 0, 'no error in child process'); ok(-f $lock_path, 'lock was not destroyed by child'); undef $ovv; ok(!-f $lock_path, 'lock DESTROY #2'); done_testing;