whitespace fixes
[gitmo/MooseX-Daemonize.git] / t / 30.with_pid_file.t
index 845f9de..deb0917 100644 (file)
@@ -3,7 +3,7 @@ use warnings;
 
 use File::Spec::Functions;
 
-use Test::More 'no_plan';
+use Test::More;
 use Test::Fatal;
 use Test::Moose;
 use File::Temp qw(tempdir);
@@ -12,7 +12,7 @@ my $dir = tempdir( CLEANUP => 1 );
 
 
 BEGIN {
-    use_ok('MooseX::Daemonize::Core');  
+    use_ok('MooseX::Daemonize::Core');
 }
 
 use constant DEBUG => 0;
@@ -24,33 +24,33 @@ $ENV{MX_DAEMON_STDERR} = catfile($dir, 'Err.txt');
 {
     package MyFooDaemon;
     use Moose;
-    
+
     with 'MooseX::Daemonize::WithPidFile';
-         
+
     sub init_pidfile {
         MooseX::Daemonize::Pid::File->new( file => $PIDFILE )
     }
-    
+
     sub start {
         my $self = shift;
-        
-        # this tests our bad PID 
+
+        # this tests our bad PID
         # cleanup functionality.
         print "Our parent PID is " . $self->pidfile->pid . "\n" if ::DEBUG;
-        
+
         $self->daemonize;
         return unless $self->is_daemon;
-        
+
         # make it easy to find with ps
         $0 = 'test-app-2';
-        $SIG{INT} = sub { 
-            print "Got INT! Oh Noes!"; 
+        $SIG{INT} = sub {
+            print "Got INT! Oh Noes!";
             $self->pidfile->remove;
             exit;
-        };      
+        };
         while (1) {
-            print "Hello from $$\n"; 
-            sleep(10);       
+            print "Hello from $$\n";
+            sleep(10);
         }
         exit;
     }
@@ -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;
+