RT#85229 - wait longer for processes to die, when needed
[gitmo/MooseX-Daemonize.git] / t / 30.with_pid_file.t
index e7e439c..d44cb11 100644 (file)
@@ -1,12 +1,10 @@
-#!/usr/bin/perl
-
 use strict;
 use warnings;
 
 use File::Spec::Functions;
 
-use Test::More 'no_plan';
-use Test::Exception;
+use Test::More;
+use Test::Fatal;
 use Test::Moose;
 use File::Temp qw(tempdir);
 
@@ -73,9 +71,11 @@ ok($d->has_pidfile, '... we have a pidfile value');
 
 ok(!(-e $PIDFILE), '... the PID file does not exist yet');
 
-lives_ok {
-    $d->start;
-} '... successfully daemonized from (' . $$ . ')';
+is(
+    exception { $d->start },
+    undef,
+    '... successfully daemonized from (' . $$ . ')',
+);
 
 my $p = $d->pidfile;
 isa_ok($p, 'MooseX::Daemonize::Pid::File');
@@ -96,7 +96,15 @@ if (DEBUG) {
 }
 kill INT => $p->pid;
 diag "killed $pid" if DEBUG;
-sleep(2);
+
+# give the process time to be killed on slow/loaded systems
+for (1..10) {
+    last unless kill 0 => $pid;
+    # sleep a little before retrying
+    sleep(2);
+}
+
+
 if (DEBUG) {
     diag `ps $pid`;
     diag "-------";
@@ -108,3 +116,6 @@ ok(!(-e $PIDFILE), '... the PID file has been removed');
 
 unlink $ENV{MX_DAEMON_STDOUT};
 unlink $ENV{MX_DAEMON_STDERR};
+
+done_testing;
+