Branch Coverage

blib/lib/Image/ExifTool/CanonVRD.pm
Criterion Covered Total %
branch 211 324 65.1


line true false branch
1481 0 0 if $a =~ /^(0x[0-9a-f]+)?\.?(\d*?)$/
1482 0 0 if $b =~ /^(0x[0-9a-f]+)?\.?(\d*?)$/
1483 0 0 if ($aHex) { }
0 0 elsif ($bHex) { }
1484 0 0 unless defined $bDec
1485 0 0 if $bHex
1488 0 0 unless defined $aDec
1491 0 0 unless defined $bDec
1492 0 0 unless defined $aDec
1503 0 73 unless @vals == 21
1505 0 73 unless $n >= 2 and $n <= 10
1508 144 73 if $val
1520 0 18 unless @vals >= 4 and @vals <= 20 and not @vals & 1
1533 0 38 unless $et
1543 35 3 unless $outfile
1545 3 35 if ($outfile)
1557 19 134 if ($pos + 4 > $dirEnd) { }
1558 19 0 if $pos == $dirEnd
1563 19 115 if $recLen == 0 and $pos + 4 == $dirEnd
1566 0 115 if ($pos + $recLen > $dirEnd)
1572 0 115 if ($verbose > 1 and not $outfile)
1575 0 0 if $recNum
1579 77 38 if $recNum
1594 19 77 unless my $tagInfo = $subTablePtr->{$index}
1597 29 48 if ($tagInfo->{'Size'}) { }
29 19 elsif (defined $tagInfo->{'Size'}) { }
1601 19 10 unless $subStart + 4 <= $recLen
1607 0 58 if $subLen > $maxLen
1608 48 10 if ($subLen)
1614 5 43 if ($outfile) { }
1616 0 5 if $verbose
1618 5 0 if ($newVal)
1621 0 5 if ($sizeDiff)
1642 0 38 if ($outfile and $saveRecLen ne $recLen)
1647 3 35 if ($outfile)
1648 1 2 if $oldChanged == $et->{'CHANGED'}
1651 0 35 $err ? :
1672 0 0 unless ($hdr =~ /^IHL Created Optional Item Data\0\0/)
1679 0 0 if ($size > $next or $pos + 48 + $next > $dirEnd)
1742 112 17 unless $et
1753 4 13 if ($isWriting)
1756 2 2 if ($newVal) { }
0 2 elsif (not $dataPt and $nvHash || $et->{'DEL_GROUP'}{'CanonVRD'}) { }
1760 2 0 if ($outfile) { }
1761 0 2 unless &Write($dirInfo->{'OutFile'}, $newVal)
1771 9 6 if ($dataPt) { }
1777 0 6 unless $raf->Read($buff, 8) == 8 and $buff =~ /^IIII[\x04|\x05]\0\x04\0/
1779 0 6 unless $raf->Seek(0, 2)
1781 0 6 unless $raf->Seek(0, 0)
1782 0 6 unless $raf->Read($buff, $dirLen) == $dirLen
1783 0 6 if $err
1790 2 13 if ($et->{'TAGS_FROM_FILE'} and not $et->{'EXCL_TAG_LOOKUP'}{'canondr4'} or $et->{'REQ_TAG_LOOKUP'}{'canondr4'})
1798 0 15 if ($dirLen < 32) { }
1801 0 15 unless &SetByteOrder(substr($$dataPt, $pos, 2))
1810 2 13 if ($outfile) { }
1812 2 0 if $hdr and length $hdr == 32
1819 0 15 if $dirLen < 36 + 28 * $numEntries
1821 0 0 $outfile ? :
0 15 if $err
1823 2 13 if ($outfile) { }
1833 0 1155 if $entry + 28 > $dirEnd
1841 15 1140 if $off + $len >= $dirEnd
1843 15 1125 if (not $format) { }
450 1200 elsif ($format eq 'double' and $len == 8) { }
1849 60 390 if abs $val < "1e-100"
1851 152 988 if ($outfile)
1854 8 144 if ($tagInfo and $tagInfo->{'SubDirectory'}) { }
1864 6 2 if (defined $dat and length $dat == $len) { }
1872 288 144 $i >= 0 ? :
1873 430 2 unless $tagInfo
1874 1 1 if ($i >= 0)
1880 2 0 unless defined $val
1883 2 0 if ($et->IsOverwriting($nvHash, $val) and defined $newVal)
1886 2 0 if (defined $rtnVal)
1910 91 2873 if $tagTablePtr->{$flagID}
1913 13 2 unless $isWriting
1914 1 1 unless $raf
1915 1 0 if &Write($outfile, substr($$dataPt, $pos, $dirLen))
1931 6 8 if $dirInfo->{'OutFile'}
1933 2 12 if (not $num and $dirInfo->{'OutFile'}) { }
1936 1 1 if ($newVal) { }
1938 0 1 unless &Write($dirInfo->{'OutFile'}, $newVal)
1943 1 0 if ($et->{'ADD_DIRS'}{'CanonVRD'})
1945 1 0 if (&ProcessCanonVRD($et, {"OutFile", \$newVal}) > 0)
1946 0 1 unless &Write($dirInfo->{'OutFile'}, $newVal)
1954 0 12 unless $num == 28
1955 0 12 unless $buff =~ /^CANON OPTIONAL DATA\0/
1959 0 12 if $result < 0
1960 0 12 unless $result
1973 6 1 unless $et
1976 1 0 unless defined $val
1977 1 0 unless $et->IsOverwriting($nvHash, $val)
1989 0 2 unless $et
1992 1 1 if (defined $val)
1993 0 1 unless $et->IsOverwriting($nvHash, $val)
2000 1 0 if &ProcessCanonVRD($et, $dirInfo, $tagTablePtr) > 0
2025 53 6 if ($raf) { }
2028 2 4 unless ($dataPt)
2029 0 2 unless $outfile
2033 0 2 if $verbose
2039 0 59 unless $raf->Seek(-64 - $offset, 2)
2040 0 59 unless $raf->Read($buff, 64) == 64
2041 0 59 unless $buff =~ /^CANON OPTIONAL DATA\0(.{4})/s
2045 0 59 unless ($dirLen < 2147483648 and $raf->Seek(-$dirLen, 1) and $raf->Read($buff, 28) == 28 and $buff =~ /^CANON OPTIONAL DATA\0/ and $raf->Seek(-28, 1))
2058 14 4 if ($outfile and ref $outfile eq "SCALAR" and not length $$outfile)
2060 3 11 unless $fromFile
2065 53 6 if ($fromFile or $dirInfo->{'DirStart'})
2066 42 11 unless $dataPt
2068 0 53 unless ($raf->Read($$dataPt, $dirLen) == $dirLen)
2069 0 0 if $outfile and $outfile eq $dataPt
2076 18 41 if ($outfile) { }
1 40 elsif ($verbose or $et->{'HTML_DUMP'}) { }
2077 0 18 if $verbose and not $created
2079 4 14 unless (exists $et->{'EDIT_DIRS'}{'CanonVRD'})
2080 0 4 if $verbose
2081 4 0 if $outfile eq $dataPt
2082 0 0 &Write($outfile, $$dataPt) ? :
2086 13 1 unless ($doDel)
2087 0 13 if $et->{'DEL_GROUP'}{'Trailer'} and $et->{'FILE_TYPE'} ne "VRD"
2088 13 0 unless ($doDel)
2090 3 10 if ($et->{'NEW_VALUE'}{$Image::ExifTool::Extra{'CanonVRD'}})
2092 3 0 unless $$dataPt =~ /^.{28}\xff\xff\0\xf7/s
2094 5 8 if ($et->{'NEW_VALUE'}{$Image::ExifTool::Extra{'CanonDR4'}} and not $doDel)
2096 1 4 if $$dataPt =~ /^.{28}\xff\xff\0\xf7/s
2100 5 9 if ($doDel)
2101 1 4 if ($et->{'FILE_TYPE'} eq 'VRD') { }
2103 1 0 if ($newVal) { }
2104 0 1 if $verbose
2105 0 1 if ($outfile eq $dataPt) { }
2108 0 1 unless &Write($outfile, $newVal)
2116 0 4 if $verbose
2117 4 0 if $outfile eq $dataPt
2124 9 0 unless ($val)
2126 4 5 if $val
2128 4 5 if ($val)
2129 0 4 if $verbose
2131 4 0 if $vrdType eq "DR4"
2132 3 1 if ($outfile eq $dataPt) { }
2135 0 1 unless &Write($outfile, $val)
2142 1 0 if $dirInfo->{'RAF'}
2154 46 46 if ($pos + 8 > $end) { }
2155 46 0 if $pos == $end
2161 9 37 if $blockType == 4294902007
2163 0 46 if ($pos + $blockLen > $end)
2167 0 46 if ($verbose > 1 and not $outfile)
2173 0 46 unless ($tagInfo)
2174 0 0 unless ($et->Options("Unknown"))
2188 46 0 if ($tagInfo->{'SubDirectory'}) { }
2200 4 42 if ($outfile) { }
2204 0 4 if ($et->{'NEW_VALUE'}{$tagInfo}) { }
2208 0 0 unless defined $dat
2214 3 1 if (defined $dat)
2215 3 0 if (length $dat or not $et->{'FILE_TYPE'} =~ /^(CRW|VRD)$/) { }
2223 1 2 if (($diff = length($$dataPt) - $dirLen) != 0)
2240 5 41 if ($outfile) { }
7 34 elsif ($vrdType eq 'VRD' and $et->{'TAGS_FROM_FILE'} && !$et->{'EXCL_TAG_LOOKUP'}{'canonvrd'} || $et->{'REQ_TAG_LOOKUP'}{'canonvrd'}) { }
2242 4 1 if ($et->{'ADD_DIRS'}{'CanonVRD'} and not $didDir{'XMP'})
2245 2 2 if ($dat)
2255 5 0 if (length $$dataPt) { }
2256 2 3 unless $outfile eq $dataPt
2258 0 0 if $verbose
2267 0 46 $err ? :