Condition Coverage

blib/lib/Object/InsideOut.pm
Criterion Covered Total %
condition 164 291 56.3


and 3 conditions

line !l l&&!r l&&r condition
332 2590 7 3 my($restrict) = grep(/^RESTRICT(?:ED)?$/i, @attrs) and grep {$_ =~ /^CHAIN(?:ED)?$/i unless $_ =~ /^CUM(?:ULATIVE)?$/i;} @attrs
347 162 0 483 $attr =~ /^METHOD/ and $attribute ne 'method'
374 31 2 8 $arg && $arg =~ /BOTTOM/i
378 18 0 11 $arg && $arg =~ /BOTTOM/i
460 2600 0 0 @unused_attrs and 'Attribute::Handlers::UNIVERSAL'->can('MODIFY_CODE_ATTRIBUTES')
565 71 0 0 @unused_attrs and 'Attribute::Handlers::UNIVERSAL'->can('MODIFY_HASH_ATTRIBUTES')
662 195 0 0 @unused_attrs and 'Attribute::Handlers::UNIVERSAL'->can('MODIFY_ARRAY_ATTRIBUTES')
782 19 52 165 $id_subs->{$class}{'code'} == \&Object::InsideOut::_ID and not exists $$obj_ids{$id_subs->{$class}{'pkg'}}
850 0 0 0 $id_subs->{$class}{'code'} == \&Object::InsideOut::_ID && $id_subs->{$pkg}{'code'} == \&Object::InsideOut::_ID
920 0 0 0 exists $id_subs->{$flag_class} and $id_subs->{$flag_class}{'code'} == \&Object::InsideOut::_ID
940 0 0 0 not exists $GBL{'share'}{'obj'} and $] < 5.008009 || $threads::shared::VERSION lt '1.15'
1064 1497 431 0 *{$class_sym;}{'CODE'} and *{$class_sym;}{'CODE'} != \&{$sym;}
1107 53 0 2 defined $Want::VERSION && $Want::VERSION >= 0.12
1120 46 322 2 ref $fld eq 'ARRAY' and $do_ho
1137 368 0 0 is_sharing($pkg) and not threads::shared::is_shared($fld)
1240 0 0 0 $sharing and $Config::Config{'useithreads'}
0 0 0 $sharing and $Config::Config{'useithreads'} and $threads::shared::threads_shared
0 0 0 $sharing and $Config::Config{'useithreads'} and $threads::shared::threads_shared and $threads::shared::VERSION ge '0.95'
1256 0 0 0 exists $sh_cl->{$class} && $sh_cl->{$class}{'share'}
1281 0 0 0 $Config::Config{'useithreads'} and $threads::shared::threads_shared
0 0 0 $Config::Config{'useithreads'} and $threads::shared::threads_shared and not $GBL{'share'}{'ok'}
1895 269 71 0 $fld_type ne 'ARRAY' and $fld_type ne 'HASH'
1903 337 3 0 $weak and not ref $data
1910 340 0 0 $GBL{'share'}{'ok'} and threads::shared::is_shared($field)
1953 228 0 0 $Config::Config{'useithreads'} and $threads::shared::threads_shared
0 0 0 $Config::Config{'useithreads'} and $threads::shared::threads_shared and not $GBL{'term'}
2167 214 4 0 exists $dump->{$name} and $fld != $dump->{$name}{'fld'}
2255 9 18 13 not /^(?:new|clone|meta|set)$/ and $methods->{$_}{'class'} eq $class_delegated_to
2270 109 2 5 $kind =~ /^Type/i and $decl =~ /^(?:sub|\\&)/
2381 52 10 0 ref $val and ref $val ne 'CODE'
2458 0 5 9 $val and not &Scalar::Util::looks_like_number($val)
2513 46 0 14 $fld_type->{$field_ref} and not exists $g_args->{$arg}{'_T'}
2568 139 30 0 $return || $lvalue and not $set
2618 3 2 0 $type ne 'list' and $type ne 'ARRAY'
164 5 0 $subtype and ($type ne 'list' and $type ne 'ARRAY')
2628 3 27 88 $get && $get eq $set
2643 7 132 30 $get and !$set || $get ne $set
2680 3 24 77 $get and $get eq $set
2758 7 132 30 $get and !$set || $get ne $set
2866 19 2 3 $type eq 'HASH' and not $is_ref

or 2 conditions

line l !l condition
196 1 1 $1 || ''
208 1 0 $1 || ''
349 1 4 $arg || 'HIDDEN'
354 0 1 $arg || 'HIDDEN'
358 2 19 $arg || 'HIDDEN'
362 0 1 $arg || 'HIDDEN'
366 0 2 $arg || 'HIDDEN'
370 0 13 $arg || 'HIDDEN'
383 0 2 $arg || 'HIDDEN'
387 0 2 $arg || 'HIDDEN'
427 0 3 $arg || 'HIDDEN'
432 0 1 $arg || 'HIDDEN'
999 4 9 $info->{'exempt'} || ''
1016 1 1428 $info->{'exempt'} || ''
2535 171 64 $dump->{$pkg} ||= {}

or 3 conditions

line l !l&&r !l&&!r condition
150 0 0 194 not $class or $class eq 'main'
835 0 0 662 $id_subs->{$class}{'code'} != $id_subs->{$pkg}{'code'} or $id_subs->{$class}{'pkg'} ne $id_subs->{$pkg}{'pkg'}
839 0 0 0 $id_subs->{$class}{'code'} == \&Object::InsideOut::_ID or $id_subs->{$pkg}{'code'} == \&Object::InsideOut::_ID
940 0 0 0 $] < 5.008009 || $threads::shared::VERSION lt '1.15'
964 0 479 0 $info->{'name'} ||= sub_name($info->{'code'}, ':METHOD', $info->{'loc'})
972 0 1848 0 $info->{'name'} ||= sub_name($info->{'code'}, ':SUB', $info->{'loc'})
980 0 82 0 $info->{'name'} ||= sub_name($info->{'code'}, ':MergeArgs', $info->{'loc'})
995 5 8 0 $info->{'name'} ||= sub_name($info->{'code'}, ':RESTRICTED', $info->{'loc'})
1012 1417 12 0 $info->{'name'} ||= sub_name($info->{'code'}, ':PRIVATE', $info->{'loc'})
1029 0 48 0 $info->{'name'} ||= sub_name($info->{'code'}, ':HIDDEN', $info->{'loc'})
1073 187 13 640 $sym eq 'clone' or $sym eq 'dump'
8 32 600 $sym =~ /^STORABLE_/ or $sym eq 'AUTOLOAD'
39 187 374 $sym =~ /herit/ or $sym eq 'set'
1343 0 0 0 not $g_id->[$tid] or $g_id->[$tid] < $$obj
1517 0 0 3 $@ or @errs
1518 0 0 0 $@ || join(' | ', @errs)
1567 0 2 14 $@ or @errs
1568 0 2 0 $@ || join(' | ', @errs)
1671 0 219 0 ref $thing || $thing
1690 2 110 107 $cache{'pre'} or not $have_cache
1710 22 110 87 $cache{'def'} or not $have_cache
1822 4 1 2 $is_deep || $deep->{$fld}
1858 10 9 0 ref $_[0] || $_[0]
1895 0 0 340 not $fld_type or $fld_type ne 'ARRAY' and $fld_type ne 'HASH'
1994 0 0 0 $_ == 0 or 'threads'->object($_)
2069 58 1 169 $err or $@
2305 0 0 235 $@ or @errs
2306 0 0 0 $@ || join(' | ', @errs)
2341 0 0 120 $key_uc eq 'COPY' or $key_uc eq 'CLONE'
2381 0 0 62 not $val or ref $val and ref $val ne 'CODE'
2489 0 0 222 not defined $val or $val eq ''
2498 22 38 175 $arg or $kind =~ /^ARG$/i
2538 0 4 27 $return || $lvalue || $delegate
2546 24 0 39 $get or $set
0 0 39 $get or $set or $return
0 0 39 $get or $set or $return or $lvalue
2568 28 2 139 $return || $lvalue
2590 141 9 19 not defined $return or $return eq 'NEW'
8 2 9 $return eq 'OLD' or $return =~ /^PREV(?:IOUS)?$/
10 0 9 $return eq 'OLD' or $return =~ /^PREV(?:IOUS)?$/ or $return eq 'PRIOR'
3 6 0 $return eq 'SELF' or $return =~ /^OBJ(?:ECT)?$/
2643 47 27 88 !$set || $get ne $set
2758 47 27 88 !$set || $get ne $set
2807 0 0 169 $@ or @errs
2808 0 0 0 $@ || join(' | ', @errs)
3053 2 11 26 grep {$_ eq $caller;} @$exempt or $caller->isa($pkg)
13 22 4 grep {$_ eq $caller;} @$exempt or $caller->isa($pkg) or $pkg->isa($caller)