-#!/usr/bin/perl
-
use strict;
use warnings;
-use Test::More 'no_plan';
-use Test::Exception;
+use Test::More;
+use Test::Fatal;
use Test::Moose;
use File::Temp qw(tempdir);
use File::Spec::Functions;
isa_ok($d, 'MyFooDaemon');
does_ok($d, 'MooseX::Daemonize::Core');
-lives_ok {
- $d->start;
-} '... successfully daemonized from (' . $$ . ')';
+is(
+ exception { $d->start },
+ undef,
+ '... successfully daemonized from (' . $$ . ')',
+);
my $p = $d->daemon_pid;
isa_ok($p, 'MooseX::Daemonize::Pid');
}
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 "-------";
unlink $ENV{MX_DAEMON_STDOUT};
unlink $ENV{MX_DAEMON_STDERR};
+done_testing;