diff options
author | Eric Wong <e@80x24.org> | 2021-02-02 11:46:55 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-02-03 07:32:39 +0000 |
commit | 37e2fd40b9d3c37b202a693f6929411bd1064eae (patch) | |
tree | e0b4c24c9a70d3057c0bd1958495c114a34d812f /xt | |
parent | 82ec2366a5ba031267604925a70f4f3a29372d61 (diff) | |
download | public-inbox-37e2fd40b9d3c37b202a693f6929411bd1064eae.tar.gz |
Avoid on-stack shortcuts which may prevent destructors from firing since we're not inside the event loop. We'll also tidy up the unlink mechanism in LeiOverview while we're at it.
Diffstat (limited to 'xt')
-rw-r--r-- | xt/lei-sigpipe.t | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/xt/lei-sigpipe.t b/xt/lei-sigpipe.t index 1aa9ed07..ba2d23c8 100644 --- a/xt/lei-sigpipe.t +++ b/xt/lei-sigpipe.t @@ -29,7 +29,30 @@ my $do_test = sub { } }; -$do_test->(); -$do_test->({XDG_RUNTIME_DIR => '/dev/null'}); +my ($tmp, $for_destroy) = tmpdir(); +my $pid; +my $opt = { run_mode => 0, 1 => \(my $out = '') }; +if (run_script([qw(lei daemon-pid)], undef, $opt)) { + chomp($pid = $out); + mkdir "$tmp/d" or BAIL_OUT $!; + local $ENV{TMPDIR} = "$tmp/d"; + $do_test->(); + $out = ''; + ok(run_script([qw(lei daemon-pid)], undef, $opt), 'daemon-pid again'); + chomp($out); + is($out, $pid, 'daemon-pid unchanged'); + ok(kill(0, $pid), 'daemon still running'); + $out = ''; +} +{ + mkdir "$tmp/1" or BAIL_OUT $!; + local $ENV{TMPDIR} = "$tmp/1"; + $do_test->({XDG_RUNTIME_DIR => '/dev/null'}); + is(unlink(glob("$tmp/1/*")), 0, 'nothing left over w/ oneshot'); +} + +# the one-shot test should be slow enough that the daemon has cleaned +# up in the background: +is_deeply([glob("$tmp/d/*")], [], 'nothing left over with daemon'); done_testing; |