Branch Coverage

blib/lib/Archive/Zip/Archive.pm
Criterion Covered Total %
branch 200 390 51.2


line true false branch
67 0 70 ref $_[0] eq 'HASH' ? :
68 4 66 if ($fileName)
70 4 0 $status == 0 ? :
96 0 246 ref $_[0] eq 'HASH' ? :
98 166 3815 if $member->fileName eq $fileName
105 0 16 ref $_[0] eq 'HASH' ? :
116 4 911 if (@_)
118 0 4 ref $_[0] eq 'HASH' ? :
158 0 116 if (@_)
159 0 0 ref $_[0] eq 'HASH' ? :
176 0 10 ref $_[0] eq 'HASH' ? :
177 0 10 unless ref $member
178 0 10 unless $member
188 0 9 if (ref $_[0] eq 'HASH') { }
195 0 9 unless ref $oldMember
196 0 9 unless $oldMember
197 0 9 unless $newMember
199 9 235 $_ == $oldMember ? :
208 0 51 if (ref $_[0] eq 'HASH') { }
215 21 30 unless ref $member
216 0 51 unless $member
219 11 40 if (defined $name) { }
224 1 39 if ((my $ret = _extractionNameIsSafe($name)) != 0)
230 6 44 if ($dirName and not -d $dirName)
232 0 6 unless -d $dirName
245 0 0 if (ref $_[0] eq 'HASH') { }
252 0 0 unless ref $member
253 0 0 unless $member
255 0 0 if $member->isDirectory
256 0 0 unless ($name)
259 0 0 if ((my $ret = _extractionNameIsSafe($name)) != 0)
270 0 233 ref $_[0] eq 'HASH' ? :
271 233 0 if $newMember
272 2 231 if ($newMember and $newMember->{'bitFlag'} & 2048 and not utf8::is_utf8($newMember->{'fileName'}))
283 0 163 if (ref $_[0] eq 'HASH') { }
291 0 0 if ($^O eq 'MSWin32' and $Archive::Zip::UNICODE)
297 0 163 if ($self->{'storeSymbolicLink'} and -l $fileName) { }
315 0 13 if (ref $_[0] eq 'HASH') { }
333 0 11 if (ref $_[0] eq 'HASH') { }
340 0 0 if ($^O eq 'MSWin32' and $Archive::Zip::UNICODE)
345 0 11 if ($self->{'storeSymbolicLink'} and -l $name) { }
347 0 0 if $newName
366 0 2 if (ref $_[0] eq 'HASH') { }
374 0 0 if ($^O eq 'MSWin32' and $Archive::Zip::UNICODE)
379 2 0 if ($newName) { }
384 1 1 if (-f $name) { }
1 0 elsif (-d $name) { }
397 0 3 if (ref $_[0] eq 'HASH') { }
405 3 0 if ($status == 0)
406 0 3 unless defined $member
408 0 3 if ($status == 0 and not ref $member)
411 0 0 unless defined $member
413 3 0 if ($status == 0)
419 0 3 wantarray ? :
426 0 76 ref $_[0] eq 'HASH' ? :
428 0 218 if ($member->_usesFileNamed($fileName))
435 0 76 unless $status
449 0 116 if (ref $_[0] eq 'HASH') { }
452 0 0 exists $_[0]{'seek'} ? :
455 76 40 @_ ? :
458 0 116 unless $fh
459 0 116 unless $fh->opened
463 76 40 $fhIsSeekable ? :
464 0 116 if $offset < 0
513 0 409 if $status != 0
539 0 0 ref $_[0] eq 'HASH' ? :
540 0 0 unless defined $zipName
543 0 0 unless $fh
551 0 0 if ($status != 0)
560 0 0 if (-f $zipName and not rename($zipName, $backupName))
567 0 0 unless (File::Copy::move($tempName, $zipName) or File::Copy::copy($tempName, $zipName))
576 0 0 if (-f $backupName and not unlink($backupName))
616 25 67 if ($membersZip64 or $eocdDataZip64 or $self->desiredZip64Mode == 1)
622 3 46 if $versionMadeBy == 0
623 3 46 if $versionNeededToExtract < 45
625 0 49 unless $self->_print($fh, "PK\cF\cF")
641 0 49 unless $self->_print($fh, $record)
644 0 49 unless $self->_print($fh, "PK\cF\a")
653 0 49 unless $self->_print($fh, $locator)
657 0 116 unless $self->_print($fh, "PK\cE\cF")
660 0 116 $numberOfCentralDirectoriesOnThisDisk > 65535 ? :
0 116 $numberOfCentralDirectories > 65535 ? :
0 116 $centralDirectorySize > 4294967295 ? :
0 116 $centralDirectoryOffsetWRTStartingDiskNumber > 4294967295 ? :
674 0 116 unless $self->_print($fh, $header)
676 0 116 if ($zipfileCommentLength)
677 0 0 unless $self->_print($fh, $self->zipfileComment)
694 0 116 if (ref $_[0] eq 'HASH') { }
701 0 116 if (defined $offset) { }
703 0 0 unless $fh->seek($offset, 0)
713 0 409 if $status != 0
724 0 47 ref $_[0] eq 'HASH' ? :
725 0 47 unless $fileName
727 0 47 unless $status
730 0 47 if $status != 0
741 0 47 if (ref $_[0] eq 'HASH') { }
748 0 47 unless defined $fileName
749 0 47 unless $fh
750 0 47 unless $fh->opened
756 0 47 unless _isSeekable($fh)
762 0 47 if $status != 0
766 0 47 if $status != 0
770 0 47 unless $fh->seek($eocdPosition - $self->centralDirectorySize, 0)
785 0 117 if $status != 0
786 95 22 if (not $zip64) { }
787 40 55 if $signature == 101010256
790 7 15 if $signature == 101075792
793 0 70 if $status != 0
795 0 70 if $status != 0
797 13 57 if ($newMember->isDirectory)
800 0 13 unless $newMember->_ISA('Archive::Zip::DirectoryMember')
804 10 60 if ($newMember->{'bitFlag'} & 2048 and not utf8::is_utf8($newMember->{'fileName'}))
857 0 47 if ($eocdPosition < 20)
862 0 47 unless $fh->seek(-20, 1)
875 0 47 if $status == 4
876 0 47 if ($status == 3)
877 0 0 unless $fh->seek($eocdPosition, 0)
885 0 47 if ($bytesRead != 16)
890 24 23 if ($zip64EOCDPosition > $zip64EOCDLocatorPosition - 52 - 4)
897 0 23 unless $fh->seek($zip64EOCDPosition, 0)
904 0 23 if $status == 4
905 0 23 if ($status == 3)
906 0 0 unless $fh->seek($eocdPosition, 0)
915 0 23 if ($bytesRead != 52)
923 16 7 if ($zip64EOCDPosition + 12 + $zip64EODCRecordSize != $zip64EOCDLocatorPosition)
924 0 16 unless $fh->seek($eocdPosition, 0)
944 0 7 unless $fh->seek($eocdPosition, 0)
949 0 47 unless $fh->seek(4, 1)
954 0 47 if ($bytesRead != 18)
959 40 7 if (not $self->{'zip64'}) { }
970 0 40 if ($self->{'diskNumber'} == 65535 or $self->{'diskNumberWithStartOfCentralDirectory'} == 65535 or $self->{'numberOfCentralDirectoriesOnThisDisk'} == 65535 or $self->{'numberOfCentralDirectories'} == 65535 or $self->{'centralDirectorySize'} == 4294967295 or $self->{'centralDirectoryOffsetWRTStartingDiskNumber'} == 4294967295)
996 0 47 if ($zipfileCommentLength)
999 0 0 if ($bytesRead != $zipfileCommentLength)
1005 40 7 if (not $self->{'zip64'}) { }
1008 40 0 wantarray ? :
1014 7 0 wantarray ? :
1026 0 47 unless $fh->seek(0, 2)
1030 0 47 if ($fileLength < 22)
1038 38 9 if $seekOffset > $fileLength
1039 0 47 unless $fh->seek(-$seekOffset, 2)
1042 0 47 if ($bytesRead != $seekOffset)
1047 0 0 if $pos >= 0 or $seekOffset == $fileLength or $seekOffset >= $Archive::Zip::ChunkSize
1052 47 0 if ($pos >= 0) { }
1053 0 47 unless $fh->seek($pos - $seekOffset, 1)
1075 0 7 if (ref $_[0] eq 'HASH') { }
1084 0 7 unless defined $root
1086 0 7 unless defined $dest
1088 2 5 unless defined $pred
1093 0 7 unless $startDir
1102 0 650 if ($^O eq 'MSWin32' and $Archive::Zip::UNICODE) { }
1103 0 0 if &$pred
1106 156 494 if &$pred
1111 0 0 if ($^O eq 'MSWin32' and $Archive::Zip::UNICODE)
1118 2 5 $rootZipName eq './' ? :
1124 0 156 if ($^O eq 'MSWin32' and $Archive::Zip::UNICODE) { }
1132 3 153 if ($archiveName eq $rootZipName) { }
1134 0 156 if $archiveName =~ m[^\.?/?$]
1135 4 152 $isDir ? :
1141 0 156 unless $member
1150 0 0 if (ref $_[0] eq 'HASH') { }
1160 0 0 unless defined $root
1162 0 0 unless defined $dest
1163 0 0 unless defined $pattern
1166 0 0 if /$pattern/
0 0 if /$pattern/
0 0 $pred ? :
1181 2 81 if (grep(('..' eq $_), @directories))
1190 0 479 if (-l $path)
1194 69 410 unless (-e $path)
1210 0 4 if (ref $_[0] eq 'HASH') { }
1218 2 2 unless defined $root
1219 3 1 if (defined $dest) { }
1220 3 0 unless ($dest =~ m[/$])
1235 1 42 if ((my $ret = _extractionNameIsSafe($fileName)) != 0)
1238 0 42 if $status != 0
1250 0 157 if (ref $_[0] eq 'HASH') { }
1257 0 157 unless (defined $fileName)
1263 0 157 unless (@newStat)
1272 0 157 if (ref $oldMember) { }
1280 0 111 unless (defined $oldMember and $oldMember->lastModTime == $newStat[9] and $oldMember->isDirectory == $isDir and $isDir || $oldMember->uncompressedSize == $newStat[7])
1286 8 38 $isDir ? :
1291 0 46 unless (defined $newMember)
1297 6 40 if (defined $oldMember) { }
1321 0 4 if (ref $_[0] eq 'HASH') { }
1331 0 4 unless defined $root
1333 0 4 unless defined $dest
1335 4 0 unless defined $pred
1339 0 4 $rootZipName eq './' ? :
1344 0 4 unless $startDir
1353 157 0 if &$pred
1369 4 153 if ($memberName eq $rootZipName) { }
1371 0 157 if $memberName =~ m[^\.?/?$]
1376 0 157 unless ref $changedMember
1382 1 3 if ($mirror)
1385 1 39 unless $done{$member->fileName}