Cluster-Init
view release on metacpan or search on metacpan
t/40respawn.t view on Meta::CPAN
#!/usr/bin/perl -w
# vim:set syntax=perl:
use strict;
use Test;
require "t/utils.pl";
# BEGIN { plan tests => 14, todo => [3,4] }
BEGIN { plan tests => 11 }
use Cluster::Init;
my %parms = (
'clstat' => 't/clstat',
'cltab' => 't/cltab',
'socket' => 't/clinit.s'
);
unless (fork())
{
my $init = daemon Cluster::Init (%parms);
exit;
}
sleep 1;
my $init = client Cluster::Init (%parms);
`cat /dev/null > t/out`;
ok(lines(),0);
$init->tell("pidgrp",1);
sleep 1;
ok(lines(),1);
my $pid=lastline();
# warn "$pid";
sleep 1;
ok(kill(9,$pid),1);
sleep 5;
ok(lines(),1);
my $newpid=lastline();
# warn "$pid, $newpid";
ok(sub{return 1 if $pid != $newpid},1);
$init->tell("pidgrp",99);
ok(waitstat($init,"pidgrp",99,"DONE"));
`cat /dev/null > t/out`;
ok(lines(),0);
warn "\nyou should see a 'respawning too rapidly' message on the next line:\n";
$init->tell("hellogrp",2);
sleep 1 while(lines() < 5);
my $lines=lines();
ok($lines>=5);
ok($lines<=10);
sleep 5;
ok(lines()==$lines);
$init->shutdown();
ok(1);
( run in 2.236 seconds using v1.01-cache-2.11-cpan-97f6503c9c8 )