Branch Coverage

blib/lib/MCE/Shared.pm
Criterion Covered Total %
branch 84 192 43.7


line true false branch
55 18 142 if defined $_[0] and $_[0] eq "MCE::Shared"
58 123 34 if (ref $_[0] eq "HASH" and $_[0]{'module'})
62 0 123 if $_class eq "MCE::Shared::Condvar"
63 0 123 if $_class eq "MCE::Shared::Handle"
64 0 123 if $_class eq "MCE::Shared::Queue"
74 103 2 unless (caller)->isa("MCE::Hobo::_hash") or exists $_params->{'_DEEPLY_'}
79 34 3 ref $_[0] eq 'HASH' && ref $_[1] ? :
84 0 0 if @_ and not $_[0] and $!
86 2 35 if $_params->{'_DEEPLY_'}
89 35 2 if ($_class) { }
2 0 elsif (ref $_[0] eq 'ARRAY') { }
0 0 elsif (ref $_[0] eq 'HASH') { }
0 0 elsif (ref $_[0] eq 'SCALAR' and not ref ${$_[0];}) { }
0 0 elsif (ref $_[0] eq 'REF') { }
90 0 35 if $_[0]->can("SHARED_ID")
96 35 0 unless exists $_params->{'_DEEPLY_'}
99 0 2 if (tied @{$_[0];} and tied(@{$_[0];})->can("SHARED_ID"))
106 0 0 if (tied %{$_[0];} and tied(%{$_[0];})->can("SHARED_ID"))
113 0 0 if (tied ${$_[0];} and tied(${$_[0];})->can("SHARED_ID"))
125 0 0 if (ref $_[0] eq "GLOB")
127 0 0 if tied *{$_[0];} and tied(*{$_[0];})->can("SHARED_ID")
147 201 31 if defined $_[0] and $_[0] eq "MCE::Shared"
149 31 201 if $_fcn eq "init"
150 63 138 if $_fcn eq "start"
151 0 138 if $_fcn eq "stop"
152 0 138 if $_fcn eq "pid"
154 16 122 if ($_fcn eq 'array' or $_fcn eq 'hash') { }
1 121 elsif ($_fcn eq 'handle') { }
0 121 elsif ($_fcn eq 'pdl' or $_fcn =~ /^pdl_(s?byte|u?short|u?long|indx|u?longlong|float|l?double|sequence|zeroe?s|ones|g?random)$/) { }
156 2 14 ref $_[0] eq 'HASH' ? :
158 10 6 $_fcn eq 'array' ? :
164 16 0 if (scalar @_)
165 9 7 if ($_share_deeply)
167 6 3 if ($_fcn eq 'array') { }
169 0 16 if ref $_[$i]
173 0 9 if ref $_[$i]
185 0 1 unless $INC{'MCE/Shared/Handle.pm'}
191 0 1 unless $_obj->OPEN(@_)
1 0 if (@_)
197 0 0 if $_fcn ne "pdl"
198 0 0 unless _use("PDL")
210 0 121 if $_fcn eq "num_sequence"
213 121 0 if ($INC{"MCE/Shared/$_pkg.pm"} or eval "use MCE::Shared::$_pkg (); 1")
216 32 89 if $_fcn =~ /^(?:condvar|queue)$/
224 0 8 if defined $_[0] and $_[0] eq "MCE::Shared"
225 0 8 unless $INC{'MCE/Shared/Handle.pm'}
228 6 2 if (ref $_[0] eq 'GLOB' and tied *{$_[0];} and ref tied *{$_[0];} eq 'MCE::Shared::Object') { }
2 0 elsif (@_) { }
234 0 2 if (ref $_[0] eq "GLOB" and tied *{$_[0];})
235 0 0 if defined fileno $_[0]
242 0 8 unless @_
244 1 7 if (not defined wantarray) { }
245 0 1 unless $_obj->OPEN(@_)
260 0 4 ref $_[0] eq 'HASH' && exists $_[0]{'module'} ? :
265 0 0 unless $INC{'MCE/Shared/Handle.pm'}
270 0 0 if ref $_[0] eq "HASH" and $_[0]{'module'} eq "MCE::Shared::Handle"
272 0 0 if (ref $_[0] eq 'HASH' and exists $_[0]{'module'}) { }
273 0 0 if (@_ == 3 and ref $_[2] and defined(my $_fd = fileno $_[2])) { }
281 0 0 unless $_obj->OPEN(@_)
0 0 if (@_)
291 6 0 if ref $_[0] eq "HASH" and exists $_[0]{'module'}
296 0 3 if (ref $_[0] eq 'HASH') { }
297 0 0 if ($_[0]{'ordered'} or $_[0]{'ordhash'}) { }
0 0 elsif (exists $_[0]{'max_age'} or exists $_[0]{'max_keys'}) { }
304 0 3 if (@_ < 3 and $_[0] eq 'ordered' || $_[0] eq 'ordhash') { }
0 3 elsif (@_ < 5 and $_[0] eq 'max_age' || $_[0] eq 'max_keys') { }
311 0 3 if $_cache
312 0 3 if $_ordered
319 0 73 ref $_[0] eq 'HASH' && exists $_[0]{'module'} ? :
330 0 0 if ($INC{'MCE.pm'}) { }
333 0 0 unless $INC{'MCE/Shared/Base.pm'}
354 0 6 unless _use(my $_module = $_params->{'module'})
356 0 6 unless eval " $_module->can('${_fcn}') "
364 0 6 if ($_params->{'module'}->isa('MCE::Shared::Array')) { }
0 6 elsif ($_params->{'module'}->isa('MCE::Shared::Hash')) { }
366 0 0 if (@_)
369 0 0 if ref $_[$i]
376 0 0 if (@_)
379 0 0 if ref $_[$i]
388 0 6 if ($_obj and $_obj->[2])
409 0 22 if $_class eq "main"
411 0 22 if ($_class =~ /(.*)::_/) { }
0 22 elsif ($_class =~ /^(BerkeleyDB)::(?:Btree|Hash|Queue|Recno)$/) { }
0 22 elsif ($_class =~ /^(TokyoCabinet|KyotoCabinet)::[ABH]?DB$/) { }
0 22 elsif ($_class =~ /^Tie::(?:Std|Extra)Hash$/) { }
0 22 elsif ($_class eq 'Tie::StdArray') { }
0 22 elsif ($_class eq 'Tie::StdScalar') { }
413 0 0 unless $INC{join("/", split(/::/, $1, 0)) . ".pm"}
416 0 0 unless $INC{"$1.pm"}
419 0 0 unless $INC{"$1.pm"}
422 0 0 unless $INC{'Tie/Hash.pm'}
425 0 0 unless $INC{'Tie/Array.pm'}
428 0 0 unless $INC{'Tie/Scalar.pm'}
431 21 1 if eval "\n \$_class->can('new') ||\n \$_class->can('TIEARRAY') || \$_class->can('TIEHANDLE') ||\n \$_class->can('TIEHASH') || \$_class->can('TIESCALAR')\n "
437 1 0 unless (exists $INC{join("/", split(/::/, $_class, 0)) . ".pm"})
441 0 1 unless eval "use $_class (); 1"