Branch Coverage

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


line true false branch
96 2027 3 $opts ? :
99 2005 25 if (defined $subroutine)
154 0 2030 if (defined $secs and $secs < 0)
159 2013 17 if (defined $deadline)
161 2011 2 if not defined $secs or $dt < $secs
170 2026 4 if (defined $secs)
174 113 1913 if (not @expiration) { }
0 1913 elsif (not defined $expiration[0]) { }
186 2 1911 $oldalarm2 < 1 ? :
197 4 2026 if (not defined $secs) { }
0 2026 elsif ($secs <= 0) { }
1 2025 elsif ($oldalarm and $oldalarm < $secs) { }
215 2011 14 if $secs > int $isecs
232 2012 2 if $alarm_tinkered_with
235 16 2014 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 16 0 $@ ne '' ? :
238 14 2 if $alarm_tinkered_with
249 1 2029 $and_catch ? :
251 12 2018 if (defined $eval_stat and $eval_stat =~ /__alarm__ignore__\Q($id)\E/) { }
0 2018 elsif ($timedout) { }
263 13 2017 if $self->{'timed_out'}
267 1913 117 if ($oldalarm)
269 1910 3 if ($remaining_time > 0)
273 1910 0 if $remaining_time > int $remaining_time
279 3 2026 if (not $and_catch and defined $eval_stat and not $eval_stat =~ /__alarm__ignore__\Q($id)\E/)
284 2 2025 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