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
996 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 25176 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]
953 0 12 0 scalar @_ and &Scalar::Util::blessed($_[0])
12 0 0 scalar @_ and &Scalar::Util::blessed($_[0]) and $_[0]->isa("Promise::Me")
986 0 32 0 scalar @_ == 1 and not defined $_[0]
991 32 0 0 defined $fail and ref $fail ne "CODE"
1022 0 0 0 scalar @_ and &Scalar::Util::blessed($_[0])
0 0 0 scalar @_ and &Scalar::Util::blessed($_[0]) and $_[0]->isa("Promise::Me")
1036 0 0 0 &Scalar::Util::blessed($tied) and $tied->isa("Promise::Me::Share")
1048 0 0 0 scalar @_ and &Scalar::Util::blessed($_[0])
0 0 0 scalar @_ and &Scalar::Util::blessed($_[0]) and $_[0]->isa("Promise::Me")
1115 0 0 0 $e->can("children") and $e->children
1129 0 0 35 &Scalar::Util::blessed($elem) and $elem->isa("PPI::Node")
1138 39931 0 1477 $this->class eq "PPI::Statement" and substr($this->content, 0, 5) ne "async"
1143 65375 6191 0 $that->class eq 'PPI::Token::Word' && $that->content eq 'async'
1158 0 0 0 $e->class eq "PPI::Token::Word" and $e->content eq "async"
1161 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"
1189 39931 1477 0 $this->class eq 'PPI::Statement' && substr($this->content, 0, 5) eq 'async'
1221 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"
1243 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"
1280 0 0 0 $this = $this->previous_sibling and $this->class eq "PPI::Token::Whitespace"
1315 18 0 0 not defined $rv and $shm->error
1352 0 0 0 defined $val and length $val
1375 12 0 0 scalar @_ and ref $_[-1] eq "HASH"
1381 12 0 0 exists $opts->{'fallback'} and length $opts->{'fallback'}
1398 0 0 6 &Scalar::Util::blessed($tied) and $tied->isa("Promise::Me::Share")
1424 0 0 6 defined $serialiser and $serialiser eq 'sereal' || $serialiser eq 'storable' || $serialiser eq 'cbor'
1438 0 0 6 defined $size and length $size
0 0 6 defined $size and length $size and int $size > 0
1439 0 3 3 "Module::Generic::SharedMemXS"->supported and not $opts->{'use_cache_file'}
1551 0 0 28 defined $serialiser and $serialiser eq 'sereal' || $serialiser eq 'storable' || $serialiser eq 'cbor'
1565 0 0 28 defined $size and length $size
0 0 28 defined $size and length $size and int $size > 0
1569 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
1580 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"
1597 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
1622 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"
1651 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
1689 0 0 6 $o->shared_space_destroy and defined($shm = $o->shared_mem)
0 4 2 $o->shared_space_destroy and defined($shm = $o->shared_mem) and $shm->isa('Module::Generic::SharedMem') || $shm->isa('Module::Generic::SharedMemXS')
1708 0 0 2 &Scalar::Util::blessed($tied) and $tied->isa("Promise::Me::Share")
2160 0 0 16 defined $repo and length $repo
2161 16 0 0 ref $repo ne "HASH" and $self->_warnings_is_enabled
2186 0 0 0 defined $repo and length $repo
2187 0 0 0 ref $repo ne "HASH" and $self->_warnings_is_enabled
2207 0 0 16 defined $repo and length $repo
2208 16 0 0 ref $repo ne "HASH" and $self->_warnings_is_enabled
2220 0 0 0 defined $repo and length $repo
2221 0 0 0 ref $repo ne "HASH" and $self->_warnings_is_enabled
2241 0 0 10 defined $repo and length $repo
2242 10 0 0 ref $repo ne "HASH" and $self->_warnings_is_enabled
2257 0 0 0 defined $repo and length $repo
2258 0 0 0 ref $repo ne "HASH" and $self->_warnings_is_enabled
2283 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'})
2284 0 0 24 length $opts->{'type'} and length $opts->{'type'}
2345 0 0 0 $serialiser eq "Sereal" and "Sereal::Encoder"->VERSION <= "version"->parse("4.023")
2356 0 0 0 scalar @args == 1 && ref $args[0] eq 'ARRAY'
2357 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.'))
994 32 0 $self->{'_saved_values'} || []
1110 0 0 shift @_ || 0
1147 0 35 $sts ||= []
1176 0 0 'PPI::Document'->new(\$code, 'readonly', 1) || die('Unable to parse: ', 'PPI::Document'->errstr, "\n$code\n")
1191 0 35 $ref ||= []
1225 0 0 'PPI::Document'->new(\$code, 'readonly', 1) || die('Unable to parse: ', 'PPI::Document'->errstr, "\n$code\n")
1291 0 0 'PPI::Document'->new(\$code, 'readonly', 1) || die('Unable to parse: ', 'PPI::Document'->errstr, "\n$code\n")
1315 0 0 $self->{'serialiser'} // ""
1442 0 0 'Module::Generic::File::Mmap'->new(%$p) || (return 'Promise::Me'->pass_error('Module::Generic::File::Mmap'->error))
1444 0 0 $s->open || (return 'Promise::Me'->pass_error($s->error))
1449 3 0 'Module::Generic::SharedMemXS'->new(%$p) || (return 'Promise::Me'->error('Unable to create shared memory object: ', 'Module::Generic::SharedMemXS'->error))
1455 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))
1457 0 0 $c->open || (return 'Promise::Me'->error('Unable to create a shared cache file: ', $c->error))
1472 3 0 'Module::Generic::File::Cache'->new(%$p) || (return 'Promise::Me'->error('Unable to create a shared cache file: ', 'Module::Generic::File::Cache'->error))
1474 3 0 $c->open || (return 'Promise::Me'->error('Unable to create a shared cache file: ', $c->error))
1539 28 0 $self->{'shared_key'} || (return $self->error('No shared key found!'))
1582 0 0 'Module::Generic::File::Mmap'->new(%$p) || (return $self->pass_error('Module::Generic::File::Mmap'->error))
1584 0 0 $s->open || (return $self->pass_error($s->error))
1589 10 0 'Module::Generic::SharedMemXS'->new(%$p) || (return $self->error('Unable to create shared memory object: ', 'Module::Generic::SharedMemXS'->error))
1604 0 0 'Module::Generic::File::Cache'->new(%$p) || (return $self->error('Unable to create shared cache file object: ', 'Module::Generic::File::Cache'->error))
1605 0 0 $s->open || (return $self->error('Unable to open shared cache file object: ', $s->error))
1629 18 0 'Module::Generic::File::Cache'->new(%$p) || (return $self->error('Unable to create shared cache file object: ', 'Module::Generic::File::Cache'->error))
1630 18 0 $s->open || (return $self->error('Unable to open shared cache file object: ', $s->error))
1841 0 0 $self->load || (return $self->pass_error)
1871 0 0 $self->load || (return $self->pass_error)
1901 6 0 $self->load || (return $self->pass_error)
1928 0 0 $self->load || (return $self->pass_error)
1950 0 0 $self->load || (return $self->pass_error)
1980 0 0 $self->load || (return $self->pass_error)
2000 0 0 $self->load || (return $self->pass_error)
2019 0 0 $self->load || (return $self->pass_error)
2033 0 0 $self->load || (return $self->pass_error)
2054 0 0 $self->load || (return $self->pass_error)
2074 10 0 $self->load || (return $self->pass_error)
2111 0 0 $self->load || (return $self->pass_error)
2131 0 0 $self->load || (return $self->pass_error)
2157 16 0 $self->shared || (return $self->error('No shared memory object found.'))
2161 0 0 $repo // ""
2162 16 0 $self->addr || (return $self->error('No variable address found!'))
2183 0 0 $self->shared || (return $self->error('No shared memory object found.'))
2187 0 0 $repo // ""
2188 0 0 $self->addr || (return $self->error('No variable address found!'))
2204 16 0 $self->shared || (return $self->error('No shared memory object found.'))
2208 0 0 $repo // ""
2209 16 0 $self->addr || (return $self->error('No variable address found!'))
2217 0 0 $self->shared || (return $self->error('No shared memory object found.'))
2221 0 0 $repo // ""
2222 0 0 $self->addr || (return $self->error('No variable address found!'))
2236 10 0 $self->shared || (return $self->error('No shared memory object found.'))
2239 10 0 $self->addr || (return $self->error('No variable address found!'))
2242 0 0 $repo // ""
2254 0 0 $self->shared || (return $self->error('No shared memory object found.'))
2258 0 0 $repo // ""
2259 0 0 $self->addr || (return $self->error('No variable address found!'))
2299 24 0 $opts->{'debug'} // 0
2327 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
961 0 0 0 warnings::enabled() or $Promise::Me::DEBUG
1011 22 0 10 Want::want("OBJECT") or $self->executed
1083 0 0 0 Want::want("VOID") or Want::want("SCALAR")
1378 0 12 0 $opts->{'medium'} //= $Promise::Me::SHARE_MEDIUM
1379 0 6 6 $opts->{'use_cache_file'} //= $opts->{'medium'} eq "file" ? 1 : 0
1380 0 0 12 $opts->{'use_mmap'} //= $opts->{'medium'} eq "mmap" ? 1 : 0
1424 6 0 0 $serialiser eq 'sereal' || $serialiser eq 'storable' || $serialiser eq 'cbor'
1439 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"
1487 0 0 0 warnings::enabled() or $Promise::Me::DEBUG
1518 0 0 0 warnings::enabled() or $Promise::Me::DEBUG
1551 28 0 0 $serialiser eq 'sereal' || $serialiser eq 'storable' || $serialiser eq 'cbor'
1569 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'
1580 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"
1654 0 0 0 $shm->isa("Module::Generic::SharedMem") or $shm->isa("Module::Generic::SharedMemXS")
1689 0 2 4 $shm->isa('Module::Generic::SharedMem') || $shm->isa('Module::Generic::SharedMemXS')
2 4 0 $o->shared_space_destroy and defined($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 defined($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")
1770 6 0 0 $class->_tie($opts) || do {
1784 6 0 0 $class->_tie($opts) || do {
1798 12 0 0 $class->_tie($opts) || do {
1894 0 0 6 $locked or $self->{'_iterating'}
2189 0 0 0 not exists $repo->{'_lock'} or ref $repo->{'_lock'} ne "HASH"
2192 0 0 0 warnings::enabled() or $Promise::Me::Share::DEBUG
2210 16 0 0 not exists $repo->{'_lock'} or ref $repo->{'_lock'} ne "HASH"
2300 0 24 0 ref $class || $class
2328 0 0 0 ref $self || $self
2357 0 0 0 ref $self || $self