Condition Coverage

blib/lib/SQL/SplitStatement.pm
Criterion Covered Total %
condition 145 176 82.3


and 3 conditions

line !l l&&!r l&&r condition
169 56692 739 758 $self->_is_comment($token) and not $self->keep_comments
193 30133 7 336 $prev_token =~ /$AS_RE/ and not $dollar_quote
30140 295 41 $prev_token =~ /$AS_RE/ and not $dollar_quote and $dollar_quote = $self->_dollar_quote_open_found($token)
30394 0 41 $token =~ /$DELIMITER_RE/ and not $prev_token
24951 28 3 $token =~ /$BODY_RE/ and $prev_token =~ /$TYPE_RE/
14497 8830 104 $inside_crud and my $placeholder_token = $self->_questionmark_placeholder_found($token) || $self->_named_placeholder_found($token) || $self->_dollar_placeholder_found($token)
244 323 10 140 $prev_keyword =~ /$PROCEDURE_FUNCTION_RE|$BODY_RE/ and not $inside_block
333 0 140 $prev_keyword =~ /$PROCEDURE_FUNCTION_RE|$BODY_RE/ and not $inside_block and not $prev_token =~ /$pre_identifier_RE/
252 459 10 4 $inside_declare and $inside_cursor
262 20 0 13 $inside_declare and not $prev_token =~ /$DROP_RE/
20 0 13 $inside_declare and not $prev_token =~ /$DROP_RE/ and not $prev_token =~ /$pre_identifier_RE/
281 56 0 35 $inside_sub and $inside_is_as
293 111 0 127 $inside_sub and @sub_names
111 51 76 $inside_sub and @sub_names and $name eq $sub_names[-1]
298 138 71 29 $inside_package and $name eq $package_name
328 21422 90 1815 $terminator_found and $terminator_found == 1
21512 0 1815 $terminator_found and $terminator_found == 1 and not $inside_brackets
332 1134 608 73 $inside_sub and not $inside_is_as
1742 0 73 $inside_sub and not $inside_is_as and not $inside_block
338 1462 320 33 $inside_declare and $inside_cursor
1782 24 9 $inside_declare and $inside_cursor and not $inside_is_cursor
348 0 739 29737 $token =~ /\S/ and not $self->_is_comment($token)
353 28530 1873 32 $terminator_found and $terminator_found == 3
364 0 55 1549 $terminator_found and $terminator_found == 1
55 876 673 $terminator_found and $terminator_found == 1 and $inside_block || $inside_sub || $inside_declare || $inside_package || $inside_crud
876 0 673 $terminator_found and $terminator_found == 1 and $inside_block || $inside_sub || $inside_declare || $inside_package || $inside_crud and not $inside_grant_revoke
876 0 673 $terminator_found and $terminator_found == 1 and $inside_block || $inside_sub || $inside_declare || $inside_package || $inside_crud and not $inside_grant_revoke and not $extra_end_found
427 60 489 14 $terminator->[0] && $terminator->[0] == 3
472 25934 18 216 $token =~ /$BEGIN_RE/ && !($prev_token =~ /$pre_identifier_RE/) && !($self->_peek_at_next_significant_token =~ /$transaction_RE/)
482 0 252 90 defined $next_token && $next_token =~ /$procedural_END_RE/
24021 90 252 $token =~ /$END_RE/ and not defined $next_token && $next_token =~ /$procedural_END_RE/
538 0 0 8 $tokens->[0] =~ /^$inner_identifier_RE$/ and $tokens->[1] eq '$'
657 125 1846 19917 $token ne '/' and $token ne ';'
668 0 28 0 $next_token =~ /^\s+$/ and $next_next_token eq "\n"
683 3 0 36 $self->slash_terminates and $current_statement =~ /\n\s*\z/
3 6 30 $self->slash_terminates and $current_statement =~ /\n\s*\z/ and $next_significant_token_idx == -1 || $tokens->[$next_significant_token_idx] ne '(' && !($tokens->[$next_significant_token_idx] =~ /^\d/) && !($tokens->[$next_significant_token_idx] eq '.' && $$tokens[$next_significant_token_idx + 1] =~ /^\d/)
705 1788 58 16303 $i <= 8 and defined $tokens->[$i]
708 0 52 1794 $token eq ';' and not $next_code_portion =~ m[\A\s*\n\s*/\s*$]m
52 6 1788 $token eq ';' and not $next_code_portion =~ m[\A\s*\n\s*/\s*$]m and not $next_code_portion =~ m[\A\s*\n\s*\.\s*\n\s*/\s*$]m
723 928 2 923 /\S/ and not $self->_is_comment($_)
739 0 0 0 /\S/ and not $self->_is_comment($_)

or 2 conditions

line l !l condition
105 11 34 $_[0] || {}

or 3 conditions

line l !l&&r !l&&!r condition
193 253 0 24982 $token =~ /$PROCEDURE_FUNCTION_RE/ or $token =~ /$BODY_RE/ and $prev_token =~ /$TYPE_RE/
38 66 8830 $self->_questionmark_placeholder_found($token) || $self->_named_placeholder_found($token) || $self->_dollar_placeholder_found($token)
233 0 10 246 $inside_block or $inside_brackets
10 14 232 $inside_block or $inside_brackets or $prev_token =~ /$DROP_RE/
14 5 227 $inside_block or $inside_brackets or $prev_token =~ /$DROP_RE/ or $prev_token =~ /$pre_identifier_RE/
257 31 10 61 $inside_block or $prev_token =~ /$pre_identifier_RE/
315 104 0 0 not $self->_custom_delimiter or $self->_custom_delimiter ne $placeholder_token
353 41 1848 28587 $custom_delimiter_def_found or $terminator_found and $terminator_found == 3
360 28530 269 1604 not $terminator_found or $dollar_quote
28799 0 1604 not $terminator_found or $dollar_quote or $inside_brackets
269 0 1604 not $terminator_found or $dollar_quote or $inside_brackets or $self->_custom_delimiter
364 168 0 876 $inside_block || $inside_sub || $inside_declare || $inside_package || $inside_crud
380 876 55 73 $terminator_found == 1 or $terminator_found == 2
668 0 97 28 not defined $next_token or $next_token eq "\n"
97 0 28 not defined $next_token or $next_token eq "\n" or $next_token =~ /^\s+$/ and $next_next_token eq "\n"
673 52 6 39 $current_statement =~ /;\s*\n\s*\z/ or $current_statement =~ /\n\s*\.\s*\n\s*\z/
683 3 28 5 $next_significant_token_idx == -1 || $tokens->[$next_significant_token_idx] ne '(' && !($tokens->[$next_significant_token_idx] =~ /^\d/) && !($tokens->[$next_significant_token_idx] eq '.' && $$tokens[$next_significant_token_idx + 1] =~ /^\d/)