App-Daemon
view release on metacpan or search on metacpan
t/003CmdLine.t view on Meta::CPAN
use Test::More;
use App::Daemon;
use Log::Log4perl qw(:easy);
# Log::Log4perl->easy_init($DEBUG);
plan tests => 6;
my $tempdir = tempdir( CLEANUP => 1 );
my ( $stdout, $stderr, $rc );
my @cmdline = ( $^X, "-I$Bin/../blib/lib", "$Bin/../eg/test-daemon",
"-l", "$tempdir/log", "-p", "$tempdir/pid" );
# start sleep daemon
( $stdout, $stderr, $rc ) = tap @cmdline, "start";
is $rc, 0, "app start";
# start once again
( $stdout, $stderr, $rc ) = tap @cmdline, "start";
is $rc>>8, App::Daemon::ALREADY_RUNNING, "app start again";
# check status
( $stdout, $stderr, $rc ) = tap @cmdline, "status";
is $rc>>8, App::Daemon::LSB_OK, "status started";
# stop daemon
( $stdout, $stderr, $rc ) = tap @cmdline, "stop";
is $rc, 0, "app stop";
# stop daemon again
( $stdout, $stderr, $rc ) = tap @cmdline, "stop";
is $rc>>8, App::Daemon::LSB_NOT_RUNNING, "app stop again";
# check status
( $stdout, $stderr, $rc ) = tap @cmdline, "status";
is $rc>>8, App::Daemon::LSB_NOT_RUNNING, "status stopped";
t/004Pidfile.t view on Meta::CPAN
use FindBin qw( $Bin );
use App::Daemon qw(daemonize cmd_line_parse);
use Fcntl qw/:flock/;
use Log::Log4perl qw(:easy);
Log::Log4perl->easy_init({ level => $DEBUG, layout => "%F-%L> %m%n" });
my $tempdir = tempdir( CLEANUP => 1 );
my ( $stdout, $stderr, $rc );
my $pidfile = "$tempdir/pid";
my $logfile = "$tempdir/log";
my @cmdline = ( $^X, "-I$Bin/../blib/lib", "$Bin/../eg/test-fork-daemon",
"-l", $logfile, "-p", $pidfile, "-v" );
( $stdout, $stderr, $rc ) = tap @cmdline, "start";
is $rc, 0, "app start";
# wait until process is up
while( 1 ) {
DEBUG "Checking for logfile";
if( -f $logfile ) {
ok 1, "daemon started";
last;
}
sleep 1;
t/004Pidfile.t view on Meta::CPAN
DEBUG "Checking logfile for 'waitpid done': [$data]";
if( $data =~ /parent waitpid done/ ) {
ok 1, "parent waitpid done";
last;
}
sleep 1;
}
ok -f $pidfile, "pidfile still exists after child exit";
( $stdout, $stderr, $rc ) = tap @cmdline, "stop";
is $rc, 0, "app stop";
# print slurp( $logfile );
t/005Detach.t view on Meta::CPAN
use Test::More;
use App::Daemon;
use Log::Log4perl qw(:easy);
# Log::Log4perl->easy_init($DEBUG);
plan tests => 2;
my( $fh, $tmpfile ) = tempfile( UNLINK => 1 );
my ( $stdout, $stderr, $rc );
my @cmdline = ( $^X, "-I$Bin/../blib/lib", "$Bin/../eg/test-detach",
$tmpfile);
( $stdout, $stderr, $rc ) = tap @cmdline;
is $rc, 0, "detached process started";
for( 1 .. 10 ) {
my $data = slurp $tmpfile;
if( $data =~ /Done/ ) {
ok 1, "detached process finished";
last;
}
sleep 1;
}
( run in 0.560 second using v1.01-cache-2.11-cpan-49f99fa48dc )