Condition Coverage

blib/lib/Mail/SpamAssassin/PerMsgStatus.pm
Criterion Covered Total %
condition 85 217 39.1


and 3 conditions

line !l l&&!r l&&r condition
277 93 0 49 defined $opts and $opts->{'disable_auto_learning'}
330 96 0 0 &Mail::SpamAssassin::PerMsgStatus::time() > $master_deadline and not $self->{'deadline_exceeded'}
370 0 19 78 ($set & 2) == 0 and $self->{'main'}{'bayes_scanner'}
19 78 0 ($set & 2) == 0 and $self->{'main'}{'bayes_scanner'} and $self->{'main'}{'bayes_scanner'}->is_scan_available
97 0 0 ($set & 2) == 0 and $self->{'main'}{'bayes_scanner'} and $self->{'main'}{'bayes_scanner'}->is_scan_available and $self->{'conf'}{'use_bayes_rules'}
431 96 0 0 &Mail::SpamAssassin::PerMsgStatus::time() > $master_deadline and not $self->{'deadline_exceeded'}
441 79 4 13 $self->{'conf'}{'bayes_auto_learn'} && $self->{'conf'}{'use_bayes'}
459 10 2 0 defined $force_autolearn and $force_autolearn > 0
891 0 0 16 length $str < 200 and @{$ary;}
0 4 12 length $str < 200 and @{$ary;} and $numlines-- > 0
976 32 0 2 $self->{'is_spam'} and $self->{'conf'}{'report_safe'}
1127 0 0 2 defined $ct and $ct ne ''
0 0 2 defined $ct and $ct ne '' and not $ct =~ m[text/plain]i
1194 0 0 32 @pristine_headers and $pristine_headers[$#pristine_headers] =~ /^\s*$/
1206 0 0 0 not defined $subject and $self->{'is_spam'}
0 0 0 not defined $subject and $self->{'is_spam'} and exists $self->{'conf'}{'rewrite_header'}{'Subject'}
1252 0 32 0 @pristine_headers and $pristine_headers[0] =~ /^Return-Path:/i
1254 0 0 0 @pristine_headers and $pristine_headers[0] =~ /^[ \t]/
1608 38 0 0 defined $pad and $pad =~ /^(0+| +)$/
1703 95 0 1 defined $addr and $addr =~ /\@([^\@. \t]+\.[^@ \t]+?)[ \t]*\z/s
1710 39 0 57 defined $addr and $addr =~ /\@([^\@. \t]+\.[^@ \t]+?)[ \t]*\z/s
1975 2934 434 0 defined $result and $getaddr || $getname
2259 65 0 174 defined $host and $host ne ''
65 63 111 defined $host and $host ne '' and not $info->{'hosts'}{$host}
2262 0 0 111 defined $domain and $domain ne ''
0 0 111 defined $domain and $domain ne '' and not $info->{'domains'}{$domain}
2274 0 0 0 $info->{'hosts'} and $info->{'domains'}
2300 6 0 1430 defined $host and $host ne ''
6 304 1126 defined $host and $host ne '' and not $info->{'hosts'}{$host}
2303 0 0 1126 defined $domain and $domain ne ''
0 0 1126 defined $domain and $domain ne '' and not $info->{'domains'}{$domain}
2316 0 0 0 $info->{'hosts'} and $info->{'domains'}
2490 220 0 0 $self->can($function) and defined &{'Mail::SpamAssassin::PerMsgStatus::' . $function;}
2690 170 0 0 defined $tflags_add and $tflags_add ne ''
2697 162 0 8 $already_hit and not +($tflags_ref->{$rule} || '') =~ /\bmultiple\b/
2730 162 0 0 $dups and @{$dups;}
2785 0 0 0 defined $envf and $envf =~ /\@/ || $envf eq ''
2815 33 0 0 $envf and $envf =~ /\@/
2903 0 0 0 defined $end_rcvd and $end_rcvd < 0
2914 0 0 0 defined $start_rcvd and not $include_start_rcvd
0 0 0 defined $start_rcvd and not $include_start_rcvd and $start_rcvd == $cur_rcvd_index
2916 0 0 0 defined $end_rcvd and not $include_end_rcvd
0 0 0 defined $end_rcvd and not $include_end_rcvd and $end_rcvd == $cur_rcvd_index
2919 0 0 0 !defined($start_rcvd) || $start_rcvd <= $cur_rcvd_index and !defined($end_rcvd) || $cur_rcvd_index < $end_rcvd
0 0 0 defined $end_rcvd and $cur_rcvd_index == $end_rcvd
3011 91 0 0 defined $resent and $resent =~ /\S/

or 2 conditions

line l !l condition
169 34 0 shift() || '*'
188 0 34 shift() || ','
194 0 0 shift() || ','
200 0 0 shift() || ','
203 0 0 $scores->{$_} || '0'
213 3 0 $pms->{'tag_data'}{'REPORT'} || ''
736 0 0 $scores->{$_} || '0'
754 0 0 join(',', map(($_ . '=' . ($scores->{$_} || '0')), sort(@{$self->{'test_names_hit'};}))) || 'none'
831 34 0 $self->{'auto_learn_status'} || 'unavailable'
860 4 0 $report ||= '(no report template found)'
974 2 32 $self->{'msg'}->get_mbox_separator || ''
2246 7 123 $self->{'msg'}{'metadata'}{'html'}{'uri_detail'} || {}
2569 5 81 $area ||= ''
2591 34 52 $self->{'test_log_msgs'}{'LONG'} || ''
2695 8 162 $self->{'tests_already_hit'}{$rule} || 0
2697 8 0 $tflags_ref->{$rule} || ''
2705 128 34 $params{'ruletype'} ||= 'unknown'

or 3 conditions

line l !l&&r !l&&!r condition
249 0 142 0 ref $class || $class
289 0 0 142 $dbgcache or $self->{'save_pattern_hits'}
441 83 1 12 not $self->{'conf'}{'bayes_auto_learn'} && $self->{'conf'}{'use_bayes'} or $self->{'disable_auto_learning'}
1037 0 2 0 $] < 5.008 or utf8::downgrade($report, 1)
1374 0 0 0 !defined($self->{'tag_data'}{$_}) || $self->{'tag_data'}{$_} eq ''
1975 132 0 302 $getaddr || $getname
2361 39 314 0 $1 || $2 || $3
2571 1 0 85 $score >= 10 or $score <= -10
2686 164 0 6 not $value or $value <= 0
2692 0 0 0 !defined($_) || $_ eq ''
2720 110 0 52 not defined $rule_descr or $rule_descr eq ''
2785 0 0 0 $envf =~ /\@/ || $envf eq ''
2919 0 0 0 !defined($start_rcvd) || $start_rcvd <= $cur_rcvd_index
0 0 0 !defined($end_rcvd) || $cur_rcvd_index < $end_rcvd
3067 0 0 0 not defined $domain or $addrs_seen{lc $domain}++