-#!/usr/bin/perl
-
use strict;
use warnings;
-use Cwd;
use File::Spec::Functions;
use Test::More tests => 29;
use Test::Moose;
+use File::Temp qw(tempdir);
+
+my $dir = tempdir( CLEANUP => 1 );
+
BEGIN {
use_ok('MooseX::Daemonize');
}
use constant DEBUG => 0;
-my $CWD = Cwd::cwd;
-my $FILENAME = "$CWD/im_alive";
-$ENV{MX_DAEMON_STDOUT} = catfile($CWD, 'Out.txt');
-$ENV{MX_DAEMON_STDERR} = catfile($CWD, 'Err.txt');
+my $FILENAME = catfile($dir, "im_alive");
+$ENV{MX_DAEMON_STDOUT} = catfile($dir, 'Out.txt');
+$ENV{MX_DAEMON_STDERR} = catfile($dir, 'Err.txt');
{
with qw(MooseX::Daemonize);
has filename => ( isa => 'Str', is => 'ro' );
-
- after start => sub {
+
+ after start => sub {
my $self = shift;
if ($self->is_daemon) {
$self->create_file( $self->filename );
my ( $self, $file ) = @_;
open( my $FILE, ">$file" ) || die $!;
close($FILE);
+ sleep 1 while 1;
}
}
my $app = FileMaker->new(
- pidbase => $CWD,
+ pidbase => "$dir/subdir",
filename => $FILENAME,
);
isa_ok($app, 'FileMaker');
isa_ok($app->pidfile, 'MooseX::Daemonize::Pid::File');
-is($app->pidfile->file, "$CWD/filemaker.pid", '... got the right PID file path');
+is($app->pidfile->file, catfile("$dir/subdir", "filemaker.pid"), '... got the right PID file path');
ok(not(-e $app->pidfile->file), '... our pidfile does not exist');
ok(!$app->status, '... the daemon is running');
if (DEBUG) {
diag `ps $pid`;
- diag "Status is: " . $app->status_message;
+ diag "Status is: " . $app->status_message;
}
ok( -e $app->filename, "file exists" );
if (DEBUG) {
diag `ps $pid`;
- diag "Status is: " . $app->status_message;
+ diag "Status is: " . $app->status_message;
}
ok( $app->stop, '... app stopped' );
if (DEBUG) {
diag `ps $pid`;
- diag "Status is: " . $app->status_message;
+ diag "Status is: " . $app->status_message;
}
ok( not(-e $app->pidfile->file) , '... pidfile gone' );