Branch Coverage

blib/lib/Sys/Export/VFAT.pm
Criterion Covered Total %
branch 137 238 57.5


line true false branch
39 26 0 &isa_handle($attrs[0]) ? :
0 26 &isa_hash($attrs[0]) ? :
5 26 @attrs != 1 ? :
59 0 0 if (@_ > 1) { }
60 31 62 if (@_ > 1) { }
68 31 279 if ($self->{'geometry'})
69 0 31 if @val
72 20 259 if (@val)
73 0 20 if $val[0] & 511
81 0 256 if (@val)
82 0 0 if $self->{'geometry'}
89 0 34 if ($self->{'geometry'})
90 0 0 if @val
93 3 31 if (@val)
94 0 3 unless &isa_pow2($val[0])
101 0 37 if ($self->{'geometry'})
102 0 0 if @val
105 3 34 if (@val)
106 0 3 unless &isa_pow2($val[0]) and $val[0] <= 128
113 0 256 if ($self->{'geometry'})
114 0 0 if @val
117 0 256 if (@val)
118 0 0 unless &isa_int($val[0]) and $val[0] > 0
125 0 0 if (@val)
126 0 0 if $self->{'geometry'}
133 0 62 if (@val)
134 0 0 unless is_valid_volume_label($val[0])
153 10516 1 if &isa_array($spec)
157 0 10517 unless defined $spec->{'uname'} or defined $spec->{'name'}
158 0 10517 unless defined $spec->{'mode'}
171 98329 33 if ($ent) { }
173 0 98329 unless $ent->{'dir'}
176 3 30 $parent == $self->root ? :
185 0 10517 !($spec->{'mode'} & 256) ? :
0 10517 defined $leaf && $leaf =~ /^\./u ? :
190 10516 1 if (S_ISREG($spec->{'mode'})) { }
1 0 elsif (S_ISDIR($spec->{'mode'})) { }
193 1573 8943 if defined $data_ref and not ref $data_ref
195 0 10516 if ($size) { }
10516 0 elsif (defined $data_ref) { }
197 0 0 unless defined $data_ref
199 0 0 unless length $$data_ref == $size
205 0 10516 if defined $align and not &isa_pow2($align)
208 1 10515 if (defined $offset)
211 0 1 unless $offset > $self->volume_offset + _minimum_offset_to_data() and not $offset & $align - 1
227 0 0 if $cur and $cur->{'file'}
231 0 1 if ($cur)
247 1 10516 if ($file->is_dir)
259 0 0 defined $ent->{'file'}->size ? :
0 0 defined $ent->{'file'}->align ? :
0 0 defined $ent->{'file'}->device_offset ? :
0 0 $ent->{'file'}->is_dir ? :
0 0 !$ent->{'file'} ? :
0 10517 if $Sys::Export::VFAT::log->is_debug
279 0 31 unless my($geom, $alloc) = $self->_optimize_geometry
287 0 31 unless ($fh)
288 0 0 unless defined $self->filename
289 0 0 unless open $fh, "+>", $self->filename
293 31 0 if (-s $fh < $geom->volume_offset + $geom->total_size)
295 0 31 unless truncate $fh, $geom->volume_offset + $geom->total_size
299 0 31 unless ($self->filehandle)
300 0 0 unless $fh->close
312 0 31 unless ($alloc->max_cluster_id // -1) == ($geom->max_cluster_id // -1)
327 30 1 if ($geom->bits < "FAT32")
331 0 30 if not $rootf->size or $rootf->size & 31 or length ${$rootf->data;} != $rootf->size or $rootf->size > $geom->root_dir_size
341 0 10551 if $Sys::Export::VFAT::log->is_debug
353 0 0 $$il[$_ * 2] == $$il[$_ * 2 + 1] - 1 ? :
406 0 10550 unless $file and not $seen{builtin::refaddr($file)}++
407 37 10512 $file->align ? :
1 10549 if ($file->device_offset) { }
420 0 31 unless &isa_int($root_dirent_used) and $root_dirent_used >= 1
427 3 28 defined $self->sectors_per_cluster ? :
431 0 227 unless &isa_pow2($cluster_size)
434 28 199 if $best and $cluster_size > 32768
450 133 66 if ($align) { }
7 59 elsif (@offsets) { }
453 0 0 if ($_->device_offset & $align - 1)
466 7 0 if (not defined $remainder) { }
0 0 elsif ($remainder != $r) { }
476 0 7 if ($remainder) { }
485 1 255 if (not $root_clusters_added and $clusters > 65509)
505 197 59 if (@offsets or @aligned)
507 0 197 if (defined $min_ofs and $min_ofs < $geom->data_start_device_offset)
512 7 190 if (defined $max_ofs and $max_ofs > $geom->data_limit_device_offset)
522 0 249 unless (eval { do { $self->_alloc_file($geom, $alloc, $_) foreach (@offsets, @aligned, @others, $geom->bits == "FAT32" ? $root->file : ()); 1 } })
524 1 248 $geom->bits == 32 ? :
530 50 199 if ($alloc->max_used_cluster_id > $geom->max_cluster_id)
537 32 167 if (not $best or $best->{'geom'}->total_sector_count > $geom->total_sector_count)
543 0 199 if defined $fail_reason{$sectors_per_cluster}
545 0 31 unless ($best)
556 0 20101 unless (my $sz = $file->size)
559 7 20094 if ($file->device_offset) { }
359 19735 elsif ($file->align) { }
585 10551 0 if 2 == @{$_->{'invlist'};}
658 0 31947 if $year < 1980
677 30 1 if ($geom->bits < 32) { }
678 30 0 $geom->fat_sector_count < 65536 ? :
679 30 0 $geom->fat_sector_count < 65536 ? :
680 30 0 $geom->total_sector_count < 65536 ? :
681 30 0 $geom->total_sector_count < 65536 ? :
682 29 1 $geom->bits == 12 ? :
713 0 31 if $self->geometry->max_cluster_id < ($alloc->max_cluster_id // $alloc->max_used_cluster_id)
719 1 30 if ($self->geometry->bits == 32) { }
1 29 elsif ($self->geometry->bits == 16) { }
730 13 16 unless $max & 1
743 31 34 $dir->is_root ? :
746 36 10514 if ($_->{'name'} ne $_->{'shortname'})
753 0 0 $_->{'name'} eq $_->{'shortname'} ? :
0 65 if $Sys::Export::VFAT::log->is_debug
755 0 65 if $n >= 65536
763 31 34 $dir->is_root ? :
774 10550 99 unless (length $short11)
781 36 10613 if (defined $name and $name ne $shortname)
789 36 0 if (my $remainder = @chars % 13)
796 36 1 $i == $last ? :
819 10614 35 if ($file and $file != $self->root->file)
823 102 10516 $file->is_dir ? :
31 10618 !$file ? :
830 0 65 unless $dir->file->size == length $data