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 595 $padname and not $padname->isa('B::SPECIAL')
181 591 3 1 $p{'no_fakes'} and $padname->FLAGS & 16777216
262 2 57 3 $padname->FLAGS & 16777216 and $store->{'inner'}->outid > 1
319 46 0 4 ref $ref eq 'SCALAR' and not $$ref
340 0 0 0 ref $ref eq 'SCALAR' and not $$ref
378 65 3 0 not defined $ref and $access == 2 || $access == 3 || $access == 4 || $access == 9 || $access == 10 || $access == 11
426 217 18 0 is_unop($op, 'null') and is_svop($op->first, 'gvsv') || is_padop($op->first, 'gvsv')
217 4 13 is_unop($op, 'null') and is_unop_aux($op->first, 'multideref')
219 0 2 $p{'eval'} and is_binop($op, 'concat')
219 0 0 $p{'eval'} and is_unop_aux($op, 'multiconcat')
594 357 23 0 $p{'lvalue'} and is_unop($op, 'rv2cv')
599 290 4 86 $S->{'parsing_return'} and not $S->{'inside_aggregate'}
612 5 22 0 $S->{'tabs'} and keys %{$$S{'tabs'};}
27 0 0 $S->{'vars'} and keys %{$$S{'vars'};}
659 0 1 215 $c and $c eq 'attributes'
683 201 1 1 lc $attr[0] eq 'table' and @attr > 1
831 24 0 4 not defined $placeholder and $S->{'gen_args'}{'inline'}
852 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')
956 0 0 83 $gv and $$gv
959 2 0 81 $p{'get_name'} and $gv->isa('B::IV')
961 81 0 0 ref $subref eq 'REF' and ref $$subref eq 'CODE'
1061 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')
1077 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')
1126 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'}
1137 15 0 12 is_listop($op->last, 'list') and is_pushmark_or_padrange($op->last->first)
15 0 12 is_listop($op->last, 'list') and is_pushmark_or_padrange($op->last->first) and is_unop($op->last->first->sibling, 'entersub')
1142 0 0 2 is_unop($op->first, 'entersub') and my $sql = try_parse_funcall($S, $op->first, 'select', 0)
1195 0 1174 1 not is_null($op) and is_op($op, 'null')
1239 9 0 0 ($S->{'gen_args'}{'flavor'} || '') eq 'oracle' && $func eq 'except'
1248 0 0 1 defined $r and $r eq ''
1274 10 12 4 $S->{'parsing_return'} and $S->{'aggregates'}{lc $func}
1278 16 9 1 not $S->{'parsing_return'} and $S->{'aggregates'}{lc $func}
1285 10 12 4 $S->{'parsing_return'} and $S->{'aggregates'}{lc $func}
1290 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
1292 19 3 3 lc $func eq 'extract' and @terms == 2
1298 23 0 2 lc $func eq 'cast' and @terms == 2
1328 6 0 2 is_unop($c, 'rv2hv') and is_op($c->first, 'padsv')
1405 202 11 38 $op->flags & 64 and not $S->{'parsing_return'}
213 27 11 $op->flags & 64 and not $S->{'parsing_return'} and $binop2_map{$op->name}
38 0 11 $op->flags & 64 and not $S->{'parsing_return'} and $binop2_map{$op->name} and is_unop($op->first, 'entersub')
1504 0 0 0 @args and is_op($args[0], 'null')
1694 0 0 4 $logop and is_logop($logop, 'regcomp')
1711 0 0 0 not $case and $can_like
1820 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])
1839 1 0 3 exists $join_map{$op[1]->name} and $join_map{$op[1]->name} eq 'inner'
1844 1 0 30 is_unop($op[2]) and $op[2]->name eq 'entersub'
2006 0 1 3 $op and not is_null($op)
2043 5 0 6 not $sv and is_op($op, 'padsv')
2050 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
2070 0 1 3 is_op($op->last, 'padsv') and $varn = padname($S, $op->last, 'no_fakes', 1)
2126 21 1 6 not $label and lc $lop->label eq 'table'
2166 2141 0 8 is_binop($op, 'leaveloop') and is_loop($op->first, 'enterloop')
2141 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]
621 15 340 $prefix ||= ''
867 12 0 $S->{'gen_args'}{'flavor'} || ''
997 37 0 get_gv_name($S, $dbfetch) // ''
1005 2 4 $opt{'select'} //= 1
1009 6 0 $S->{'gen_args'}{'flavor'} || ''
1026 10 0 $list //= []
1034 10 0 $S->{'gen_args'}{'flavor'} || ''
1039 30 0 ref $val // ''
1066 1 0 $ary // \[]
1290 26 0 $S->{'gen_args'}{'flavor'} || ''
1440 0 0 $S->{'gen_args'}{'flavor'} || ''
1471 2 0 $S->{'gen_args'}{'flavor'} || ''
1569 0 0 $opt{'multiconcat'} // {}
1628 11 0 $S->{'gen_args'}{'flavor'} || ''
1702 19 0 $S->{'gen_args'}{'flavor'} || ''

or 3 conditions

line l !l&&r !l&&!r condition
109 1206 1 2201 is_op($op, 'pushmark') || is_op($op, 'padrange')
133 0 2 0 is_unop($op, 'method') or is_methop($op, 'method')
312 9 0 46 $access == 12 or $access == 5
9 31 15 $access == 12 or $access == 5 or $access == 10
31 10 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 45 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 20 $access == 12 || $access == 9 || $access == 10 || $access == 8 || $access == 11 || $access == 13
378 2 0 1 $access == 2 || $access == 3 || $access == 4 || $access == 9 || $access == 10 || $access == 11
390 0 0 66 $index == 0 or $index & 64
426 1 0 235 is_svop($op, 'gvsv') or is_padop($op, 'gvsv')
1 0 17 is_svop($op->first, 'gvsv') || is_padop($op->first, 'gvsv')
2 0 217 is_svop($op, 'aelemfast') or is_padop($op, 'aelemfast')
452 0 0 0 is_svop($op, 'gv') or is_padop($op, 'gv')
0 0 0 is_binop($op, 'helem') or is_binop($op, 'aelem')
487 0 0 0 is_svop($op, 'gv') or is_padop($op, 'gv')
0 0 0 is_binop($op, 'helem') or is_binop($op, 'aelem')
511 0 2 2 is_null($args[-1]) or is_null($args[-1]->sibling)
612 0 0 27 $S->{'tabs'} and keys %{$$S{'tabs'};} or $S->{'vars'} and keys %{$$S{'vars'};}
674 215 0 0 is_methop($op, 'method_named') or is_svop($op, 'method_named')
791 0 7 340 $S->{'operation'} eq 'delete' or $S->{'operation'} eq 'update'
852 55 0 43 $sv->isa('B::IV') and not $sv->isa('B::PVIV') or $sv->isa('B::NV') and not $sv->isa('B::PVNV')
868 6 0 1 $flavor eq 'pg' or $flavor eq 'pglite'
945 81 2 0 is_svop($op, 'gv') or is_svop($op, 'gvsv')
0 0 0 is_padop($op, 'gv') or is_padop($op, 'gvsv')
989 0 37 6 is_unop($rg, 'refgen') or is_unop($rg, 'srefgen')
1034 0 10 0 $S->{'gen_args'}{'in_arg_limit'} // (($S->{'gen_args'}{'flavor'} || '') eq 'oracle' ? 500 : 2000000000)
1061 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')
1077 7 0 0 $sv->isa('B::IV') and not $sv->isa('B::PVIV') or $sv->isa('B::NV') and not $sv->isa('B::PVNV')
1171 0 6 7 is_unop($op->first, 'srefgen') or is_listop($op->first, 'anonhash')
1214 44 0 347 is_svop($op, 'gv') or is_padop($op, 'gv')
1220 7 2 0 @args == 1 or @args == 2
1222 0 9 0 is_unop($rg, 'refgen') or is_unop($rg, 'srefgen')
1259 0 2 0 is_unop($rg, 'refgen') or is_unop($rg, 'srefgen')
1441 0 0 0 $flavor eq 'pg' or $flavor eq 'pglite'
1452 13 0 227 is_binop($op, 'concat') or is_unop_aux($op, 'multiconcat')
1462 138 8 27 $sqlop eq '=' or $sqlop eq '<>'
1472 1 0 1 $flavor eq 'pg' or $flavor eq 'pglite'
1503 0 0 0 is_null($args[-1]) or is_null($args[-1]->sibling)
1599 0 0 6 $S->{'operation'} eq 'delete' or $S->{'operation'} eq 'update'
1615 0 0 10 $S->{'operation'} eq 'delete' or $S->{'operation'} eq 'update'
1709 18 0 1 $flavor eq 'pg' or $flavor eq 'pglite'
1777 18 1 0 $flavor eq 'pg' or $flavor eq 'oracle'
1882 3 1 25 scalar grep({@{$S2->{$_};};} 'group_by', 'order_by', 'autogroup_by', 'ret_values', 'joins') or $S2->{'alias'} ne $S->{'alias'}
1951 1 0 8 is_binop($op) or $op->name eq 'sassign'
2 0 0 is_listop($op, 'leave') or is_listop($op, 'scope')
1982 0 0 4 $S->{'operation'} eq 'delete' || $S->{'operation'} eq 'update'
2002 3 3 3 is_listop($op, 'list') or is_listop($op, 'sort')