Branch Coverage

blib/lib/XML/Parsepp.pm
Criterion Covered Total %
branch 507 608 83.3


line true false branch
21 0 6 if ($HParam{'Handlers'})
24 2 4 if (defined $HParam{'dupatt'})
27 1 1 unless ($cstr =~ /\A [\x{21}-\x{bf}]* \z/msux)
30 0 1 if ($cstr =~ /[0-9A-Za-z"']/msux)
51 0 0 unless open my $ifh, '<', $inpname
61 0 0 if (ref $pitem eq 'GLOB') { }
65 0 0 unless open my $ifh, '<', \$pitem
76 0 0 unless my $ExpatNB = $self->parse_start
84 0 0 if $buf eq ''
146 0 15 unless my($fl, $pn) = $_[0] =~ /\A \( \? ([\w\^\-]*) : (.*?) \) \z/msux
153 0 15 unless my($caret, $class) = $pattern =~ /\A \[ (\^?) (.*?) \] \z/msux
157 0 15 $caret eq '^' ? :
192 0 1230 if (length $buffer_text > 100000)
200 2005 2655 if ($buffer_action eq 'C') { }
7 2648 elsif ($buffer_action eq 'F') { }
529 2119 elsif ($buffer_action eq 'G') { }
73 2046 elsif ($buffer_action eq '&') { }
960 1086 elsif ($buffer_action eq '<') { }
26 1060 elsif ($buffer_action eq '!') { }
3 1057 elsif ($buffer_action eq 'A') { }
3 1054 elsif ($buffer_action eq 'B') { }
448 606 elsif ($buffer_action eq 'D') { }
49 557 elsif ($buffer_action eq ']') { }
183 374 elsif ($buffer_action eq 'S') { }
104 270 elsif ($buffer_action eq 'E') { }
270 0 elsif ($buffer_action eq '?') { }
201 1689 316 if ($$self{'_Stage'} <= 2) { }
204 1408 281 if ($buffer_text =~ /\A (\s*) (\S) (.*) \z/msux) { }
281 0 elsif ($buffer_text =~ /\A \s* \z/msux) { }
215 1689 0 if $level == 0
217 281 1408 if ($ch eq '') { }
777 631 elsif ($ch eq '<') { }
49 582 elsif ($ch eq ']' and $$self{'_DocOpen'} > 0) { }
5 577 elsif ($ch eq q['] or $ch eq '"') { }
2 575 elsif ($ch eq '>') { }
529 46 elsif ($ch =~ /$rx_syn_syn/u) { }
8 38 elsif ($ch =~ /$rx_syn_tok/u) { }
232 5 0 if $level == 0
242 529 0 if $level == 0
255 245 71 if ($buffer_text =~ /\A ([^<&]*) ([<&]) (.*) \z/msux)
259 177 68 if $level == 0
266 52 17 if $level == 0
275 2 5 if ($$self{'_QChar'} eq q[']) { }
5 0 elsif ($$self{'_QChar'} eq '"') { }
276 0 2 if ($buffer_text =~ /\A ([^']*) (') (.*) \z/msux) { }
284 1 4 if ($buffer_text =~ /\A ([^"]*) (") (.*) \z/msux) { }
295 7 0 if $level == 0
297 6 1 if ($ch eq '') { }
309 525 4 if ($buffer_text =~ /\A (\S*) (\s) (.*) \z/msux) { }
316 529 0 if $level == 0
318 156 373 if ($emit =~ /($ng_syn_syn)/msux) { }
320 13 143 if ($out =~ /$rx_tok_syn/u or $out eq '>') { }
328 1 372 if ($ch eq '') { }
339 64 9 if ($buffer_text =~ /\A . ([^<;]*) ([<;]) (.*) \z/msux)
341 3 61 unless ($ch eq ';')
345 11 18 if $level == 0
354 2 958 if (length $buffer_text < 3)
362 10 948 if ($c2 eq '!' and $c3 eq '-')
366 3 945 if ($c2 eq '!' and $c3 eq '[')
370 396 549 if ($c2 eq '!' and $c3 =~ /\w/msux)
374 174 375 if ($c2 =~ /[,\-.\w:\[|]/msux)
378 102 273 if ($c2 eq '/')
382 270 3 if ($c2 eq '?')
389 0 26 if (length $buffer_text < 4)
394 1 25 unless ($prefix eq ') (.*) \z/msux)
400 9 0 if $level == 0
409 0 3 if (length $buffer_text < 9)
415 1 2 unless ($prefix eq '
419 2 0 if $level == 0
426 2 1 if ($buffer_text =~ /\A (.*?) (\]\]>) (.*) \z/msux)
429 2 0 if $level == 0
432 2 0 if $level == 0
439 1 0 if $level == 0
449 1589 374 if (defined $1)
452 395 1194 if ($fragment =~ /[>\[]/msux)
459 395 53 if ($finpos != -1)
461 0 395 unless ($terminal eq '>' or $terminal eq '[')
466 332 0 if $level == 0
475 0 49 if (length $buffer_text < 2)
480 0 49 unless ($$self{'_DocOpen'})
484 2 47 unless ($buffer_text =~ /\A (\] \s* >) (.*) \z/msux)
490 47 0 if $level == 0
499 290 64 if (defined $1)
502 174 116 if ($fragment =~ />/msux)
509 174 9 if ($finpos != -1)
512 142 20 if $level == 0
521 99 5 if ($buffer_text =~ /\A ([^>]* [>]) (.*) \z/msux)
524 83 9 if $level == 0
533 270 0 if ($buffer_text =~ /\A ([^>]* [>]) (.*) \z/msux)
536 254 0 if $level == 0
558 782 0 if ($cb_Init)
567 74 0 if ($cb_Final)
579 0 61 unless my($var) = $ampersand =~ /\A & ([^&;]+) ; \z/msux
582 2 59 if ($var =~ /\A \# (\d+) \z/msux) { }
590 2 0 if ($cb_Char)
597 5 54 unless (defined $rhs)
598 4 1 if ($level == 0) { }
614 11 43 if ($code eq 'L') { }
23 20 elsif ($code eq 'F') { }
20 0 elsif ($code eq 'T') { }
620 11 0 if ($cb_Char)
625 1 22 if ($$self{'_Seen'}{$var})
631 3 19 if ($cb_Exen) { }
638 3 0 if ($cb_Exef)
643 1 2 unless ($$self{'_Text'} eq '')
646 1 1 if (@{$$self{'_Stack'};})
652 1 18 unless open my $ifh, '<', $value
657 12 18 if $buf eq ''
664 1 11 unless ($$self{'_Text'} eq '')
667 1 10 if (@{$$self{'_Stack'};})
675 1 19 if ($$self{'_Seen'}{$var})
682 1 6 unless ($$self{'_Text'} eq '')
685 1 5 if (@{$$self{'_Stack'};})
705 1716 292 unless ($$self{'_Stage'} == 3)
707 2 1714 if ($emit =~ /\S/msux)
708 2 0 if ($$self{'_Stage'} == 4) { }
717 1714 292 if ($default) { }
718 985 729 unless ($emit eq '')
723 985 0 if ($cb_Default)
733 158 29 if (defined $1) { }
29 0 elsif (defined $2) { }
743 187 0 unless ($fragment eq '')
747 187 0 if ($cb_Char)
752 0 292 unless ($emit =~ /\G (.*) \z/msux)
756 0 292 if ($rest ne '')
766 0 174 unless my($elem, $param, $term) = $emit =~ m(\A < \s* ([,\-.\w:\[|]+) (.*?) (/?) > \z)msux
776 10 35 if (defined $2) { }
35 0 elsif (defined $3) { }
786 1 44 if ($def_txt =~ /
799 1 8 unless (defined $rhs)
811 1 7 unless ($code eq 'L')
817 0 42 unless ($def_txt =~ /\G (.*) \z/msux)
822 2 40 if ($rest =~ /&/msux)
828 3 37 if (defined $att_hash{$def_var}) { }
829 2 1 if ($$self{'_Dupatt'} eq '')
840 0 167 unless ($param =~ /\G (.*) \z/msux)
845 4 163 if ($rest =~ /\S/msux)
846 3 1 if ($level == 0) { }
854 2 161 unless ($$self{'_Dupatt'} eq '')
866 162 0 if ($cb_Start)
871 14 148 if ($term eq '/') { }
0 148 elsif ($term ne '') { }
872 0 14 if ($$self{'_Scount'} < 1)
878 0 14 unless (defined $ele_from_stack)
882 0 14 unless ($elem eq $ele_from_stack)
891 14 0 if ($cb_End)
905 1 98 unless my($elem) = $emit =~ m(\A < \s* / \s* ([,\-.\w:\[|]+) \s* > \z)msux
908 1 97 if ($$self{'_Scount'} < 1)
914 3 94 unless (defined $ele_from_stack)
915 1 2 if ($hist =~ /F/msux) { }
923 2 92 unless ($elem eq $ele_from_stack)
932 92 0 if ($cb_End)
942 4 266 unless my($target, $data) = $emit =~ /\A <\? ([,\-.\w:\[|]+) \s* (.*) \?> \z/msux
945 255 11 if ($target =~ /\A xml/imsux) { }
946 2 253 unless ($$self{'_ItemCount'} == 0)
954 9 410 if (defined $2) { }
410 0 elsif (defined $3) { }
965 0 253 unless ($data =~ /\G (.*) \z/msux)
970 1 252 if ($rest =~ /\S/msux)
978 252 162 if ($$at[0] eq 'version') { }
146 16 elsif ($$at[0] eq 'encoding') { }
14 2 elsif ($$at[0] eq 'standalone') { }
979 1 251 if (defined $ver)
985 1 145 if (defined $enc)
991 1 13 if (defined $stand)
994 8 5 if ($$at[1] eq 'yes') { }
2 3 elsif ($$at[1] eq 'no') { }
1008 1 243 unless (defined $ver)
1017 243 0 if ($cb_Decl)
1028 11 0 if ($cb_Proc)
1039 0 9 unless my($comment) = $emit =~ /\A \z/msux
1047 9 0 if ($cb_Comment)
1058 2 0 if ($cb_CdataStart)
1069 2 0 if ($cb_CdataEnd)
1078 0 47 unless $emit =~ /\A \] \s* > \z/msux
1081 0 47 unless ($$self{'_DocOpen'})
1090 47 0 if ($cb_DoctypeFin)
1100 1 394 if ($$self{'_Stage'} > 2)
1104 4 390 unless my($type, $data, $term) = $emit =~ /\A ]) \z/msux
1110 713 400 if (defined $1) { }
4 396 elsif (defined $2) { }
370 26 elsif (defined $3) { }
26 0 elsif (defined $4) { }
1129 0 390 unless ($data =~ /\G (.*) \z/msux)
1134 1 389 if ($rest =~ /\S/msux)
1138 210 179 if ($type eq 'DOCTYPE') { }
109 70 elsif ($type eq 'ENTITY') { }
16 54 elsif ($type eq 'ELEMENT') { }
36 18 elsif ($type eq 'ATTLIST') { }
16 2 elsif ($type eq 'NOTATION') { }
1157 1 332 unless ($type eq 'DOCTYPE' or $term eq '>')
1167 3 207 unless ($$self{'_DoctCount'} == 1)
1184 0 207 unless (defined $param0)
1188 2 205 unless ($$param0[0] eq 'B')
1193 91 114 $terminal eq '[' ? :
1198 115 90 if (defined $param1)
1199 4 111 unless ($$param1[0] eq 'B')
1203 10 101 if ($$param1[1] eq 'SYSTEM') { }
99 2 elsif ($$param1[1] eq 'PUBLIC') { }
1214 1 108 unless (defined $param2)
1217 1 107 unless ($$param2[0] eq 'Q')
1221 8 99 if ($syspub eq 'S') { }
1229 101 6 if (defined $param3)
1230 1 100 unless ($$param3[0] eq 'Q')
1234 1 99 if ($syspub eq 'S') { }
1243 100 96 if (defined $public)
1244 1 99 if ($public =~ /[\]\[\\]/msux)
1249 1 194 if (@$plist)
1253 0 194 if ($$self{'_DocOpen'})
1264 194 0 if ($cb_Doctype)
1269 103 91 unless ($intern eq '1')
1275 103 0 if ($cb_DoctypeFin)
1303 10 99 if (@$plist and $$plist[0][0] eq 'B' and $$plist[0][1] eq '%')
1310 0 109 unless (defined $param0)
1314 1 108 unless ($$param0[0] eq 'B')
1324 1 107 unless (defined $param1)
1328 46 61 if ($$param1[0] eq 'Q') { }
1333 3 58 unless ($$param1[1] eq 'SYSTEM')
1334 2 1 if ($$param1[1] eq 'PUBLIC') { }
1344 1 57 unless (defined $param2)
1348 1 56 unless ($$param2[0] eq 'Q')
1356 17 39 if (defined $param3)
1357 1 16 unless ($$param3[0] eq 'B')
1361 1 15 unless ($$param3[1] eq 'NDATA')
1366 1 14 unless (defined $param4)
1370 1 13 unless ($$param4[0] eq 'Q' or $$param4[0] eq 'B')
1378 1 97 if (@$plist)
1382 1 96 unless ($$self{'_DocOpen'})
1386 12 84 if (defined $ndata) { }
1392 12 0 if ($cb_Unparsed)
1398 3 81 if (defined $$self{'_Var'}{$name}) { }
1401 1 2 defined $value ? :
1408 3 0 if ($cb_Default)
1412 2 1 unless (defined $value)
1418 71 10 unless (defined $isparam)
1419 38 33 if (defined $value) { }
1432 81 0 if ($cb_Entity)
1452 0 16 unless (defined $param0)
1456 1 15 unless ($$param0[0] eq 'B')
1464 1 14 unless (defined $param1)
1468 1 13 unless ($$param1[0] eq 'P')
1474 1 12 unless ($$self{'_DocOpen'})
1483 12 0 if ($cb_Element)
1488 1 11 if (@$plist)
1518 0 36 unless (defined $param0)
1522 1 35 unless ($$param0[0] eq 'B')
1531 0 38 unless (defined $param1)
1535 1 37 unless ($$param1[0] eq 'B')
1543 2 35 unless (defined $param2)
1549 4 31 if ($$param2[0] eq 'B' and $$param2[1] eq 'NOTATION') { }
1552 1 3 unless (defined $pm2b)
1556 1 2 unless ($$pm2b[0] eq 'P')
1562 23 8 if ($$param2[0] eq 'B') { }
7 1 elsif ($$param2[0] eq 'P') { }
1575 1 31 unless (defined $param3)
1581 7 24 if ($$param3[0] eq 'B' and $$param3[1] eq '#FIXED') { }
1584 1 6 unless (defined $pm3b)
1588 1 5 unless ($$pm3b[0] eq 'Q')
1596 16 8 if ($$param3[0] eq 'B') { }
7 1 elsif ($$param3[0] eq 'Q') { }
1607 1 27 unless ($$self{'_DocOpen'})
1616 27 0 if ($cb_Attlist)
1638 0 16 unless (defined $param0)
1642 1 15 unless ($$param0[0] eq 'B')
1651 15 0 if (defined $param1)
1652 1 14 unless ($$param1[0] eq 'B')
1656 4 10 if ($$param1[1] eq 'SYSTEM') { }
9 1 elsif ($$param1[1] eq 'PUBLIC') { }
1667 1 12 unless (defined $param2)
1670 1 11 unless ($$param2[0] eq 'Q')
1674 4 7 if ($syspub eq 'S') { }
1682 6 5 if (defined $param3)
1683 1 5 unless ($$param3[0] eq 'Q')
1687 0 5 if ($syspub eq 'S') { }
1696 1 9 unless ($$self{'_DocOpen'})
1705 9 0 if ($cb_Notation)
1710 1 8 if (@$plist)
1718 243 0 $pl eq 'X' ? :
11 243 $pl eq 'P' ? :
269 254 $pl eq 'S' || $pl eq 'E' ? :
2034 523 $pl eq 'A' || $pl eq 'C' || $pl eq '!' ? :
488 2557 $pl eq 'D' || $pl eq 'F' || $pl eq 'U' || $pl eq 'I' || $pl eq 'L' || $pl eq 'O' || $pl eq 'T' ? :
1747 1163 1882 if ($stage == 1) { }
1378 504 elsif ($stage == 2) { }
1748 0 1163 if ($tp eq 'DTD') { }
40 1123 elsif ($pl eq 'S') { }
1756 77 1301 if ($pl eq 'S')
1761 1123 1922 if ($stage == 1) { }
1301 621 elsif ($stage == 2) { }
593 28 elsif ($stage == 3) { }
28 0 elsif ($stage == 4) { }
1762 0 880 unless ($pl eq 'X' or $pl eq 'C' or $pl eq '!')
1765 243 880 if ($pl eq 'X')
1770 0 813 unless ($tp eq 'DTD' or $pl eq 'C' or $pl eq '!')
1775 0 325 unless ($tp eq 'TAG' or $tp eq 'PRC' or $tp eq 'TXT')
1778 78 515 if ($pl eq 'E' and $$self{'_Scount'} == 0)
1783 1 27 unless ($pl eq 'C')
1801 421 3452 if ($emit =~ /\n ([^\n]*) \z/msux) { }
1812 4 77 if ($$self{'_Action'} eq 'F')
1816 1 76 if ($$self{'_Action'} eq 'G')
1820 1 75 if (@{$$self{'_Stack'};})
1824 0 75 unless ($$self{'_Scount'} == 0)
1828 1 74 unless ($$self{'_Text'} eq '')