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 )