Branch Coverage

blib/lib/Mail/SpamAssassin/Timeout.pm
Criterion Covered Total %
branch 50 58 86.2


line true false branch
96 2022 3 $opts ? :
99 2000 25 if (defined $subroutine)
154 0 2025 if (defined $secs and $secs < 0)
159 2008 17 if (defined $deadline)
161 1994 14 if not defined $secs or $dt < $secs
170 2021 4 if (defined $secs)
174 113 1908 if (not @expiration) { }
0 1908 elsif (not defined $expiration[0]) { }
186 3 1905 $oldalarm2 < 1 ? :
197 4 2021 if (not defined $secs) { }
0 2021 elsif ($secs <= 0) { }
1 2020 elsif ($oldalarm and $oldalarm < $secs) { }
215 1994 26 if $secs > int $isecs
232 2003 2 if $alarm_tinkered_with
235 20 2005 unless (eval { do { local $SIG{'__DIE__'}; if (not defined $secs) { $ret = &$sub; } elsif ($secs <= 0) { $self->{'timed_out'} = 1; &$handler; } elsif ($oldalarm and $oldalarm < $secs) { $expiration[0] = $start_time + $oldalarm; alarm $oldalarm; $alarm_tinkered_with = 1; $ret = &$sub; } else { local $SIG{'ALRM'} = $handler; my $isecs = int $secs; ++$isecs if $secs > int $isecs; $expiration[0] = $start_time + $isecs; alarm $isecs; $alarm_tinkered_with = 1; $ret = &$sub; } ; alarm 0 if $alarm_tinkered_with; 1 } })
236 20 0 $@ ne '' ? :
238 18 2 if $alarm_tinkered_with
249 13 2012 $and_catch ? :
251 12 2013 if (defined $eval_stat and $eval_stat =~ /__alarm__ignore__\Q($id)\E/) { }
0 2013 elsif ($timedout) { }
263 13 2012 if $self->{'timed_out'}
267 1908 117 if ($oldalarm)
269 1905 3 if ($remaining_time > 0)
273 1905 0 if $remaining_time > int $remaining_time
279 3 2009 if (not $and_catch and defined $eval_stat and not $eval_stat =~ /__alarm__ignore__\Q($id)\E/)
284 2 2020 if (defined $remaining_time)
323 0 3 unless defined $self->{'end_time'}
326 2 1 if ($secs > 0) { }
328 2 0 if $secs > int $isecs