Branch Coverage

blib/lib/Image/ExifTool/FlashPix.pm
Criterion Covered Total %
branch 184 400 46.0


line true false branch
1320 0 0 if $val
1321 0 0 $val ? :
1335 0 1 if $dirEnd < 4
1342 0 18 unless defined $value
1349 1 2 if length $vals[$i + 5]
1370 46 264 if ($flags)
1371 46 0 if ($flags == 4096) { }
1374 0 46 if ($valPos + $size > $dirEnd)
1379 0 46 if $count == 0
1387 101 209 unless ($format =~ /^VT_/)
1389 0 101 if ($valPos + $size > $dirEnd)
1401 0 216 if ($valPos + $size > $dirEnd)
1406 2 33 if ($noPad and defined $len and $len & 3)
1408 2 0 if ($valPos + $pad + $size <= $dirEnd)
1410 0 2 if substr($$dataPt, $valPos, $pad) eq "\0" x $pad
1414 24 192 if ($format eq 'VT_VARIANT') { }
50 142 elsif ($format eq 'VT_FILETIME') { }
0 142 elsif ($format eq 'VT_DATE') { }
117 25 elsif ($format =~ /STR$/) { }
2 23 elsif ($format eq 'VT_BLOB' or $format eq 'VT_CF') { }
23 0 elsif ($format eq 'VT_CLSID') { }
1418 0 24 unless defined $val
1426 49 1 if ($val > 365 * $secDay)
1432 0 49 if ($val < 0 or $val > $sec100yr)
1436 0 0 if ($v2 > 0 and $v2 < $sec100yr) { }
0 0 elsif ($val < 0 and $val + $unixTimeZero > 0) { }
1448 0 0 if $val != 0
1452 98 19 if $format eq "VT_LPWSTR"
1453 0 117 if ($valPos + $len + 4 > $dirEnd)
1458 98 19 if ($format eq 'VT_LPWSTR') { }
19 0 elsif ($codePage) { }
1463 19 0 if ($charset) { }
0 0 elsif ($codePage == 1200) { }
1473 29 88 $noPad ? :
1476 0 2 if ($valPos + $len + 4 > $dirEnd)
1491 0 209 if @vals > 1 and not wantarray
1496 268 42 if (wantarray) { }
0 42 elsif (@vals > 1) { }
1522 0 0 if $$dataPt =~ /^..\0+\xff\xff\x01\0\x0d\0CDocumentPage/s
1526 0 0 if ($$dataPt =~ /<\0\?\0x\0p\0a\0c\0k\0e\0t\0 \0b\0e\0g\0i\0n\0=\0['"](\0\xff\xfe|\xfe\xff)/g)
1528 0 0 if ($$dataPt =~ /<\0\?\0x\0p\0a\0c\0k\0e\0t\0 \0e\0n\0d\0=\0['"]\0[wr]\0['"]\0\?\0>\0?/g)
1533 0 0 if $et->{'FILE_TYPE'} ne "FLA" and $et->{'VALUE'}{'Format'} and $et->{'VALUE'}{'Format'} eq "application/vnd.adobe.fla"
1536 0 0 if $isFLA
1547 0 0 unless my $dataPt = $dirInfo->{'DataPt'}
1550 0 0 unless ($dirLen > 2 and &Get16u($dataPt, 0) == 42476)
1557 0 0 if $pos + 2 > $dirLen
1560 0 0 if $pos + 2 > $dirLen
1563 0 0 if $pos + 2 > $dirLen
1566 0 0 if $pos + $n * 8 > $dirLen
1571 0 0 if $off + 8 > $n * 8
1603 0 1 $i ? :
1605 1 0 unless defined $offsets
1607 0 0 if $extra->{$key}
1608 0 0 unless $doc
1612 0 0 $j ? :
1613 0 0 unless defined $value->{$key}
1615 0 0 if $extra->{$key}
1616 0 0 unless $tmp
1617 0 0 if ($tmp eq $doc)
1622 0 0 unless defined $docFlags
1623 0 0 $docFlags & 512 ? :
1626 0 0 $j ? :
1627 0 0 unless defined $value->{$key}
1629 0 0 if $extra->{$key}
1630 0 0 unless $tmp
1631 0 0 if ($tmp eq $doc)
1636 0 0 unless defined $docTable
1641 0 0 unless @$offsets
1644 0 0 unless $len and $off + $len <= length $$docTable
1656 0 3 $i ? :
1657 3 0 unless defined $value->{$key}
1677 0 0 if $pos + $len * 2 > $end
1695 0 0 if $pos + 6 > $end
1700 0 0 if $pos + 2 > $end
1703 0 0 if $pos + $len * 2 > $end
1706 0 0 if $pos + 2 > $end
1709 0 0 if $pos + $len * 2 > $end
1726 2 23 if $bom == 65534
1727 0 23 unless $bom == 65279
1746 0 25 if ($dirLen < 48)
1751 0 25 unless (&CheckBOM($dataPt, $pos))
1757 0 25 if ($pos < 48)
1764 0 26 if $pos + 8 > $dirEnd
1767 0 26 unless $size
1769 0 26 if $verbose
1770 0 26 if ($pos + 8 + 8 * $numEntries > $dirEnd)
1780 0 269 if $valStart >= $dirEnd
1783 1 268 if ($tag == 0)
1787 0 6 if $valPos + 8 > $dirEnd
1791 0 6 if $valPos > $dirEnd
1794 0 6 unless length $name
1796 2 4 if $tagTablePtr->{$name}
1800 0 4 unless length $name
1801 0 4 if $verbose
1808 6 262 if (defined $dictionary{$tag})
1813 0 268 unless @vals
1814 4 264 @vals > 1 ? :
1818 46 222 if $flags
1822 26 242 if (not $custom and $tag == 1 || $tag == 2147483648) { }
56 186 elsif ($tagTablePtr->{$tag}) { }
184 4 elsif ($tagTablePtr->{'VARS'} and not $custom) { }
1826 26 0 if ($tag == 1)
1827 0 26 if $val < 0
1837 184 88 if ($masked->{$mask}{$tag & $mask})
1854 0 26 if $index < $numEntries
1855 24 2 unless $dirInfo->{'Multi'}
1868 0 6 unless $raf
1872 6 33 if $sect >= 4294967294
1873 0 33 if $loadedSect{$sect}
1876 0 33 unless $offset <= 2147483647 || $raf->{'LargeFileSupport'} and $raf->Seek($offset, 0) and $raf->Read($buff, $sectSize) == $sectSize
1881 0 33 if $sect * 4 > length($$fatPt) - 4
1899 0 67 if ($dirLen < 13)
1907 21 46 if ($type == 1) { }
46 0 elsif ($type == 2) { }
0 0 elsif ($type != 3) { }
1909 0 21 if $vers != 0
1910 0 21 if ($et->{'FPXR'})
1916 0 21 if $verbose
1920 0 48 if ($pos + 4 > $dirLen)
1929 0 48 unless ($$dataPt =~ m[\G(/\0(..)*?)\0\0]gs)
1935 0 48 if ($verbose)
1936 0 0 $size == 4294967295 ? :
1943 2 46 if ($size == 4294967295)
1944 0 2 unless ($$dataPt =~ /(.{16})/gs)
1953 25 23 unless ($tagTablePtr->{$name})
1957 23 2 if $name =~ /(.*) \d{6}$/s and $tagTablePtr->{$1} or $name =~ /(.*)_[0-9a-f]{16}$/s and $tagTablePtr->{$1}
1979 46 0 if ($fpxr and $fpxr->[$index]) { }
0 0 elsif ($index == 512 and $dirLen > 60 and $et->{'FujiPreview'} || $dirLen > 64 && substr($$dataPt, $dirStart + 60, 4) eq "\377\330\377\333") { }
1982 46 0 if (not defined $obj->{'Stream'}) { }
1990 0 0 if ($overlap < 0 or $dirLen - $overlap < 13) { }
2002 46 0 if ($len >= $obj->{'Size'})
2003 0 46 if $verbose
2004 0 46 if ($len > $obj->{'Size'})
2019 0 0 unless defined $et->{'FujiPreview'}
2024 0 0 if $index != 255
2034 21 46 if ($dirInfo->{'LastFPXR'})
2035 21 0 if ($et->{'FPXR'})
2038 48 0 unless defined $obj->{'Stream'} and length $obj->{'Stream'}
2047 0 21 if ($et->{'FujiPreview'})
2062 0 5 unless my $obj = $hier->{$index}
2063 0 5 if exists $obj->{'DocNum'}
2065 2 3 if $obj->{'Left'}
2066 1 4 if $obj->{'Right'}
2067 1 4 if (defined $obj->{'Child'})
2068 1 0 unless $used
2070 0 1 if $doc
2073 0 1 if ($meta) { }
0 1 elsif (@subDoc) { }
2096 0 1 unless $raf->Read($buff, 512) == 512
2098 0 1 unless $buff =~ /^\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1/
2102 0 1 unless $fileType and $fpxFileType{$fileType}
2104 0 1 substr($buff, 28, 2) eq "\377\376" ? :
2120 0 1 if ($verbose)
2135 0 1 $sectSize > 512 ? :
2141 108 1 if $sect == 4294967295
2144 0 1 unless ($raf->Seek($offset, 0) and $raf->Read($fatSect, $sectSize) == $sectSize)
2153 1 0 if $difStart >= 4294967294
2155 0 0 if (++$difCountCheck > $difCount)
2159 0 0 if ($loadedDifSect{$difStart})
2164 0 0 unless ($raf->Seek($offset, 0) and $raf->Read($buff, $sectSize) == $sectSize)
2175 0 1 if ($fatCountCheck != $fatCount)
2183 0 1 unless (defined $miniFat and defined $dir)
2187 0 1 if ($verbose)
2198 0 1 if ($verbose)
2212 3 5 if $type == 0
2213 0 5 if ($type > 5)
2221 3 2 if $len > 32
2229 1 4 unless ($miniStream)
2231 0 1 unless (defined $miniStreamBuff)
2239 3 2 if ($tagTablePtr->{$tag}) { }
2245 0 0 if $tag =~ /(.*) \d{6}$/s and $tagTablePtr->{$1} or $tag =~ /(.*)_[0-9a-f]{16}$/s and $tagTablePtr->{$1}
2254 4 1 unless $obj = $hier{$index}
2255 2 3 unless $lSib == 4294967295
2256 1 4 unless $rSib == 4294967295
2257 1 4 unless ($chld == 4294967295)
2259 1 0 unless $sub = $hier{$chld}
2263 2 3 unless $tagInfo or $verbose
2268 3 0 if ($typeStr eq 'STREAM') { }
0 0 elsif ($typeStr eq 'ROOT') { }
2269 0 3 if ($size >= $miniCutoff) { }
3 0 elsif ($size) { }
2278 0 3 unless (defined $buff)
2279 0 0 $tagInfo ? :
2290 0 3 if ($verbose)
2294 0 0 unless $lSib == 4294967295
2295 0 0 unless $rSib == 4294967295
2296 0 0 unless $chld == 4294967295
2305 3 0 if ($tagInfo and $buff)
2308 2 1 if ($subdir) { }
2326 1 0 unless ($et->{'DOC_NUM'})
2334 11 39 unless defined $num and $objIndex{$num}
2335 0 39 unless my $obj = $hier{$objIndex{$num}}
2337 39 0 unless $docNums and @$docNums
2339 0 0 unless $tag =~ / /
2345 0 0 unless defined $et->{'VALUE'}{$key}
2347 0 0 if $extra and $extra->{'G3'}
2358 0 1 if $verbose
2360 0 1 if ($et->{'VALUE'}{'FileType'} eq "FPX")
2362 0 0 if ($val)
2366 0 0 unless $val =~ /$pat/