Condition Coverage

blib/lib/Promise/Me.pm
Criterion Covered Total %
condition 147 606 24.2


and 2 conditions

line l !l condition
674 6 0 not defined $Nice::Try::WANTARRAY and scalar @Nice::Try::LAST_VAL
684 2 0 not defined $Nice::Try::WANTARRAY and scalar @Nice::Try::LAST_VAL
823 0 0 not defined $Nice::Try::WANTARRAY and scalar @Nice::Try::LAST_VAL
833 0 0 not defined $Nice::Try::WANTARRAY and scalar @Nice::Try::LAST_VAL
884 0 0 not defined $Nice::Try::WANTARRAY and scalar @Nice::Try::LAST_VAL
897 0 0 not defined $Nice::Try::WANTARRAY and scalar @Nice::Try::LAST_VAL
988 32 0 $self->executed and scalar @$vals

and 3 conditions

line !l l&&!r l&&r condition
264 0 28 0 @_ >= 2 and not ref $_[0]
28 0 0 @_ >= 2 and not ref $_[0] and ref $_[1] eq "CODE"
383 0 0 0 scalar @_ == 1 && &Scalar::Util::reftype($_[0]) eq 'ARRAY'
490 0 4 29929 defined $pid and exists $Promise::Me::KIDS->{$pid}
550 0 18 0 scalar @_ == 1 and not defined $_[0]
634 8 0 0 $INC{'threads.pm'} and not exists $INC{'forks.pm'}
644 0 2 4 scalar @rv and &Scalar::Util::blessed($rv[0])
2 4 0 scalar @rv and &Scalar::Util::blessed($rv[0]) and $rv[0]->isa("Promise::Me")
0 2 4 scalar @rv and &Scalar::Util::blessed($rv[0])
2 0 4 scalar @rv and &Scalar::Util::blessed($rv[0]) and $exception_class
2 4 0 scalar @rv and &Scalar::Util::blessed($rv[0]) and $exception_class and $rv[0]->isa($exception_class)
674 8 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
684 2 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
0 8 0 defined $Nice::Try::WANTARRAY and !&Scalar::Util::blessed($Nice::Try::RETVAL[0]) || &Scalar::Util::blessed($Nice::Try::RETVAL[0]) && !$Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
0 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__NEXT__"
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__LAST__"
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__REDO__"
751 0 0 0 scalar @_ and &Scalar::Util::blessed($_[0])
0 0 0 scalar @_ and &Scalar::Util::blessed($_[0]) and $_[0]->isa("Promise::Me")
765 0 0 0 &Scalar::Util::blessed($tied) and $tied->isa("Promise::Me::Share")
802 2 0 0 $INC{'threads.pm'} and not exists $INC{'forks.pm'}
806 0 2 0 scalar @rv and &Scalar::Util::blessed($rv[0])
2 0 0 scalar @rv and &Scalar::Util::blessed($rv[0]) and $rv[0]->isa("Promise::Me")
823 2 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
833 0 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
0 0 2 defined $Nice::Try::WANTARRAY and !&Scalar::Util::blessed($Nice::Try::RETVAL[0]) || &Scalar::Util::blessed($Nice::Try::RETVAL[0]) && !$Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
2 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__NEXT__"
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__LAST__"
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__REDO__"
856 8 0 8 defined $code and ref $code
862 8 0 0 $INC{'threads.pm'} and not exists $INC{'forks.pm'}
867 0 6 2 scalar @rv and &Scalar::Util::blessed($rv[0])
6 2 0 scalar @rv and &Scalar::Util::blessed($rv[0]) and $rv[0]->isa("Promise::Me")
884 8 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
897 0 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
0 0 8 defined $Nice::Try::WANTARRAY and !&Scalar::Util::blessed($Nice::Try::RETVAL[0]) || &Scalar::Util::blessed($Nice::Try::RETVAL[0]) && !$Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
8 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__NEXT__"
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__LAST__"
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__REDO__"
910 0 6 2 @_ == 1 && ref $_[0]
945 0 12 0 scalar @_ and &Scalar::Util::blessed($_[0])
12 0 0 scalar @_ and &Scalar::Util::blessed($_[0]) and $_[0]->isa("Promise::Me")
978 0 32 0 scalar @_ == 1 and not defined $_[0]
983 32 0 0 defined $fail and ref $fail ne "CODE"
1014 0 0 0 scalar @_ and &Scalar::Util::blessed($_[0])
0 0 0 scalar @_ and &Scalar::Util::blessed($_[0]) and $_[0]->isa("Promise::Me")
1028 0 0 0 &Scalar::Util::blessed($tied) and $tied->isa("Promise::Me::Share")
1040 0 0 0 scalar @_ and &Scalar::Util::blessed($_[0])
0 0 0 scalar @_ and &Scalar::Util::blessed($_[0]) and $_[0]->isa("Promise::Me")
1107 0 0 0 $e->can("children") and $e->children
1121 0 0 35 &Scalar::Util::blessed($elem) and $elem->isa("PPI::Node")
1130 39931 0 1477 $this->class eq "PPI::Statement" and substr($this->content, 0, 5) ne "async"
1135 65375 6191 0 $that->class eq 'PPI::Token::Word' && $that->content eq 'async'
1150 0 0 0 $e->class eq "PPI::Token::Word" and $e->content eq "async"
1153 0 0 0 $e->snext_sibling and $e->snext_sibling->class eq "PPI::Token::Word"
0 0 0 $e->snext_sibling and $e->snext_sibling->class eq "PPI::Token::Word" and $e->snext_sibling->content eq "sub"
1181 39931 1477 0 $this->class eq 'PPI::Statement' && substr($this->content, 0, 5) eq 'async'
1213 0 0 0 scalar @$tmp_nodes and $sib->class eq "PPI::Structure::Block"
0 0 0 not scalar @$tmp_nodes and $sib->class eq "PPI::Token::Word"
0 0 0 not scalar @$tmp_nodes and $sib->class eq "PPI::Token::Word" and $sib->content eq "async"
1235 0 0 0 $sib->snext_sibling and $sib->snext_sibling->class eq "PPI::Token::Word"
0 0 0 $sib->snext_sibling and $sib->snext_sibling->class eq "PPI::Token::Word" and $sib->snext_sibling->content eq "sub"
1272 0 0 0 $this = $this->previous_sibling and $this->class eq "PPI::Token::Whitespace"
1307 18 0 0 not defined $rv and $shm->error
1344 0 0 0 defined $val and length $val
1367 12 0 0 scalar @_ and ref $_[-1] eq "HASH"
1373 12 0 0 exists $opts->{'fallback'} and length $opts->{'fallback'}
1390 0 0 6 &Scalar::Util::blessed($tied) and $tied->isa("Promise::Me::Share")
1416 0 0 6 defined $serialiser and $serialiser eq 'sereal' || $serialiser eq 'storable' || $serialiser eq 'cbor'
1430 0 0 6 defined $size and length $size
0 0 6 defined $size and length $size and int $size > 0
1431 0 3 3 "Module::Generic::SharedMemXS"->supported and not $opts->{'use_cache_file'}
1543 0 0 28 defined $serialiser and $serialiser eq 'sereal' || $serialiser eq 'storable' || $serialiser eq 'cbor'
1557 0 0 28 defined $size and length $size
0 0 28 defined $size and length $size and int $size > 0
1561 0 7 3 defined $self->{'medium'} && $self->{'medium'} eq 'memory' || !($self->{'use_cache_file'} || $self->{'use_mmap'}) && $self->{'medium'} ne 'file' && $self->{'medium'} ne 'mmap' and $self->is_child
1572 0 18 10 "Module::Generic::SharedMemXS"->supported and not $self->{'use_cache_file'}
18 0 10 "Module::Generic::SharedMemXS"->supported and not $self->{'use_cache_file'} and $self->{'medium'} ne "file"
1589 0 0 0 defined $tmpdir and length $tmpdir
0 0 0 defined $tmpdir and length $tmpdir and -e $tmpdir
0 0 0 defined $tmpdir and length $tmpdir and -e $tmpdir and -d $tmpdir
1614 0 0 18 defined $tmpdir and length $tmpdir
0 0 18 defined $tmpdir and length $tmpdir and -e $tmpdir
0 0 18 defined $tmpdir and length $tmpdir and -e $tmpdir and -d $tmpdir
1643 0 0 0 $destroy and $child
0 0 0 $destroy and $child and length $status
0 0 0 $destroy and $child and length $status and $shm
1680 0 0 6 $o->shared_space_destroy and $shm = $o->shared_mem
0 4 2 $o->shared_space_destroy and $shm = $o->shared_mem and $shm->isa('Module::Generic::SharedMem') || $shm->isa('Module::Generic::SharedMemXS')
1699 0 0 2 &Scalar::Util::blessed($tied) and $tied->isa("Promise::Me::Share")
2151 0 0 16 defined $repo and length $repo
2152 16 0 0 ref $repo ne "HASH" and $self->_warnings_is_enabled
2177 0 0 0 defined $repo and length $repo
2178 0 0 0 ref $repo ne "HASH" and $self->_warnings_is_enabled
2198 0 0 16 defined $repo and length $repo
2199 16 0 0 ref $repo ne "HASH" and $self->_warnings_is_enabled
2211 0 0 0 defined $repo and length $repo
2212 0 0 0 ref $repo ne "HASH" and $self->_warnings_is_enabled
2232 0 0 10 defined $repo and length $repo
2233 10 0 0 ref $repo ne "HASH" and $self->_warnings_is_enabled
2248 0 0 0 defined $repo and length $repo
2249 0 0 0 ref $repo ne "HASH" and $self->_warnings_is_enabled
2274 0 0 24 exists $opts->{'shm'} and length $opts->{'shm'}
0 0 24 exists $opts->{'shm'} and length $opts->{'shm'} and &Scalar::Util::blessed($opts->{'shm'})
2275 0 0 24 length $opts->{'type'} and length $opts->{'type'}
2336 0 0 0 $serialiser eq "Sereal" and "Sereal::Encoder"->VERSION <= "version"->parse("4.023")
2347 0 0 0 scalar @args == 1 && ref $args[0] eq 'ARRAY'
2348 0 0 0 defined $ref && ref $ref eq 'ARRAY' && scalar @$ref > 1

or 2 conditions

line l !l condition
225 35 0 'PPI::Document'->new(\$code, 'readonly', 1) || die('Unable to parse: ', 'PPI::Document'->errstr, "\n$code\n")
351 0 0 shift @_ || (return $self->error('No code reference was provided to add a final handler.'))
360 32 0 shift @_ || (return $self->error('No code reference was provided to add a resolve handler.'))
369 18 0 shift @_ || (return $self->error('No code reference was provided to add a reject handler.'))
381 0 0 $opts->{'timeout'} //= 0
382 0 0 $opts->{'race'} //= 0
474 0 2 $opts->{'timeout'} //= 3
592 20 0 $self->_set_shared_space || (return $self->pass_error)
718 18 0 shift @_ || (return $self->error('No type provided to get its next handler.'))
986 32 0 $self->{'_saved_values'} || []
1102 0 0 shift @_ || 0
1139 0 35 $sts ||= []
1168 0 0 'PPI::Document'->new(\$code, 'readonly', 1) || die('Unable to parse: ', 'PPI::Document'->errstr, "\n$code\n")
1183 0 35 $ref ||= []
1217 0 0 'PPI::Document'->new(\$code, 'readonly', 1) || die('Unable to parse: ', 'PPI::Document'->errstr, "\n$code\n")
1283 0 0 'PPI::Document'->new(\$code, 'readonly', 1) || die('Unable to parse: ', 'PPI::Document'->errstr, "\n$code\n")
1307 0 0 $self->{'serialiser'} // ""
1434 0 0 'Module::Generic::File::Mmap'->new(%$p) || (return 'Promise::Me'->pass_error('Module::Generic::File::Mmap'->error))
1436 0 0 $s->open || (return 'Promise::Me'->pass_error($s->error))
1441 3 0 'Module::Generic::SharedMemXS'->new(%$p) || (return 'Promise::Me'->error('Unable to create shared memory object: ', 'Module::Generic::SharedMemXS'->error))
1447 0 0 'Module::Generic::File::Cache'->new(%$p) || (return 'Promise::Me'->error('Unable to create a shared cache file or a shared memory: ', 'Module::Generic::File::Cache'->error))
1449 0 0 $c->open || (return 'Promise::Me'->error('Unable to create a shared cache file: ', $c->error))
1464 3 0 'Module::Generic::File::Cache'->new(%$p) || (return 'Promise::Me'->error('Unable to create a shared cache file: ', 'Module::Generic::File::Cache'->error))
1466 3 0 $c->open || (return 'Promise::Me'->error('Unable to create a shared cache file: ', $c->error))
1531 28 0 $self->{'shared_key'} || (return $self->error('No shared key found!'))
1574 0 0 'Module::Generic::File::Mmap'->new(%$p) || (return $self->pass_error('Module::Generic::File::Mmap'->error))
1576 0 0 $s->open || (return $self->pass_error($s->error))
1581 10 0 'Module::Generic::SharedMemXS'->new(%$p) || (return $self->error('Unable to create shared memory object: ', 'Module::Generic::SharedMemXS'->error))
1596 0 0 'Module::Generic::File::Cache'->new(%$p) || (return $self->error('Unable to create shared cache file object: ', 'Module::Generic::File::Cache'->error))
1597 0 0 $s->open || (return $self->error('Unable to open shared cache file object: ', $s->error))
1621 18 0 'Module::Generic::File::Cache'->new(%$p) || (return $self->error('Unable to create shared cache file object: ', 'Module::Generic::File::Cache'->error))
1622 18 0 $s->open || (return $self->error('Unable to open shared cache file object: ', $s->error))
1832 0 0 $self->load || (return $self->pass_error)
1862 0 0 $self->load || (return $self->pass_error)
1892 6 0 $self->load || (return $self->pass_error)
1919 0 0 $self->load || (return $self->pass_error)
1941 0 0 $self->load || (return $self->pass_error)
1971 0 0 $self->load || (return $self->pass_error)
1991 0 0 $self->load || (return $self->pass_error)
2010 0 0 $self->load || (return $self->pass_error)
2024 0 0 $self->load || (return $self->pass_error)
2045 0 0 $self->load || (return $self->pass_error)
2065 10 0 $self->load || (return $self->pass_error)
2102 0 0 $self->load || (return $self->pass_error)
2122 0 0 $self->load || (return $self->pass_error)
2148 16 0 $self->shared || (return $self->error('No shared memory object found.'))
2152 0 0 $repo // ""
2153 16 0 $self->addr || (return $self->error('No variable address found!'))
2174 0 0 $self->shared || (return $self->error('No shared memory object found.'))
2178 0 0 $repo // ""
2179 0 0 $self->addr || (return $self->error('No variable address found!'))
2195 16 0 $self->shared || (return $self->error('No shared memory object found.'))
2199 0 0 $repo // ""
2200 16 0 $self->addr || (return $self->error('No variable address found!'))
2208 0 0 $self->shared || (return $self->error('No shared memory object found.'))
2212 0 0 $repo // ""
2213 0 0 $self->addr || (return $self->error('No variable address found!'))
2227 10 0 $self->shared || (return $self->error('No shared memory object found.'))
2230 10 0 $self->addr || (return $self->error('No variable address found!'))
2233 0 0 $repo // ""
2245 0 0 $self->shared || (return $self->error('No shared memory object found.'))
2249 0 0 $repo // ""
2250 0 0 $self->addr || (return $self->error('No variable address found!'))
2290 24 0 $opts->{'debug'} // 0
2318 0 0 shift @_ // ""

or 3 conditions

line l !l&&r !l&&!r condition
140 0 0 34 $_[$i] eq "debug" or $_[$i] eq "debug_code"
0 0 34 $_[$i] eq "debug" or $_[$i] eq "debug_code" or $_[$i] eq "debug_file"
0 0 34 $_[$i] eq "debug" or $_[$i] eq "debug_code" or $_[$i] eq "debug_file" or $_[$i] eq "no_filter"
153 0 35 0 ref $class || $class
167 0 0 0 warnings::enabled() or $Promise::Me::DEBUG
269 0 0 28 not defined $code or ref $code ne "CODE"
378 0 0 0 ref $this or $this ne "Promise::Me"
505 4 0 0 $prom->resolved or $prom->rejected
600 0 0 0 kill 0, $pid or $!{'EPERM'}
684 0 0 8 !&Scalar::Util::blessed($Nice::Try::RETVAL[0]) || &Scalar::Util::blessed($Nice::Try::RETVAL[0]) && !$Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
783 0 0 0 ref $this or $this ne "Promise::Me"
833 0 2 0 !&Scalar::Util::blessed($Nice::Try::RETVAL[0]) || &Scalar::Util::blessed($Nice::Try::RETVAL[0]) && !$Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
897 0 8 0 !&Scalar::Util::blessed($Nice::Try::RETVAL[0]) || &Scalar::Util::blessed($Nice::Try::RETVAL[0]) && !$Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
924 0 0 0 warnings::enabled() or $self->debug
953 0 0 0 warnings::enabled() or $Promise::Me::DEBUG
1003 22 0 10 Want::want("OBJECT") or $self->executed
1075 0 0 0 Want::want("VOID") or Want::want("SCALAR")
1370 0 12 0 $opts->{'medium'} //= $Promise::Me::SHARE_MEDIUM
1371 0 6 6 $opts->{'use_cache_file'} //= $opts->{'medium'} eq "file" ? 1 : 0
1372 0 0 12 $opts->{'use_mmap'} //= $opts->{'medium'} eq "mmap" ? 1 : 0
1416 6 0 0 $serialiser eq 'sereal' || $serialiser eq 'storable' || $serialiser eq 'cbor'
1431 0 0 6 $opts->{'use_mmap'} or $opts->{'medium'} eq "mmap"
3 0 3 "Module::Generic::SharedMemXS"->supported and not $opts->{'use_cache_file'} or $opts->{'medium'} eq "memory"
1479 0 0 0 warnings::enabled() or $Promise::Me::DEBUG
1510 0 0 0 warnings::enabled() or $Promise::Me::DEBUG
1543 28 0 0 $serialiser eq 'sereal' || $serialiser eq 'storable' || $serialiser eq 'cbor'
1561 10 3 15 defined $self->{'medium'} && $self->{'medium'} eq 'memory' || !($self->{'use_cache_file'} || $self->{'use_mmap'}) && $self->{'medium'} ne 'file' && $self->{'medium'} ne 'mmap'
1572 0 0 28 $self->{'use_mmap'} or $self->{'medium'} eq "mmap"
10 0 18 "Module::Generic::SharedMemXS"->supported and not $self->{'use_cache_file'} and $self->{'medium'} ne "file" or $self->{'medium'} eq "memory"
1646 0 0 0 $shm->isa("Module::Generic::SharedMem") or $shm->isa("Module::Generic::SharedMemXS")
1680 0 2 4 $shm->isa('Module::Generic::SharedMem') || $shm->isa('Module::Generic::SharedMemXS')
2 4 0 $o->shared_space_destroy and $shm = $o->shared_mem and $shm->isa('Module::Generic::SharedMem') || $shm->isa('Module::Generic::SharedMemXS') or $shm->isa("Module::Generic::File::Cache")
6 0 0 $o->shared_space_destroy and $shm = $o->shared_mem and $shm->isa('Module::Generic::SharedMem') || $shm->isa('Module::Generic::SharedMemXS') or $shm->isa("Module::Generic::File::Cache") or $shm->isa("Module::Generic::File::Mmap")
1761 6 0 0 $class->_tie($opts) || do {
1775 6 0 0 $class->_tie($opts) || do {
1789 12 0 0 $class->_tie($opts) || do {
1885 0 0 6 $locked or $self->{'_iterating'}
2180 0 0 0 not exists $repo->{'_lock'} or ref $repo->{'_lock'} ne "HASH"
2183 0 0 0 warnings::enabled() or $Promise::Me::Share::DEBUG
2201 16 0 0 not exists $repo->{'_lock'} or ref $repo->{'_lock'} ne "HASH"
2291 0 24 0 ref $class || $class
2319 0 0 0 ref $self || $self
2348 0 0 0 ref $self || $self