Branch Coverage

Parser.yp
Criterion Covered Total %
branch 84 92 91.3


line true false branch
31 0 13 if ref $class
37 1 1 if $_[1] eq 'v=spf1'
46 0 0 if defined $_[2]
48 63 4 defined $_[1] ? :
70 4 2 if $_[1] =~ /\A(redirect|exp)\Z/i
82 1 2 unless $_[1] =~ /\A(redirect|exp)\Z/i
91 2 1 if ($_[1] eq 'v')
94 0 2 if $_[3] eq 'spf1'
106 4 1 if $_[1] =~ /\A(redirect|exp)\Z/i
116 4 1 if $_[1] =~ /\A(redirect|exp)\Z/i
127 2 4 if $_[1] =~ /ip[46]/i
129 0 6 if $_[1] =~ /\A(exists|include)\Z/i
132 1 5 $_[1] =~ /all/i ? :
136 4 19 if $_[2] =~ /ip[46]/i
138 2 21 if $_[2] =~ /\A(exists|include)\Z/i
141 5 18 $_[2] =~ /all/i ? :
147 1 6 if $_[1] =~ /all/i
156 1 13 if $_[2] =~ /all/i
169 2 2 if $_[1] =~ /ip[46]/i
172 2 2 if $_[1] =~ /\A(ptr|all|exists|include)\Z/i
181 0 6 if $_[2] =~ /ip[46]/i
184 4 2 if $_[2] =~ /\A(ptr|all|exists|include)\Z/i
197 2 3 if $_[1] =~ /\A(ptr|all|exists|include)\Z/i
206 4 2 if $_[2] =~ /\A(ptr|all|exists|include)\Z/i
219 6 2 if $_[1] =~ /\A(a|mx|ptr|all|exists|include)\Z/i
228 5 5 if $_[2] =~ /\A(a|mx|ptr|all|exists|include)\Z/i
237 1 3 if $_[1] =~ /\A(a|mx|ptr|all|exists|include)\Z/i
246 11 3 if $_[2] =~ /\A(a|mx|ptr|all|exists|include)\Z/i
272 0 73 unless exists $errors{$code}
291 11 62 unless (exists $self->YYData->{'ERRMSG'})
308 2 571 if s/^(v\=spf1)\b//i
311 44 527 if s[^(/)\b][]i
313 69 458 if s/^(\:)\b//i
315 19 439 if s/^(\=)\b//i
319 74 365 if s/^([-~\+\?])\b//i
323 108 257 if s/^(all|ptr|a|mx|ip4|ip6|exists|include)\b//i
326 46 211 if s/^($Validate::SPF::Parser::RE{'net'}{'IPv4'}{'dec'}|$Validate::SPF::Parser::RE{'net'}{'IPv6'}{join $;, -'sep', ':'})\b//i
329 35 176 if s/^([_\.a-z\d][\-a-z\d]*\.[\.\-a-z\d]*[a-z\d]?)\b//i
332 44 132 if s/^(\d{1,3})\b//i
335 28 104 if s/^([a-z\d\.\-_]+)\b//i
339 7 97 if s/^(.+)\b//i
352 2 0 $domain ? :
389 65 42 $domain ? :
18 18 defined $bitmask ? :
36 71 $ipaddr ? :
39 68 defined $bitmask ? :