Condition Coverage

blib/lib/DBIx/Perlish/Parse.pm
Criterion Covered Total %
condition 219 382 57.3


and 3 conditions

line !l l&&!r l&&r condition
180 0 0 591 $padname and not $padname->isa('B::SPECIAL')
181 587 3 1 $p{'no_fakes'} and $padname->FLAGS & 16777216
262 2 53 3 $padname->FLAGS & 16777216 and $store->{'inner'}->outid > 1
319 42 0 4 ref $ref eq 'SCALAR' and not $$ref
340 0 0 0 ref $ref eq 'SCALAR' and not $$ref
380 61 3 0 not defined $ref and $access == 2 || $access == 3 || $access == 4 || $access == 9 || $access == 10 || $access == 11
428 215 16 0 is_unop($op, 'null') and is_svop($op->first, 'gvsv') || is_padop($op->first, 'gvsv')
215 4 11 is_unop($op, 'null') and is_unop_aux($op->first, 'multideref')
217 0 2 $p{'eval'} and is_binop($op, 'concat')
217 0 0 $p{'eval'} and is_unop_aux($op, 'multiconcat')
596 355 23 0 $p{'lvalue'} and is_unop($op, 'rv2cv')
601 288 4 86 $S->{'parsing_return'} and not $S->{'inside_aggregate'}
614 5 22 0 $S->{'tabs'} and keys %{$$S{'tabs'};}
27 0 0 $S->{'vars'} and keys %{$$S{'vars'};}
661 0 1 213 $c and $c eq 'attributes'
685 201 1 1 lc $attr[0] eq 'table' and @attr > 1
833 24 0 4 not defined $placeholder and $S->{'gen_args'}{'inline'}
854 43 0 55 $sv->isa('B::IV') and not $sv->isa('B::PVIV')
43 0 0 $sv->isa('B::NV') and not $sv->isa('B::PVNV')
958 0 0 83 $gv and $$gv
961 2 0 81 $p{'get_name'} and $gv->isa('B::IV')
963 81 0 0 ref $subref eq 'REF' and ref $$subref eq 'CODE'
1063 12 0 1 is_unop($sub, 'rv2av') and is_op($sub->first, 'padsv')
9 0 0 is_unop($sub, 'srefgen') and is_unop($sub->first, 'null')
9 0 0 is_unop($sub, 'srefgen') and is_unop($sub->first, 'null') and is_listop($sub->first->first, 'anonlist')
1079 0 0 7 $sv->isa('B::IV') and not $sv->isa('B::PVIV')
0 0 0 $sv->isa('B::NV') and not $sv->isa('B::PVNV')
1128 3 5 2 $nret != 1 and not $p{'returns_dont_care'}
8 0 2 $nret != 1 and not $p{'returns_dont_care'} and not $flags{'returns_dont_care'}
1139 15 0 10 is_listop($op->last, 'list') and is_pushmark_or_padrange($op->last->first)
15 0 10 is_listop($op->last, 'list') and is_pushmark_or_padrange($op->last->first) and is_unop($op->last->first->sibling, 'entersub')
1144 0 0 2 is_unop($op->first, 'entersub') and my $sql = try_parse_funcall($S, $op->first, 'select', 0)
1197 0 1168 1 not is_null($op) and is_op($op, 'null')
1241 9 0 0 ($S->{'gen_args'}{'flavor'} || '') eq 'oracle' && $func eq 'except'
1250 0 0 1 defined $r and $r eq ''
1276 10 12 4 $S->{'parsing_return'} and $S->{'aggregates'}{lc $func}
1280 16 9 1 not $S->{'parsing_return'} and $S->{'aggregates'}{lc $func}
1287 10 12 4 $S->{'parsing_return'} and $S->{'aggregates'}{lc $func}
1292 22 3 1 ($S->{'gen_args'}{'flavor'} || '') eq 'oracle' and lc $func eq 'sysdate'
25 0 1 ($S->{'gen_args'}{'flavor'} || '') eq 'oracle' and lc $func eq 'sysdate' and not @terms
1294 19 3 3 lc $func eq 'extract' and @terms == 2
1300 23 0 2 lc $func eq 'cast' and @terms == 2
1330 6 0 2 is_unop($c, 'rv2hv') and is_op($c->first, 'padsv')
1407 200 11 36 $op->flags & 64 and not $S->{'parsing_return'}
211 25 11 $op->flags & 64 and not $S->{'parsing_return'} and $binop2_map{$op->name}
36 0 11 $op->flags & 64 and not $S->{'parsing_return'} and $binop2_map{$op->name} and is_unop($op->first, 'entersub')
1506 0 0 0 @args and is_op($args[0], 'null')
1696 0 0 4 $logop and is_logop($logop, 'regcomp')
1713 0 0 0 not $case and $can_like
1822 0 3 37 2 <= @op and 3 >= @op
3 0 37 2 <= @op and 3 >= @op and is_pushmark_or_padrange($op[0])
3 0 37 2 <= @op and 3 >= @op and is_pushmark_or_padrange($op[0]) and is_binop($op[1])
1841 1 0 3 exists $join_map{$op[1]->name} and $join_map{$op[1]->name} eq 'inner'
1846 1 0 30 is_unop($op[2]) and $op[2]->name eq 'entersub'
2008 0 1 3 $op and not is_null($op)
2045 5 0 6 not $sv and is_op($op, 'padsv')
2052 0 0 9 $sv and $const
0 2 7 $sv and $const and $const =~ /^\d+$/u
2 0 7 $sv and $const and $const =~ /^\d+$/u and $const > 0
2072 0 1 3 is_op($op->last, 'padsv') and $varn = padname($S, $op->last, 'no_fakes', 1)
2128 21 1 6 not $label and lc $lop->label eq 'table'
2168 2131 0 8 is_binop($op, 'leaveloop') and is_loop($op->first, 'enterloop')
2131 0 8 is_binop($op, 'leaveloop') and is_loop($op->first, 'enterloop') and is_listop($op->last, 'lineseq')

or 2 conditions

line l !l condition
197 12 22 $n[$k]->PVX // ''
271 2 12 $store->{'S'}{'padlists'}{$padlist->id} //= [$padlist->ARRAY]
623 15 338 $prefix ||= ''
869 12 0 $S->{'gen_args'}{'flavor'} || ''
999 37 0 get_gv_name($S, $dbfetch) // ''
1007 2 4 $opt{'select'} //= 1
1011 6 0 $S->{'gen_args'}{'flavor'} || ''
1028 10 0 $list //= []
1036 10 0 $S->{'gen_args'}{'flavor'} || ''
1041 30 0 ref $val // ''
1068 1 0 $ary // \[]
1292 26 0 $S->{'gen_args'}{'flavor'} || ''
1442 0 0 $S->{'gen_args'}{'flavor'} || ''
1473 2 0 $S->{'gen_args'}{'flavor'} || ''
1571 0 0 $opt{'multiconcat'} // {}
1630 11 0 $S->{'gen_args'}{'flavor'} || ''
1704 19 0 $S->{'gen_args'}{'flavor'} || ''

or 3 conditions

line l !l&&r !l&&!r condition
109 1198 1 2193 is_op($op, 'pushmark') || is_op($op, 'padrange')
133 0 2 0 is_unop($op, 'method') or is_methop($op, 'method')
312 9 0 42 $access == 12 or $access == 5
9 29 13 $access == 12 or $access == 5 or $access == 10
29 8 5 $access == 12 or $access == 5 or $access == 10 or $access == 3
0 1 4 $access == 8 or $access == 11
1 2 2 $access == 8 or $access == 11 or $access == 13
0 0 2 $access == 1 or $access == 4
0 2 0 $access == 1 or $access == 4 or $access == 6
0 0 0 $access == 2 or $access == 9
319 0 5 41 not $ref or ref $ref eq 'SCALAR' and not $$ref
340 0 0 0 not $ref or ref $ref eq 'SCALAR' and not $$ref
349 10 2 18 $access == 12 || $access == 9 || $access == 10 || $access == 8 || $access == 11 || $access == 13
380 2 0 1 $access == 2 || $access == 3 || $access == 4 || $access == 9 || $access == 10 || $access == 11
392 0 0 62 $index == 0 or $index & 64
428 1 0 231 is_svop($op, 'gvsv') or is_padop($op, 'gvsv')
1 0 15 is_svop($op->first, 'gvsv') || is_padop($op->first, 'gvsv')
2 0 215 is_svop($op, 'aelemfast') or is_padop($op, 'aelemfast')
454 0 0 0 is_svop($op, 'gv') or is_padop($op, 'gv')
0 0 0 is_binop($op, 'helem') or is_binop($op, 'aelem')
489 0 0 0 is_svop($op, 'gv') or is_padop($op, 'gv')
0 0 0 is_binop($op, 'helem') or is_binop($op, 'aelem')
513 0 2 2 is_null($args[-1]) or is_null($args[-1]->sibling)
614 0 0 27 $S->{'tabs'} and keys %{$$S{'tabs'};} or $S->{'vars'} and keys %{$$S{'vars'};}
676 213 0 0 is_methop($op, 'method_named') or is_svop($op, 'method_named')
793 0 7 338 $S->{'operation'} eq 'delete' or $S->{'operation'} eq 'update'
854 55 0 43 $sv->isa('B::IV') and not $sv->isa('B::PVIV') or $sv->isa('B::NV') and not $sv->isa('B::PVNV')
870 6 0 1 $flavor eq 'pg' or $flavor eq 'pglite'
947 81 2 0 is_svop($op, 'gv') or is_svop($op, 'gvsv')
0 0 0 is_padop($op, 'gv') or is_padop($op, 'gvsv')
991 0 37 6 is_unop($rg, 'refgen') or is_unop($rg, 'srefgen')
1036 0 10 0 $S->{'gen_args'}{'in_arg_limit'} // (($S->{'gen_args'}{'flavor'} || '') eq 'oracle' ? 500 : 2000000000)
1063 3 0 9 is_listop($sub, 'anonlist') or is_unop($sub, 'srefgen') and is_unop($sub->first, 'null') and is_listop($sub->first->first, 'anonlist')
1079 7 0 0 $sv->isa('B::IV') and not $sv->isa('B::PVIV') or $sv->isa('B::NV') and not $sv->isa('B::PVNV')
1173 0 6 7 is_unop($op->first, 'srefgen') or is_listop($op->first, 'anonhash')
1216 44 0 345 is_svop($op, 'gv') or is_padop($op, 'gv')
1222 7 2 0 @args == 1 or @args == 2
1224 0 9 0 is_unop($rg, 'refgen') or is_unop($rg, 'srefgen')
1261 0 2 0 is_unop($rg, 'refgen') or is_unop($rg, 'srefgen')
1443 0 0 0 $flavor eq 'pg' or $flavor eq 'pglite'
1454 13 0 223 is_binop($op, 'concat') or is_unop_aux($op, 'multiconcat')
1464 136 8 27 $sqlop eq '=' or $sqlop eq '<>'
1474 1 0 1 $flavor eq 'pg' or $flavor eq 'pglite'
1505 0 0 0 is_null($args[-1]) or is_null($args[-1]->sibling)
1601 0 0 6 $S->{'operation'} eq 'delete' or $S->{'operation'} eq 'update'
1617 0 0 10 $S->{'operation'} eq 'delete' or $S->{'operation'} eq 'update'
1711 18 0 1 $flavor eq 'pg' or $flavor eq 'pglite'
1779 18 1 0 $flavor eq 'pg' or $flavor eq 'oracle'
1884 3 1 25 scalar grep({@{$S2->{$_};};} 'group_by', 'order_by', 'autogroup_by', 'ret_values', 'joins') or $S2->{'alias'} ne $S->{'alias'}
1953 1 0 8 is_binop($op) or $op->name eq 'sassign'
2 0 0 is_listop($op, 'leave') or is_listop($op, 'scope')
1984 0 0 4 $S->{'operation'} eq 'delete' || $S->{'operation'} eq 'update'
2004 3 3 3 is_listop($op, 'list') or is_listop($op, 'sort')