Branch Coverage

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


line true false branch
22 0 6 if ($HParam{'Handlers'})
25 2 4 if (defined $HParam{'dupatt'})
28 1 1 unless ($cstr =~ /\A [\x{21}-\x{bf}]* \z/msux)
31 0 1 if ($cstr =~ /[0-9A-Za-z"']/msux)
52 0 0 unless open my $ifh, '<', $inpname
62 0 0 if (ref $pitem eq 'GLOB') { }
66 0 0 unless open my $ifh, '<', \$pitem
77 0 0 unless my $ExpatNB = $self->parse_start
85 0 0 if $buf eq ''
147 0 15 unless my($fl, $pn) = $_[0] =~ /\A \( \? ([\w\^\-]*) : (.*?) \) \z/msux
154 0 15 unless my($caret, $class) = $pattern =~ /\A \[ (\^?) (.*?) \] \z/msux
158 0 15 $caret eq '^' ? :
193 0 1230 if (length $buffer_text > 100000)
201 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 '?') { }
202 1689 316 if ($$self{'_Stage'} <= 2) { }
205 1408 281 if ($buffer_text =~ /\A (\s*) (\S) (.*) \z/msux) { }
281 0 elsif ($buffer_text =~ /\A \s* \z/msux) { }
216 1689 0 if $level == 0
218 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) { }
233 5 0 if $level == 0
243 529 0 if $level == 0
256 245 71 if ($buffer_text =~ /\A ([^<&]*) ([<&]) (.*) \z/msux)
260 177 68 if $level == 0
267 52 17 if $level == 0
276 2 5 if ($$self{'_QChar'} eq q[']) { }
5 0 elsif ($$self{'_QChar'} eq '"') { }
277 0 2 if ($buffer_text =~ /\A ([^']*) (') (.*) \z/msux) { }
285 1 4 if ($buffer_text =~ /\A ([^"]*) (") (.*) \z/msux) { }
296 7 0 if $level == 0
298 6 1 if ($ch eq '') { }
310 525 4 if ($buffer_text =~ /\A (\S*) (\s) (.*) \z/msux) { }
317 529 0 if $level == 0
319 156 373 if ($emit =~ /($ng_syn_syn)/msux) { }
321 13 143 if ($out =~ /$rx_tok_syn/u or $out eq '>') { }
329 1 372 if ($ch eq '') { }
340 64 9 if ($buffer_text =~ /\A . ([^<;]*) ([<;]) (.*) \z/msux)
342 3 61 unless ($ch eq ';')
346 11 18 if $level == 0
355 2 958 if (length $buffer_text < 3)
363 10 948 if ($c2 eq '!' and $c3 eq '-')
367 3 945 if ($c2 eq '!' and $c3 eq '[')
371 396 549 if ($c2 eq '!' and $c3 =~ /\w/msux)
375 174 375 if ($c2 =~ /[,\-.\w:\[|]/msux)
379 102 273 if ($c2 eq '/')
383 270 3 if ($c2 eq '?')
390 0 26 if (length $buffer_text < 4)
395 1 25 unless ($prefix eq ') (.*) \z/msux)
401 9 0 if $level == 0
410 0 3 if (length $buffer_text < 9)
416 1 2 unless ($prefix eq '
420 2 0 if $level == 0
427 2 1 if ($buffer_text =~ /\A (.*?) (\]\]>) (.*) \z/msux)
430 2 0 if $level == 0
433 2 0 if $level == 0
440 1 0 if $level == 0
450 1589 374 if (defined $1)
453 395 1194 if ($fragment =~ /[>\[]/msux)
460 395 53 if ($finpos != -1)
462 0 395 unless ($terminal eq '>' or $terminal eq '[')
467 332 0 if $level == 0
476 0 49 if (length $buffer_text < 2)
481 0 49 unless ($$self{'_DocOpen'})
485 2 47 unless ($buffer_text =~ /\A (\] \s* >) (.*) \z/msux)
491 47 0 if $level == 0
500 290 64 if (defined $1)
503 174 116 if ($fragment =~ />/msux)
510 174 9 if ($finpos != -1)
513 142 20 if $level == 0
522 99 5 if ($buffer_text =~ /\A ([^>]* [>]) (.*) \z/msux)
525 83 9 if $level == 0
534 270 0 if ($buffer_text =~ /\A ([^>]* [>]) (.*) \z/msux)
537 254 0 if $level == 0
559 782 0 if ($cb_Init)
568 74 0 if ($cb_Final)
580 0 61 unless my($var) = $ampersand =~ /\A & ([^&;]+) ; \z/msux
583 2 59 if ($var =~ /\A \# (\d+) \z/msux) { }
591 2 0 if ($cb_Char)
598 5 54 unless (defined $rhs)
599 4 1 if ($level == 0) { }
615 11 43 if ($code eq 'L') { }
23 20 elsif ($code eq 'F') { }
20 0 elsif ($code eq 'T') { }
621 11 0 if ($cb_Char)
626 1 22 if ($$self{'_Seen'}{$var})
632 3 19 if ($cb_Exen) { }
639 3 0 if ($cb_Exef)
644 1 2 unless ($$self{'_Text'} eq '')
647 1 1 if (@{$$self{'_Stack'};})
653 1 18 unless open my $ifh, '<', $value
658 12 18 if $buf eq ''
665 1 11 unless ($$self{'_Text'} eq '')
668 1 10 if (@{$$self{'_Stack'};})
676 1 19 if ($$self{'_Seen'}{$var})
683 1 6 unless ($$self{'_Text'} eq '')
686 1 5 if (@{$$self{'_Stack'};})
706 1716 292 unless ($$self{'_Stage'} == 3)
708 2 1714 if ($emit =~ /\S/msux)
709 2 0 if ($$self{'_Stage'} == 4) { }
718 1714 292 if ($default) { }
719 985 729 unless ($emit eq '')
724 985 0 if ($cb_Default)
734 158 29 if (defined $1) { }
29 0 elsif (defined $2) { }
744 187 0 unless ($fragment eq '')
748 187 0 if ($cb_Char)
753 0 292 unless ($emit =~ /\G (.*) \z/msux)
757 0 292 if ($rest ne '')
767 0 174 unless my($elem, $param, $term) = $emit =~ m(\A < \s* ([,\-.\w:\[|]+) (.*?) (/?) > \z)msux
777 10 35 if (defined $2) { }
35 0 elsif (defined $3) { }
787 1 44 if ($def_txt =~ /
800 1 8 unless (defined $rhs)
812 1 7 unless ($code eq 'L')
818 0 42 unless ($def_txt =~ /\G (.*) \z/msux)
823 2 40 if ($rest =~ /&/msux)
829 3 37 if (defined $att_hash{$def_var}) { }
830 2 1 if ($$self{'_Dupatt'} eq '')
841 0 167 unless ($param =~ /\G (.*) \z/msux)
846 4 163 if ($rest =~ /\S/msux)
847 3 1 if ($level == 0) { }
855 2 161 unless ($$self{'_Dupatt'} eq '')
867 162 0 if ($cb_Start)
872 14 148 if ($term eq '/') { }
0 148 elsif ($term ne '') { }
873 0 14 if ($$self{'_Scount'} < 1)
879 0 14 unless (defined $ele_from_stack)
883 0 14 unless ($elem eq $ele_from_stack)
892 14 0 if ($cb_End)
906 1 98 unless my($elem) = $emit =~ m(\A < \s* / \s* ([,\-.\w:\[|]+) \s* > \z)msux
909 1 97 if ($$self{'_Scount'} < 1)
915 3 94 unless (defined $ele_from_stack)
916 1 2 if ($hist =~ /F/msux) { }
924 2 92 unless ($elem eq $ele_from_stack)
933 92 0 if ($cb_End)
943 4 266 unless my($target, $data) = $emit =~ /\A <\? ([,\-.\w:\[|]+) \s* (.*) \?> \z/msux
946 255 11 if ($target =~ /\A xml/imsux) { }
947 2 253 unless ($$self{'_ItemCount'} == 0)
955 9 410 if (defined $2) { }
410 0 elsif (defined $3) { }
966 0 253 unless ($data =~ /\G (.*) \z/msux)
971 1 252 if ($rest =~ /\S/msux)
979 252 162 if ($$at[0] eq 'version') { }
146 16 elsif ($$at[0] eq 'encoding') { }
14 2 elsif ($$at[0] eq 'standalone') { }
980 1 251 if (defined $ver)
986 1 145 if (defined $enc)
992 1 13 if (defined $stand)
995 8 5 if ($$at[1] eq 'yes') { }
2 3 elsif ($$at[1] eq 'no') { }
1009 1 243 unless (defined $ver)
1018 243 0 if ($cb_Decl)
1029 11 0 if ($cb_Proc)
1040 0 9 unless my($comment) = $emit =~ /\A \z/msux
1048 9 0 if ($cb_Comment)
1059 2 0 if ($cb_CdataStart)
1070 2 0 if ($cb_CdataEnd)
1079 0 47 unless $emit =~ /\A \] \s* > \z/msux
1082 0 47 unless ($$self{'_DocOpen'})
1091 47 0 if ($cb_DoctypeFin)
1101 1 394 if ($$self{'_Stage'} > 2)
1105 4 390 unless my($type, $data, $term) = $emit =~ /\A ]) \z/msux
1111 713 400 if (defined $1) { }
4 396 elsif (defined $2) { }
370 26 elsif (defined $3) { }
26 0 elsif (defined $4) { }
1130 0 390 unless ($data =~ /\G (.*) \z/msux)
1135 1 389 if ($rest =~ /\S/msux)
1139 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') { }
1158 1 332 unless ($type eq 'DOCTYPE' or $term eq '>')
1168 3 207 unless ($$self{'_DoctCount'} == 1)
1185 0 207 unless (defined $param0)
1189 2 205 unless ($$param0[0] eq 'B')
1194 91 114 $terminal eq '[' ? :
1199 115 90 if (defined $param1)
1200 4 111 unless ($$param1[0] eq 'B')
1204 10 101 if ($$param1[1] eq 'SYSTEM') { }
99 2 elsif ($$param1[1] eq 'PUBLIC') { }
1215 1 108 unless (defined $param2)
1218 1 107 unless ($$param2[0] eq 'Q')
1222 8 99 if ($syspub eq 'S') { }
1230 101 6 if (defined $param3)
1231 1 100 unless ($$param3[0] eq 'Q')
1235 1 99 if ($syspub eq 'S') { }
1244 100 96 if (defined $public)
1245 1 99 if ($public =~ /[\]\[\\]/msux)
1250 1 194 if (@$plist)
1254 0 194 if ($$self{'_DocOpen'})
1265 194 0 if ($cb_Doctype)
1270 103 91 unless ($intern eq '1')
1276 103 0 if ($cb_DoctypeFin)
1304 10 99 if (@$plist and $$plist[0][0] eq 'B' and $$plist[0][1] eq '%')
1311 0 109 unless (defined $param0)
1315 1 108 unless ($$param0[0] eq 'B')
1325 1 107 unless (defined $param1)
1329 46 61 if ($$param1[0] eq 'Q') { }
1334 3 58 unless ($$param1[1] eq 'SYSTEM')
1335 2 1 if ($$param1[1] eq 'PUBLIC') { }
1345 1 57 unless (defined $param2)
1349 1 56 unless ($$param2[0] eq 'Q')
1357 17 39 if (defined $param3)
1358 1 16 unless ($$param3[0] eq 'B')
1362 1 15 unless ($$param3[1] eq 'NDATA')
1367 1 14 unless (defined $param4)
1371 1 13 unless ($$param4[0] eq 'Q' or $$param4[0] eq 'B')
1379 1 97 if (@$plist)
1383 1 96 unless ($$self{'_DocOpen'})
1387 12 84 if (defined $ndata) { }
1393 12 0 if ($cb_Unparsed)
1399 3 81 if (defined $$self{'_Var'}{$name}) { }
1402 1 2 defined $value ? :
1409 3 0 if ($cb_Default)
1413 2 1 unless (defined $value)
1419 71 10 unless (defined $isparam)
1420 38 33 if (defined $value) { }
1433 81 0 if ($cb_Entity)
1453 0 16 unless (defined $param0)
1457 1 15 unless ($$param0[0] eq 'B')
1465 1 14 unless (defined $param1)
1469 1 13 unless ($$param1[0] eq 'P')
1475 1 12 unless ($$self{'_DocOpen'})
1484 12 0 if ($cb_Element)
1489 1 11 if (@$plist)
1519 0 36 unless (defined $param0)
1523 1 35 unless ($$param0[0] eq 'B')
1532 0 38 unless (defined $param1)
1536 1 37 unless ($$param1[0] eq 'B')
1544 2 35 unless (defined $param2)
1550 4 31 if ($$param2[0] eq 'B' and $$param2[1] eq 'NOTATION') { }
1553 1 3 unless (defined $pm2b)
1557 1 2 unless ($$pm2b[0] eq 'P')
1563 23 8 if ($$param2[0] eq 'B') { }
7 1 elsif ($$param2[0] eq 'P') { }
1576 1 31 unless (defined $param3)
1582 7 24 if ($$param3[0] eq 'B' and $$param3[1] eq '#FIXED') { }
1585 1 6 unless (defined $pm3b)
1589 1 5 unless ($$pm3b[0] eq 'Q')
1597 16 8 if ($$param3[0] eq 'B') { }
7 1 elsif ($$param3[0] eq 'Q') { }
1608 1 27 unless ($$self{'_DocOpen'})
1617 27 0 if ($cb_Attlist)
1639 0 16 unless (defined $param0)
1643 1 15 unless ($$param0[0] eq 'B')
1652 15 0 if (defined $param1)
1653 1 14 unless ($$param1[0] eq 'B')
1657 4 10 if ($$param1[1] eq 'SYSTEM') { }
9 1 elsif ($$param1[1] eq 'PUBLIC') { }
1668 1 12 unless (defined $param2)
1671 1 11 unless ($$param2[0] eq 'Q')
1675 4 7 if ($syspub eq 'S') { }
1683 6 5 if (defined $param3)
1684 1 5 unless ($$param3[0] eq 'Q')
1688 0 5 if ($syspub eq 'S') { }
1697 1 9 unless ($$self{'_DocOpen'})
1706 9 0 if ($cb_Notation)
1711 1 8 if (@$plist)
1719 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' ? :
1748 1163 1882 if ($stage == 1) { }
1378 504 elsif ($stage == 2) { }
1749 0 1163 if ($tp eq 'DTD') { }
40 1123 elsif ($pl eq 'S') { }
1757 77 1301 if ($pl eq 'S')
1762 1123 1922 if ($stage == 1) { }
1301 621 elsif ($stage == 2) { }
593 28 elsif ($stage == 3) { }
28 0 elsif ($stage == 4) { }
1763 0 880 unless ($pl eq 'X' or $pl eq 'C' or $pl eq '!')
1766 243 880 if ($pl eq 'X')
1771 0 813 unless ($tp eq 'DTD' or $pl eq 'C' or $pl eq '!')
1776 0 325 unless ($tp eq 'TAG' or $tp eq 'PRC' or $tp eq 'TXT')
1779 78 515 if ($pl eq 'E' and $$self{'_Scount'} == 0)
1784 1 27 unless ($pl eq 'C')
1802 421 3452 if ($emit =~ /\n ([^\n]*) \z/msux) { }
1813 4 77 if ($$self{'_Action'} eq 'F')
1817 1 76 if ($$self{'_Action'} eq 'G')
1821 1 75 if (@{$$self{'_Stack'};})
1825 0 75 unless ($$self{'_Scount'} == 0)
1829 1 74 unless ($$self{'_Text'} eq '')