about summary refs log tree commit homepage
path: root/xt/lei-sigpipe.t
diff options
context:
space:
mode:
Diffstat (limited to 'xt/lei-sigpipe.t')
-rw-r--r--xt/lei-sigpipe.t27
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;