Branch Coverage

blib/lib/Tree/File.pm
Criterion Covered Total %
branch 87 104 83.6


line true false branch
82 14 211 ref $self ? :
84 11 214 if (ref $self and not $arg)
88 150 75 if ref $data ne 'HASH'
117 0 80 if ($@)
118 0 0 if ($@ =~ /couldn.t open lockfile/i) { }
126 56 24 $root ? :
128 43 37 if (-f $file) { }
36 1 elsif (-d $file) { }
136 0 36 unless opendir $dir, $file
139 71 74 if not $_ =~ /\A\./ || -l "$file/$_"
142 7 64 $preload ? :
172 2 9 if ($$self{'not_found'})
178 0 324 $$self{'found'} ? :
184 364 1 if $id
187 1 364 unless defined $id
190 27 337 if ($rest)
192 3 24 unless $head
196 324 13 if (exists $$self{'data'}{$id})
197 49 275 if (ref $$self{'data'}{$id} eq 'CODE')
203 5 8 if ($autovivify)
221 1 17 if eval { do { $value->isa('Tree::File') } }
223 2 16 if $$self{'readonly'}
225 15 1 if $id
226 7 9 unless $root
229 1 15 unless defined $id
232 9 6 if ($rest)
247 2 8 if $$self{'readonly'}
249 7 1 if $id
252 1 7 unless defined $id
255 4 3 if ($rest)
301 0 1 unless ($node)
316 1 139 if @_
328 0 1 if @_
338 0 2 if @_
351 0 1 if @_
369 74 164 eval { do { $datum->isa('Tree::File') } } ? :
387 20 0 $basedir ? :
398 10 10 if ($type eq 'dir') { }
399 4 6 if -d $root
403 13 6 if (eval { do { $datum->isa('Tree::File') } }) { }
407 2 8 if -d $root
436 22 7 unless @_
439 1 6 unless defined $type
441 1 5 unless $type =~ /\A(?:dir|file)\Z/
465 0 100 if $$self{'_no_op'}
467 24 76 unless ($$self{'_lockfile'})
469 0 24 unless (-e $lockfile)
470 0 0 unless open my $lock, '>', $lockfile
476 0 24 unless open $$self{'_lockfile'}, '+<', $lockfile
485 0 99 if $$self{'_no_op'}
486 0 99 unless $$self{'_lockfile'}
487 79 20 if --$$self{'_locks'} == 0