Condition Coverage

blib/lib/IPC/Shareable.pm
Criterion Covered Total %
condition 138 212 65.0


and 3 conditions

line !l l&&!r l&&r condition
34 0 0 79 !$ENV{'IPC_SHAREABLE_NO_XS'} && eval { do { require XSLoader; XSLoader::load('IPC::Shareable', $VERSION); 1 } }
183 364 0 93 ref $val and $knot->_need_tie($val, $key)
188 138 0 36 ref $val and $knot->_need_tie($val, $i)
193 73 1 14 ref $val and $knot->_need_tie($val)
240 463 0 503 ref $val and my $inner = _is_child($val)
264 25 0 2 ref $val and my $child = _is_child($val)
273 20 0 0 ref $val and my $child = _is_child($val)
300 4 0 2 ref $val and my $child = _is_child($val)
498 131 5 1 defined $code and ref $code ne "CODE"
533 46 0 90 $flags == 2 and $lock_success
649 7 0 18 defined $_[0] and not ref $_[0]
7 0 18 defined $_[0] and not ref $_[0] and UNIVERSAL::isa($_[0], __PACKAGE__)
694 0 0 0 $^O eq 'freebsd' && $IPC::Shareable::Config{'longsize'} == 8
816 0 0 1 $child_knot and $child_knot->{'_key_hex'}
823 0 0 5 $knot_filter and $knot_filter->{'_key_hex'}
1017 0 0 8 $stored_key and $stored_key == $protect_key
1076 0 332 1 $sem_remove_status != 1 and $sem_remove_status ne "0 but true"
1086 0 1 332 $seg_removed and $sem_removed
1152 1141 0 51 ref $val and _is_child($val)
1160 63 0 55 ref $val && _is_child($val)
1172 298 0 20 ref $val and _is_child($val)
1179 3 0 37 ref $_ && _is_child($_)
1189 8 0 6 ref $val && _is_child($val)
1219 0 822 375 defined $knot and index($json, "\"__ics__\"") != -1
1222 0 1096 101 defined $knot and $knot->{'_type_int'} == 2
1096 17 84 defined $knot and $knot->{'_type_int'} == 2 and ref $data eq "HASH"
1225 1 0 43 defined $prev && ref $prev
1254 204 44 365 ref $data->{$key} eq "HASH" and exists $data->{$key}{'__ics__'}
1266 21 0 171 ref $data->[$i] eq "HASH" and exists $data->[$i]{'__ics__'}
1268 19 1 151 $prev_is_array && $i <= $prev_max
1279 2 0 518 ref $existing && _is_child($existing)
1280 2 8 510 $inner and $inner->{'_key'} == $info->{'child_key'}
1369 1 501 2 $knot->attributes("limit") and $shm_size > 1073741824
1419 0 1 1 $knot->attributes("create") and $knot->attributes("exclusive")
1476 0 0 3 $thaw_ok and defined $storable_data
1522 0 113 3 defined $stored_protected and $stored_protected != 0
1535 85 10 49 $parent->{'_key'} == IPC_PRIVATE() and $parent->attributes("serializer") ne "json"
1679 0 0 29 $child and $child->seg
1717 2 0 7 $child_type eq "HASH" and tied %{$$data{$id};}
2 0 0 $child_type eq "ARRAY" and tied @{$$data{$id};}
1729 3 0 0 $child_type eq "HASH" and tied %{$$data[$id];}
0 0 3 $child_type eq "ARRAY" and tied @{$$data[$id];}
1760 0 0 1 $child && $child->{'_key_hex'}
1780 0 0 0 $child && $child->{'_key_hex'}
1860 94 1 104 not $verified_exclusive and $check_count < 10

or 2 conditions

line l !l condition
34 79 0 !$ENV{'IPC_SHAREABLE_NO_XS'} && eval { do { require XSLoader; XSLoader::load('IPC::Shareable', $VERSION); 1 } } // 0
465 4 3 $opts{'var'} || 'HASH'
556 123 0 $knot->{'_locked_children'} // []
733 2 1 $int_to_hex{$k_int} // (next)
803 8 0 builtin::reftype($data) // ""
811 1 0 builtin::reftype($v) // ""
829 6 0 $segs->{$h}{'child_keys'} // []
830 1 5 $extra_child_keys{$h} // []
860 6 0 $segs->{$hex} // {}
867 6 0 $id_by_hex{$hex} // "?"
877 6 0 $sem->id // "?"
878 6 0 $sem->getval(0) // "?"
879 6 0 $sem->getval(1) // "?"
880 6 0 $sem->getval(2) // "?"
881 6 0 $sem->getval(3) // "?"
903 6 0 $seg->{'child_keys'} // []
904 1 5 $extra_child_keys{$hex} // []
925 1 5 delete $opts{'_proc_dir'} // "/proc/sys/kernel"
1557 143 0 builtin::reftype($val) || ''
1668 173 4 builtin::reftype($data) // ""
1711 120 3 builtin::reftype($parent->{'_data'}) || ''
1716 7 2 builtin::reftype($data->{$id}) || ''
1728 3 0 builtin::reftype($data->[$id]) || ''
1742 6 0 builtin::reftype($data) // ""
1754 1 0 builtin::reftype($v) // ""
1774 0 0 builtin::reftype($v) // ""
1811 404 101 $knot->attributes('key') || ''
1999 212 292 $opts->{'magic'} || 0

or 3 conditions

line l !l&&r !l&&!r condition
587 1 2 5 not defined $_[0] or $_[0] ne __PACKAGE__
649 1 20 5 ref $_[0] or defined $_[0] and not ref $_[0] and UNIVERSAL::isa($_[0], __PACKAGE__)
1187 8 6 1 $type eq "SCALAR" or $type eq "REF"
1439 116 372 1 "IPC::Semaphore"->new($key, 0, $seg->flags & 511) // "IPC::Semaphore"->new($key, 4, $seg->flags)
1509 0 371 0 $process_register{$knot->seg->id} ||= $knot
1811 16 505 0 $key_str //= $knot->attributes('key') || ''
1998 213 291 0 $opts->{'owner'} || $$