App-MultiModule-Tasks-Heartbeat

 view release on metacpan or  search on metacpan

t/basic.t  view on Meta::CPAN

    };
    alarm 0;
    ok($message, 'properly received first message');
    is($message->{hb_instance}, 'servers.whatever.check_runner', 'hb_instance is correctly "servers.whatever.check_runner"');
    is($message->{foo}, 'bar', 'foo is correctly set to "bar"');
    ok($message->{hearbeat_last_change_ts_span}, 'correctly received non-zero "hearbeat_last_change_ts_span"');
    ok(($message->{hearbeat_last_change_ts_span} and ($message->{hearbeat_last_change_ts_span} > 1)), '"hearbeat_last_change_ts_span" is correctly greater than 1');
    ok(($message->{hearbeat_last_change_ts_span} and ($message->{hearbeat_last_change_ts_span} < 10)), '"hearbeat_last_change_ts_span" is correctly less than 10');
}

#send the same thing, which should not reset the timer
IPC::Transit::send(qname => 'Heartbeat', message => {
    inform_instance => 'servers.whatever.check_runner',
    status => 'OK',
    stdout => 'returned OK',
    is_std_heartbeat_check => 1,
});

{   #these messages should not have a reset timer
    my $message;
    eval {
        local $SIG{ALRM} = sub { die "timed out\n"; };
        alarm 5;
        while($message = IPC::Transit::receive(qname => 'test_out')) {
            #yup
        }
    };
    alarm 0;
    ok($message, 'properly received first message');
    is($message->{hb_instance}, 'servers.whatever.check_runner', 'hb_instance is correctly "servers.whatever.check_runner"');
    is($message->{foo}, 'bar', 'foo is correctly set to "bar"');
    ok($message->{hearbeat_last_change_ts_span}, 'correctly received non-zero "hearbeat_last_change_ts_span"');
    ok(($message->{hearbeat_last_change_ts_span} and ($message->{hearbeat_last_change_ts_span} > 6)), '"hearbeat_last_change_ts_span" is correctly greater than 6');
    ok(($message->{hearbeat_last_change_ts_span} and ($message->{hearbeat_last_change_ts_span} < 20)), '"hearbeat_last_change_ts_span" is correctly less than 20');
}
#send the different thing, which should reset the timer
IPC::Transit::send(qname => 'Heartbeat', message => {
    inform_instance => 'servers.whatever.check_runner',
    status => 'CRIT',
    stdout => 'returned CRIT',
    is_std_heartbeat_check => 1,
});

{   #these messages should have a reset timer
    my $message;
    eval {
        local $SIG{ALRM} = sub { die "timed out\n"; };
        alarm 5;
        while($message = IPC::Transit::receive(qname => 'test_out')) {
            #yup
        }
    };
    alarm 0;
    ok($message, 'properly received first message');



( run in 0.951 second using v1.01-cache-2.11-cpan-49f99fa48dc )