Condition Coverage

blib/lib/IPC/Shareable.pm
Criterion Covered Total %
condition 167 250 66.8


and 3 conditions

line !l l&&!r l&&r condition
188 380 1 98 ref $val and $knot->_need_tie($val)
194 150 0 37 ref $val and $knot->_need_tie($val)
200 92 0 27 $knot->{'_data'} and ref $knot->{'_data'}
203 99 1 19 ref $val and $knot->_need_tie($val)
249 509 0 522 ref $val and my $inner = _is_child($val)
505 129 9 1 defined $code and ref $code ne "CODE"
518 0 2 1 $code and $flags == 2
549 49 0 86 $flags == 2 and $lock_success
49 81 5 $flags == 2 and $lock_success and $code
682 9 0 58 defined $_[0] and not ref $_[0]
9 23 35 defined $_[0] and not ref $_[0] and UNIVERSAL::isa($_[0], __PACKAGE__)
738 0 0 0 $^O eq 'freebsd' && $IPC::Shareable::Config{'longsize'} == 8
0 0 0 $^O eq 'openbsd' && $IPC::Shareable::Config{'longsize'} == 8
0 0 0 $^O eq 'dragonfly' && $IPC::Shareable::Config{'longsize'} == 8
900 0 0 1 $child_knot and $child_knot->{'_key_hex'}
909 0 0 5 $knot_filter and $knot_filter->{'_key_hex'}
1154 0 0 8 $stored_key and $stored_key == $protect_key
1213 0 384 1 $sem_remove_status != 1 and $sem_remove_status ne "0 but true"
1223 0 1 384 $seg_removed and $sem_removed
1234 1 1 85 defined $dist_name and length $dist_name
1240 5 0 6 @_ > 1 and not ref $_[0]
5 0 6 @_ > 1 and not ref $_[0] and defined $_[0]
0 0 6 @_ > 1 and not ref $_[0] and defined $_[0] and UNIVERSAL::isa($_[0], __PACKAGE__)
1244 0 0 11 defined $dist_name and length $dist_name
1303 0 0 6 defined $cpid and $cpid > 0
0 5 1 defined $cpid and $cpid > 0 and $cpid != $$
5 1 0 defined $cpid and $cpid > 0 and $cpid != $$ and kill 0, $cpid
1384 877 20 98 $knot->{'_type_int'} == 2 and ref $data eq "SCALAR"
1387 2 0 96 defined $val and not ref $val
1457 1171 0 76 ref $val and _is_child($val)
1469 80 0 80 ref $val && _is_child($val)
1483 339 0 27 ref $val and _is_child($val)
1493 9 0 44 ref $_ && _is_child($_)
1503 1 0 9 ref $val && _is_child($val)
1534 0 882 436 defined $knot and index($json, "\"__ics__\"") != -1
1541 0 1227 91 defined $knot and $knot->{'_type_int'} == 2
1227 17 74 defined $knot and $knot->{'_type_int'} == 2 and ref $data eq "HASH"
1544 1 0 49 defined $prev && ref $prev
1575 241 50 404 ref $data->{$key} eq "HASH" and exists $data->{$key}{'__ics__'}
1589 44 0 187 ref $data->[$i] eq "HASH" and exists $data->[$i]{'__ics__'}
1592 20 2 165 $prev_is_array && $i <= $prev_max
1603 3 0 569 ref $existing && _is_child($existing)
1604 3 8 561 $inner and $inner->{'_key'} == $info->{'child_key'}
1736 1 584 2 $knot->attributes("limit") and $shm_size > 1073741824
1787 0 1 1 $knot->attributes("create") and $knot->attributes("exclusive")
1878 0 0 4 $thaw_ok and defined $storable_data
1931 0 126 3 defined $stored_protected and $stored_protected != 0
1951 129 11 15 $parent->{'_key'} == IPC_PRIVATE() and $parent->attributes("serializer") ne "json"
2025 718 0 28 ref $val and my $child = _is_child($val)
2121 0 0 32 $child and $child->seg
2177 0 0 1 $child && $child->{'_key_hex'}
2197 0 0 0 $child && $child->{'_key_hex'}
2278 139 1 149 not $verified_exclusive and $check_count < 10
2466 303 284 4 $serializer ne "json" and $serializer ne "storable"
2476 3 244 340 $_testing_dist and not $testing_explicit

or 2 conditions

line l !l condition
472 4 3 $opts{'var'} || 'HASH'
567 122 0 $knot->{'_locked_children'} // []
783 2 24 $int_to_hex{$k_int} // (next)
878 8 0 builtin::reftype($data) // ""
887 1 0 builtin::reftype($v) // ""
918 6 0 $segs->{$h}{'child_keys'} // []
919 1 5 $extra_child_keys{$h} // []
955 6 0 $segs->{$hex} // {}
962 6 0 $id_by_hex{$hex} // "?"
974 6 0 $sem->id // "?"
975 6 0 $sem->getval(0) // "?"
976 6 0 $sem->getval(1) // "?"
977 6 0 $sem->getval(2) // "?"
978 6 0 $sem->getval(3) // "?"
1004 6 0 $seg->{'child_keys'} // []
1005 1 5 $extra_child_keys{$hex} // []
1030 1 58 delete $opts{'_proc_dir'} // "/proc/sys/kernel"
1973 154 0 builtin::reftype($val) || ''
2107 178 4 builtin::reftype($data) // ""
2159 6 0 builtin::reftype($data) // ""
2171 1 0 builtin::reftype($v) // ""
2191 0 0 builtin::reftype($v) // ""
2228 523 65 $knot->attributes('key') || ''
2423 442 0 $h || 1
2431 148 0 $sem->getval(4) // 0
2471 233 354 $opts->{'magic'} || 0

or 3 conditions

line l !l&&r !l&&!r condition
620 1 2 5 not defined $_[0] or $_[0] ne __PACKAGE__
682 1 39 28 ref $_[0] or defined $_[0] and not ref $_[0] and UNIVERSAL::isa($_[0], __PACKAGE__)
1035 1 0 58 $^O eq "freebsd" or $^O eq "midnightbsd"
1 0 58 $^O eq "freebsd" or $^O eq "midnightbsd" or $^O eq "netbsd"
1501 1 9 1 $type eq "SCALAR" or $type eq "REF"
1810 129 438 5 "IPC::Semaphore"->new($key, 0, $seg->flags & 511) // "IPC::Semaphore"->new($key, $nsems, $seg->flags)
1828 3 1 1 $knot->attributes("create") or $key == IPC_PRIVATE()
1845 2 0 0 $knot->attributes("create") or $key == IPC_PRIVATE()
1911 0 436 0 $process_register{$knot->seg->id} ||= $knot
2228 23 588 0 $key_str //= $knot->attributes('key') || ''
2470 234 353 0 $opts->{'owner'} || $$