Branch Coverage

blib/lib/Net/DNS/ZoneFile/Fast.pm
Criterion Covered Total %
branch 221 480 46.0


line true false branch
146 129 31 if (@_ == 1) { }
150 26 5 if (defined $param{'text'}) { }
2 3 elsif (defined $param{'fh'}) { }
3 0 elsif (defined $param{'file'}) { }
156 0 3 unless defined $fh
165 160 0 unless defined $origin
166 0 160 unless $origin =~ /^\./
167 0 160 unless $origin =~ /\.$/
169 2 158 if $on_error and not exists $param{'soft_errors'}
170 0 160 if $on_error and not exists $param{'quiet'}
175 5 155 if ($fh) { }
192 26 134 if ($@)
193 0 26 if $globalerror
194 25 1 if $param{'soft_errors'}
199 112 22 if $minimum < 0
201 64 88 if $$z{'ttl'} <= 0
207 0 152 if ($param{'tolower'}) { }
0 152 elsif ($param{'toupper'}) { }
209 0 0 if defined $$z{'cname'}
210 0 0 if defined $$z{'dname'}
211 0 0 if defined $$z{'exchange'}
212 0 0 if defined $$z{'mname'}
213 0 0 if defined $$z{'rname'}
214 0 0 if defined $$z{'nsdname'}
215 0 0 if defined $$z{'ptrdname'}
216 0 0 if defined $$z{'target'}
217 0 0 if defined $$z{'mbox'}
218 0 0 if defined $$z{'txtdname'}
221 0 0 if defined $$z{'cname'}
222 0 0 if defined $$z{'dname'}
223 0 0 if defined $$z{'exchange'}
224 0 0 if defined $$z{'mname'}
225 0 0 if defined $$z{'rname'}
226 0 0 if defined $$z{'nsdname'}
227 0 0 if defined $$z{'ptrdname'}
228 0 0 if defined $$z{'target'}
229 0 0 if defined $$z{'mbox'}
230 0 0 if defined $$z{'txtdname'}
234 0 151 if ($$newrec{'type'} eq 'DNSKEY')
235 0 0 if (ref $newrec ne 'Net::DNS::RR::DNSKEY') { }
260 2 24 if ($on_error) { }
262 0 2 if ($@ ne '')
268 0 24 if $soft_errors and not $quiet
275 0 427 if (/^\$include[ \t]+/gi) { }
19 408 elsif (/^\$origin[ \t]+/gi) { }
2 406 elsif (/^\$generate[ \t]+/gi) { }
17 389 elsif (/^\$ttl\b/gi) { }
213 176 elsif (/^$pat_skip$/g) { }
13 163 elsif (/^[ \t]+/g) { }
18 145 elsif (/^\.[ \t]+/g) { }
13 132 elsif (/^\@[ \t]+/g) { }
0 132 elsif (/^$/g) { }
81 51 elsif (/^($pat_name\.)[ \t]+/g) { }
47 4 elsif (/^($pat_name)[ \t]+/g) { }
276 0 0 unless (/\G[\"\']*([^\s\'\"]+)[\"\']*/cig)
281 0 0 unless (-f $fn)
283 0 0 if ($includes_root and -f $includes_root . '/' . $fn) { }
295 0 0 unless defined $fh
298 17 2 if (/\G($pat_maybefullname)$pat_skip$/cg) { }
2 0 elsif (/\G\.$pat_skip$/cg) { }
300 3 14 unless $name =~ /\.$/
302 17 0 unless $origin =~ /^\./
311 2 0 if (/\G(\d+)\s*-\s*(\d+)\s+(.*)$/) { }
315 1 1 if $from > $to
316 0 1 unless $pat =~ /\$/
335 12 5 if (/\G\s+($pat_ttl)$pat_skip$/) { }
338 0 12 if ($default_ttl < 0 or $default_ttl > $MAXIMUM_TTL) { }
341 0 12 if $debug
356 9 4 unless $domain eq '.'
367 68 104 if (/\G($pat_ttl)[ \t]+/cg) { }
370 0 68 if ($ttl == 0) { }
373 0 68 if ($ttl < 0 or $ttl > $MAXIMUM_TTL)
380 121 51 if (/\G(in)[ \t]+/cig)
383 42 130 if (/\G(a)[ \t]+/cig) { }
21 109 elsif (/\G(ptr)[ \t]+/cig) { }
0 109 elsif (/\G(afsdb)[ \t]+/cig) { }
6 103 elsif (/\G(cname)[ \t]+/cig) { }
2 101 elsif (/\G(dname)[ \t]+/cig) { }
23 78 elsif (/\G(mx)[ \t]+/cig) { }
7 71 elsif (/\G(aaaa)[ \t]+/cig) { }
11 60 elsif (/\G(ns)[ \t]+/cig) { }
26 34 elsif (/\G(soa)\b/cig) { }
10 24 elsif (/\G(txt|spf)[ \t]+/cig) { }
0 24 elsif (/\G(type[0-9]+)[ \t]+/cig) { }
1 23 elsif (/\G(sshfp)[ \t]+/cig) { }
0 23 elsif (/\G(loc)[ \t]+/cig) { }
4 19 elsif (/\G(hinfo)[ \t]+/cig) { }
0 19 elsif (/\G(srv)[ \t]+/cig) { }
0 19 elsif (/\G(key)[ \t]+/cig) { }
3 16 elsif (/\G(rrsig)[ \t]+/cig) { }
0 16 elsif (/\G(dnskey)[ \t]+/cig) { }
0 16 elsif (/\G(ds)[ \t]+/cig) { }
3 13 elsif (/\G(tlsa)[ \t]+/cig) { }
0 13 elsif (/\G(nsec)[ \t]+/cig) { }
0 13 elsif (/\G(nsec3)[ \t]+/cig) { }
0 13 elsif (/\G(nsec3param)[ \t]+/cig) { }
4 9 elsif (/\G(rp)[ \t]+/cig) { }
0 9 elsif (/\G(naptr)[ \t]+/cig) { }
0 9 elsif (/\Gany\s+tsig.*$/cig) { }
384 42 0 if (/\G(\d+)\.(\d+)\.(\d+)\.(\d+)$pat_skip$/ and $1 < 256 and $2 < 256 and $3 < 256 and $4 < 256) { }
398 21 0 if (/\G($pat_maybefullname)$pat_skip$/cg) { }
0 0 elsif (/\G\@$pat_skip$/cg) { }
400 0 21 unless $name =~ /\.$/
412 0 0 unless $name eq '.'
427 0 0 if (/\G(\d+)[ \t]+/cg) { }
432 0 0 if (/\G($pat_maybefullname)$pat_skip$/cg)
434 0 0 unless $name =~ /\.$/
447 5 1 if (/\G($pat_maybefullname)$pat_skip$/cg) { }
1 0 elsif (/\G\@$pat_skip$/cg) { }
449 0 5 unless $name =~ /\.$/
461 1 0 unless $name eq '.'
475 2 0 if (/\G($pat_maybefullname)$pat_skip$/cg) { }
0 0 elsif (/\G\@$pat_skip$/cg) { }
477 0 2 unless $name =~ /\.$/
489 0 0 unless $name eq '.'
504 22 1 if (/\G(\d+)[ \t]+/cg) { }
509 22 0 if (/\G($pat_maybefullnameorroot)$pat_skip$/cg) { }
0 0 elsif (/\G\@$pat_skip$/cg) { }
511 0 22 unless $name =~ /\.$/
524 0 0 unless $name eq '.'
539 5 2 if (/\G([\da-fA-F:.]+)$pat_skip$/) { }
542 0 5 if ($string =~ /^(.*):(\d+)\.(\d+)\.(\d+)\.(\d+)$/)
550 5 0 if ($string =~ /^(.*)::(.*)$/) { }
554 5 0 @front ? :
5 0 @back ? :
560 0 0 if (@addr < 8)
578 11 0 if (/\G($pat_maybefullname)$pat_skip$/cg) { }
0 0 elsif (/\G\@$pat_skip$/cg) { }
580 0 11 unless $name =~ /\.$/
592 0 0 unless $name eq '.'
620 0 10 if (/\G('[^']+')$pat_skip$/cg) { }
10 0 elsif (/\G("[^"]+")$pat_skip$/cg) { }
0 0 elsif (/\G(["']?.*?["']?)$pat_skip$/cg) { }
652 0 0 if (/\G\\#\s+(\d+)\s+\(\s(.*)$/cg) { }
0 0 elsif (/\G\\#\s+(\d+)\s+(.*)$pat_skip$/cg) { }
678 0 1 if (/\G(\d+)\s+(\d+)\s+\(\s*$/cg) { }
1 0 elsif (/\G(\d+)\s+(\d+)\s+([a-zA-Z0-9]+)$pat_skip$/cg) { }
706 0 0 if (/\G (\d+) \s+ # deg lat ((\d+) \s+)? # min lat (([\d.]+) \s+)? # sec lat (N|S) \s+ # hem lat (\d+) \s+ # deg lon ((\d+) \s+)? # min lon (([\d.]+) \s+)? # sec lon (E|W) \s+ # hem lon (-?[\d.]+) m? # altitude (\s+ ([\d.]+) m?)? # size (\s+ ([\d.]+) m?)? # horiz precision (\s+ ([\d.]+) m?)? # vert precision $pat_skip $/cgix) { }
736 0 0 unless $latmin
737 0 0 unless $latsec
740 0 0 unless $lonmin
741 0 0 unless $lonsec
744 0 0 unless $size
745 0 0 unless $horiz_pre
746 0 0 unless $vert_pre
766 3 1 if (/\G(["'].*?["']|\S+)\s+(["'].*?["']|\S+)$pat_skip$/cg) { }
786 0 0 if (/\G(\d+)\s+(\d+)\s+(\d+)\s+(\S+)$pat_skip$/cg) { }
803 0 0 unless (/\G(\d+)\s+(\d+)\s+(\d+)\s+/cg)
817 0 0 if (/\G\(\s*$/cg) { }
0 0 elsif (/\G(.*\S)\s*$/) { }
832 3 0 if (/\G(\w+)\s+(\d+)\s+(\d+)\s+(\d+)\s+/cg) { }
850 3 0 if (/\G(\d+)\s+/cg) { }
858 2 1 if (/\G\(\s*$/cg) { }
1 0 elsif (/\G(\d+)\s+(\d+)\s+($pat_maybefullnameorroot)\s+([^=]+=)\s*/cg) { }
874 0 0 unless (/\G(\d+)\s+(\d+)\s+(\d+)\s+/cg)
888 0 0 if (/\G\(\s*$/cg) { }
0 0 elsif (m[\G([\sA-Za-z0-9\+/=]+).*$]) { }
902 0 0 unless (/\G(\d+)\s+(\d+)\s+(\d+)\s+/cg)
915 0 0 if (/\G\(\s*$/cg) { }
0 0 elsif (/\G(.*\S)\s*$/) { }
933 0 3 unless (/\G(\d+)\s+(\d+)\s+(\d+)\s+/cg)
946 1 2 if (/\G\(\s*$/cg) { }
2 0 elsif (/\G(.*\S)\s*$/) { }
964 0 0 if (/\G\s*($pat_maybefullnameorroot)\s+(.*?)$pat_skip$/cg) { }
984 0 0 unless $nsec3capable
986 0 0 if (/\G\s*(\d+)\s+(\d+)\s+(\d+)\s+([-0-9A-Fa-f]+)\s+($pat_maybefullname)\s*(.*?)$pat_skip$/cg) { }
0 0 elsif (/\G\s*(\d+)\s+(\d+)\s+(\d+)\s+([-0-9A-Fa-f]+)\s+\(/cg) { }
1035 0 0 if (/\G\s*(\d+)\s+(\d+)\s+(\d+)\s+([-0-9A-Fa-f]+)$pat_skip$/cg) { }
1057 4 0 if (/\G($pat_maybefullname)[ \t]+/cg) { }
0 0 elsif (/\G\@[ \t]+/cg) { }
1059 1 3 unless $mbox =~ /\.$/
1063 0 0 unless $mbox eq '.'
1070 3 1 if (/\G($pat_maybefullname)$pat_skip$/cg) { }
1 0 elsif (/\G\@$pat_skip$/cg) { }
1072 1 2 unless $txtdname =~ /\.$/
1076 1 0 unless $txtdname eq '.'
1093 0 0 unless (/\G(\d+) \s+ (\d+) \s+ ['"] (.*?) ['"] \s+ ['"] (.*?) ['"] \s+ ['"] (.*?) ['"] \s+ (\S+)$/cgx)
1131 0 0 if $hem eq 'S' or $hem eq 'W'
1138 0 51 unless $soa
1139 0 51 if ($$soa{'breakable'}) { }
1140 0 0 if (/\G[ \t]*($pat_maybefullname)$pat_skip$/cig) { }
0 0 elsif (/\G$pat_skip$/cg) { }
0 0 elsif (/\G[ \t]*(\@)[ \t]/cig) { }
0 0 elsif (/\G[ \t]*($pat_name\.)[ \t]/cig) { }
1152 47 4 if (/\G[ \t]*($pat_maybefullname)/cig) { }
0 4 elsif (/\G[ \t]*\($pat_skip$/cig) { }
2 2 elsif (/\G[ \t]*(\@)[ \t]/cig) { }
0 2 elsif (/\G[ \t]*\(/cig) { }
1167 25 24 if ($$soa{'nextkey'} eq 'mname') { }
24 0 elsif ($$soa{'nextkey'} eq 'rname') { }
1175 0 0 unless $soa
1183 23 92 if ($$soa{'nextkey'} eq 'serial') { }
1184 0 23 unless $v =~ /^\d+$/
1187 0 92 unless $v
1195 2 15 if ($$rrsig{'first'}) { }
1197 0 2 if (exists $$rrsig{'needsigexp'} and /\G\s*(\d+)\s+(\d+)\s+(\d+)\s+($pat_maybefullnameorroot)/cg) { }
2 0 elsif (not exists $$rrsig{'needsigexp'} and /\G\s*(\d+)\s+(\d+)\s+($pat_maybefullnameorroot)/cg) { }
1213 2 13 if (/\)\s*$/) { }
1214 2 0 if (/\G\s*(\S+)\s*\)\s*$/cg) { }
1226 13 0 if (/\G\s*(\S+)\s*$/cg) { }
1238 0 0 if (/\)\s*$/) { }
1240 0 0 if (/\G\s*(\S+)\s*\)\s*$/cg) { }
1251 0 0 if (/\G\s*(\S+)\s*$/cg) { }
1262 0 0 if (/\)\s*;.*$/) { }
1263 0 0 if (/\G\s*(\S*)\s*\)\s*;.*$/cg) { }
1275 0 0 if (/\G\s*(\S+)\s*$/cg) { }
1286 0 0 if (/\)\s*$/) { }
1287 0 0 if (/\G\s*(\S*)\s*\)\s*$/cg) { }
1301 0 0 if (/\G\s*(\S+)\s*$/cg) { }
1312 1 0 if (/\)\s*$/) { }
1316 1 0 if (/\G\s*\)$/cg) { }
1329 0 0 if (/\G\s*(\S+)\s*$/cg) { }
1340 0 0 if (/\G\s*([A-Z0-9]{32})\s*(\))?/cg) { }
0 0 elsif (/\G\s+$/cg) { }
0 0 elsif (/\G\s*((\w+\s+)*)\)\s*$/) { }
1346 0 0 if (defined $2 and $2 eq ')')
1370 0 163 unless $soa
1371 139 24 if ($$soa{'breakable'}) { }
1372 22 117 if (/\G[ \t]*($pat_ttl)$pat_skip$/cig) { }
24 93 elsif (/\G$pat_skip$/cg) { }
93 0 elsif (/\G[ \t]*($pat_ttl)\b/cig) { }
1382 0 24 if (/\G[ \t]+($pat_ttl)/cig) { }
5 19 elsif (/\G[ \t]*\($pat_skip$/cig) { }
18 1 elsif (/\G[ \t]*\(/cig) { }
1395 23 92 if ($$soa{'nextkey'} eq 'serial') { }
23 69 elsif ($$soa{'nextkey'} eq 'refresh') { }
23 46 elsif ($$soa{'nextkey'} eq 'retry') { }
23 23 elsif ($$soa{'nextkey'} eq 'expire') { }
23 0 elsif ($$soa{'nextkey'} eq 'minimum') { }
1405 21 2 if $default_ttl <= 0
1406 23 0 $$soa{'breakable'} ? :
1407 0 0 unless ($$soa{'breakable'} or /\G$pat_skip$/cg)
1412 2 21 unless $$soa{'mname'} =~ /\.$/
1413 2 21 unless $$soa{'rname'} =~ /\.$/
1419 0 23 if $parse == \&parse_line
1421 0 0 unless $soa
1428 23 2 if (/\G[ \t]*\)$pat_skip$/cig) { }
2 0 elsif (/\G$pat_skip$/cg) { }
1449 164 8 if ($t =~ /^\d+$/) { }
8 0 elsif ($t =~ /^(?:\d+[WDHMS])+$/i) { }