X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F30.with_pid_file.t;h=e7e439cdf705b4fb580a23caf2ad718dec56643d;hb=e803cff500bb7c9926ef94e9ef5a973d8fd103b6;hp=30bf17667ed5174a1368dc2f06164709a9c6c9c9;hpb=8ac4733fe6918fb1449262f56b5c371315c6cfb8;p=gitmo%2FMooseX-Daemonize.git diff --git a/t/30.with_pid_file.t b/t/30.with_pid_file.t index 30bf176..e7e439c 100644 --- a/t/30.with_pid_file.t +++ b/t/30.with_pid_file.t @@ -3,28 +3,31 @@ use strict; use warnings; -use Cwd; use File::Spec::Functions; -use Test::More no_plan => 1; +use Test::More 'no_plan'; use Test::Exception; use Test::Moose; +use File::Temp qw(tempdir); + +my $dir = tempdir( CLEANUP => 1 ); + BEGIN { use_ok('MooseX::Daemonize::Core'); } -my $CWD = Cwd::cwd; -my $PIDFILE = catfile($CWD, 'test-app.pid'); -$ENV{MX_DAEMON_STDOUT} = catfile($CWD, 'Out.txt'); -$ENV{MX_DAEMON_STDERR} = catfile($CWD, 'Err.txt'); +use constant DEBUG => 0; + +my $PIDFILE = catfile($dir, 'test-app.pid'); +$ENV{MX_DAEMON_STDOUT} = catfile($dir, 'Out.txt'); +$ENV{MX_DAEMON_STDERR} = catfile($dir, 'Err.txt'); { package MyFooDaemon; use Moose; - with 'MooseX::Daemonize::Core', - 'MooseX::Daemonize::WithPidFile'; + with 'MooseX::Daemonize::WithPidFile'; sub init_pidfile { MooseX::Daemonize::Pid::File->new( file => $PIDFILE ) @@ -33,13 +36,15 @@ $ENV{MX_DAEMON_STDERR} = catfile($CWD, 'Err.txt'); sub start { my $self = shift; + # 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; - $self->pidfile->write; - # make it easy to find with ps - $0 = 'test-app'; + $0 = 'test-app-2'; $SIG{INT} = sub { print "Got INT! Oh Noes!"; $self->pidfile->remove; @@ -82,18 +87,24 @@ ok($p->does_file_exist, '... the PID file exists'); ok($p->is_running, '... the daemon process is running (' . $p->pid . ')'); my $pid = $p->pid; -diag `ps $pid`; -diag "-------"; -diag `ps -x | grep test-app`; -diag "-------"; -diag "killing $pid"; +if (DEBUG) { + diag `ps $pid`; + diag "-------"; + diag `ps -x | grep test-app`; + diag "-------"; + diag "killing $pid"; +} kill INT => $p->pid; -diag "killed $pid"; +diag "killed $pid" if DEBUG; sleep(2); -diag `ps $pid`; -diag "-------"; -diag `ps -x | grep test-app`; +if (DEBUG) { + diag `ps $pid`; + diag "-------"; + diag `ps -x | grep test-app`; +} ok(!$p->is_running, '... the daemon process is no longer running (' . $p->pid . ')'); ok(!(-e $PIDFILE), '... the PID file has been removed'); +unlink $ENV{MX_DAEMON_STDOUT}; +unlink $ENV{MX_DAEMON_STDERR};