Condition Coverage

blib/lib/Image/ExifTool/WriteQuickTime.pl
Criterion Covered Total %
condition 273 557 49.0


and 3 conditions

line !l l&&!r l&&r condition
143 0 0 0 $v[2] && $v[2] =~ /below/i
201 0 0 3 $ok{$noff} and $ok{$nlen}
0 0 3 $ok{$noff} and $ok{$nlen} and $ok{$nbas}
0 0 3 $ok{$noff} and $ok{$nlen} and $ok{$nbas} and $ok{$nind}
233 0 0 0 $et->{'QtDataRef'} and $et->{'QtDataRef'}[$drefIdx - 1]
236 0 0 0 $dref->[1] == 1 and $dref->[0] ne "rsrc"
245 3 0 6 $base_offset and not $constOff
267 0 6 3 defined $minOffset and $minOffset > $base_offset
318 22 0 0 $format and $format ne "string"
0 20 2 not $format and $writable
20 0 2 not $format and $writable and $writable ne "string"
320 0 2 0 $writable and $qtFormat{$writable}
397 0 0 2 $nvHash and $et->IsOverwriting($nvHash) > 0
0 1 1 $nvHash and $et->IsOverwriting($nvHash) > 0 and not defined $et->GetNewValue($nvHash)
401 5 1 0 $newTags->{$t}{'SrcTagInfo'} and $newTags->{$t}{'SrcTagInfo'} eq $tagInfo
403 0 0 0 $et->IsOverwriting($nv) and defined $et->GetNewValue($nv)
427 11 0 1 $tagInfo->{'LangCode'} and $tagInfo->{'SrcTagInfo'}
434 4 0 5 $nvHash->{'IsCreating'} and $et->IsOverwriting($nvHash)
4 0 5 $nvHash->{'IsCreating'} and $et->IsOverwriting($nvHash) and defined $et->GetNewValue($nvHash)
471 0 0 3 $items and $raf
481 6 0 3 $item->{'RefersTo'} and $item->{'RefersTo'}{$primary}
490 0 0 3 $item->{'Extents'} and @{$item->{'Extents'};}
513 0 0 1 length $buff >= 4 and length $buff >= 4 + unpack("N", $buff)
539 0 0 3 defined $newVal and $changed ne $et->{'CHANGED'}
0 0 3 defined $newVal and $changed ne $et->{'CHANGED'} and $dirInfo{'DirLen'} || length $newVal
543 2 0 1 length $hdr and length $newVal
611 0 0 2 defined $newVal and $changed ne $et->{'CHANGED'}
711 0 6 0 do { $tag ne 'hdlr' } && do { my $n = &Get32u($outfile, $pos); &Set32u($n + length($add{$tag}), $outfile, $pos) }
797 241 56 8 $addDirs->{'Keys'} and $curPath =~ /^MOV-Movie(-Meta)?$/
830 30 0 2 $newTags->{$_}{'LangCode'} and $newTags->{$_}{'SrcTagInfo'}
843 1347 0 0 defined $atomCount and --$atomCount < 0
1347 0 0 defined $atomCount and --$atomCount < 0 and $dataPt
851 305 0 0 $n == 4 and $hdr eq "\0\0\0\0"
924 0 0 0 $got <= 256 and $size >= 1024
0 0 0 $got <= 256 and $size >= 1024 and $tag ne "mdat"
935 0 0 0 $size > $maxReadLen and $got == 65536
945 946 0 75 $tag eq "hdlr" and length $buff >= 12
965 0 0 0 $dirInfo->{'DirID'} and $dirInfo->{'DirID'} eq "moov"
0 0 0 $dirInfo->{'DirID'} and $dirInfo->{'DirID'} eq "moov" and length $buff > 8
993 192 808 21 $tagInfo and $tagInfo->{'WriteHook'}
996 829 171 21 not $tagInfo and $dirName eq "ItemList"
1000 0 21 not $tagInfo and $dirName eq "ItemList" and $et->{'Keys'}
1021 0 14 7 $tagInfo && $tagInfo->{'SubDirectory'}
12 7 14 $dirName eq "UserData" and not $tagInfo && $tagInfo->{'SubDirectory'}
1031 171 785 0 $tagInfo and $tagInfo->{'Unknown'}
1033 171 191 594 $tagInfo and !defined($tagInfo->{'Writable'}) || $tagInfo->{'Writable'}
1079 503 0 62 $hdrLen and $hdrLen < $size
1083 558 0 7 $subdir->{'ByteOrder'} and $subdir->{'ByteOrder'} =~ /^Little/
1099 178 378 9 defined $newData and not length $newData
556 9 0 defined $newData and not length $newData and $tagInfo->{'Permanent'} || $tagTablePtr->{'PERMANENT'} && !defined($tagInfo->{'Permanent'})
1109 503 5 57 $start and defined $newData
508 57 0 $start and defined $newData and length $newData || defined $tagInfo->{'Permanent'} && !$tagInfo->{'Permanent'}
1116 339 190 36 $curPath eq $writePath and $addDirs->{$subName}
190 2 34 $curPath eq $writePath and $addDirs->{$subName} and $addDirs->{$subName} eq $dirName
1128 4 0 5 $dirInfo->{'HasData'} && $buff =~ /\0...data\0/s
1130 0 0 4 $tag =~ /^\xa9/ || $tagInfo->{'IText'} and $size >= ($tagInfo->{'IText'} || 4)
1140 1 0 1 $nvHash and not $didTag->{$nvHash}
1142 0 0 1 $nvHash->{'IsCreating'} and $et->IsOverwriting($nvHash)
1155 0 0 1 $1 and $1 ne "und"
1158 0 0 1 $2 and $2 ne "ZZ"
1184 0 1 4 not $nvHash and $nvHashNoLang
1185 0 0 4 $lang eq $undLang and not $ctry
0 0 4 $lang eq $undLang and not $ctry and not $didTag->{$nvHashNoLang}
1192 0 0 5 $type eq "data" and $len >= 16
1204 0 0 0 $tagInfo->{'Writable'} and $qtFormat{$tagInfo->{'Writable'}}
1214 1 1 3 $nvHash and $et->IsOverwriting($nvHash, $val)
1245 1 4 0 defined $newData and $pos < $size
1251 4 0 0 $tagInfo->{'IText'} and $tagInfo->{'IText'} >= 6
1266 4 0 0 $lang < 1024 and not $val =~ /^\xfe\xff/
1280 0 1 3 not $nvHash and $nvHashNoLang
1281 0 0 3 $lang eq $undLang and not $didTag->{$nvHashNoLang}
1297 1 5 3 $nvHash and defined $val
1304 0 0 3 defined $newData and not $didTag->{$nvHash}
1307 0 0 0 $format =~ /^string/ and not $tagInfo->{'Binary'}
0 0 0 $format =~ /^string/ and not $tagInfo->{'Binary'} and not $tagInfo->{'ValueConv'}
0 0 0 $format and not $tagInfo->{'Binary'}
1344 359 27 8 $sizeDiff > 0 and $tagInfo->{'PreservePadding'}
27 8 0 $sizeDiff > 0 and $tagInfo->{'PreservePadding'} and $et->Options("QuickTimePad")
1371 529 0 33 $parent eq "DataInfo" and length $buff >= 4
496 0 33 $tag eq "stsd" and length $buff >= 8
1386 0 0 33 $drefTbl and $$drefTbl[$drefIdx - 1]
1391 0 0 33 $dref->[1] == 1 && $dref->[0] ne 'rsrc'
1409 171 391 0 $tagInfo and $tagInfo->{'WriteLast'}
1423 191 111 3 $canCreate and exists $et->{'EDIT_DIRS'}{$dirName} || $createKeys
1431 0 9 0 $curPath eq "MOV-Movie-Meta-ItemList" and $et->{'Keys'}
1460 53 0 0 defined $tagInfo->{'CanCreate'} and not $tagInfo->{'CanCreate'}
1462 53 0 0 defined $tagInfo->{'HandlerType'} and !$et->{'HandlerType'} || $et->{'HandlerType'} ne $tagInfo->{'HandlerType'}
1466 0 8 31 $nvHash and not $didTag->{$nvHash}
1467 13 0 18 $nvHash->{'IsCreating'} and $et->IsOverwriting($nvHash)
1482 0 0 0 $1 and $1 ne "und"
1485 0 0 0 $2 and $2 ne "ZZ"
1491 5 0 2 $tagInfo->{'IText'} and $tagInfo->{'IText'} >= 6
1525 11 0 3 $createKeys and $curPath eq "MOV-Movie"
11 1 2 $createKeys and $curPath eq "MOV-Movie" and $subName eq "Meta"
11 1 0 $createKeys and $curPath eq "MOV-Movie-Meta"
10 2 0 $subName eq "Meta" and $et->{'OPTIONS'}{'QuickTimeHandler'}
1538 0 0 10 $curPath eq $writePath and $addDirs->{$subName}
0 0 10 $curPath eq $writePath and $addDirs->{$subName} and $addDirs->{$subName} eq $dirName
1553 0 0 14 $newData and length $newData <= 2147483639
1562 0 0 3 $cond and $cond =~ m[=~\s*\/\^(.*)/]
1585 302 0 3 $curPath eq "MOV-Meta" and $et->{'EDIT_DIRS'}{'ItemInformation'}
1594 305 0 0 $term and length $$outfile
1651 0 1 2 $edit->[0] < $mdat->[1] || !$mdat->[1] and $edit->[1] > $mdat->[0]
0 1 0 $edit->[0] == $edit->[1] and $edit->[0] == $mdat->[0] || $edit->[0] == $mdat->[1]
1657 3 0 0 $edit->[1] > $mdat->[1] and $mdat->[1]
1703 0 14 5 defined $co->[4] and $co->[4] == $edit->[3]
1750 15 0 10 $_->[0] eq "uuid" and $_->[2] >= 24
1804 0 12 5 defined $id and $id == $mdat->[5]
1806 9 3 0 $pos == $mdat->[0] and $mdat->[0] != $mdat->[1]
1810 0 21 0 $pos >= $mdat->[0] and $pos <= $mdat->[1] || !$mdat->[1]
1812 18 0 0 $pos == $mdat->[1] and $i + 1 < @mdat
18 0 0 $pos == $mdat->[1] and $i + 1 < @mdat and $pos == $mdat[$i + 1][0]
1885 18 0 0 $size < 8 and $size != 1
1893 9 0 9 $tag eq "ftyp" and $size >= 12
9 0 9 $tag eq "ftyp" and $size >= 12 and $size < 100000
0 0 9 $tag eq "ftyp" and $size >= 12 and $size < 100000 and $raf->Read($buff, $size - 8) == $size - 8
0 0 9 $tag eq "ftyp" and $size >= 12 and $size < 100000 and $raf->Read($buff, $size - 8) == $size - 8 and not $buff =~ /^(....)+(qt )/s

or 2 conditions

line l !l condition
172 0 0 $1 || '+'
323 0 2 $qtFormat{$format or 0} || 0
482 1 0 $item->{'ContentType'} || $item->{'Type'} || (next)
496 0 3 $item->{'BaseOffset'} || 0
699 0 2 $countNew || 0
770 305 0 $dirInfo->{'OutFile'} || (return 0)
774 56 249 $dirInfo->{'DirStart'} || 0
1005 4 2 $delCount || 0
1022 41 3 $delCount || 0
1026 12 2 $delCount || 0
1042 62 503 $subdir->{'Start'} || 0
1043 526 39 $dirInfo->{'Base'} || 0
1130 0 4 $tagInfo->{'IText'} || 4
1308 0 3 $tagInfo->{'IText'} || 0
1361 0 1 $writeLast || ''
1410 0 0 $writeLast || ''
1511 0 0 $writeLast || ''
1568 0 1 $writeLast || ''
1865 2 0 &Write($outfile, $writeLast) or $rtnVal = 0

or 3 conditions

line l !l&&r !l&&!r condition
142 0 0 0 @v == 2 or @v == 3
162 0 0 0 @a == 2 or @a == 3
223 0 0 9 $ver == 1 or $ver == 2
255 0 0 9 $ver == 1 or $ver == 2
260 9 0 0 not defined $minOffset or $minOffset > $extent_offset
302 3 367 147 $tagInfo->{'Format'} || $tagInfo->{'Writable'} || $tagInfo->{'Table'}{'FORMAT'}
318 0 2 20 $format and $format ne "string" or not $format and $writable and $writable ne "string"
319 0 2 0 $format || $writable
384 0 0 15 $len < 8 or $pos + $len > $dirLen
539 1 2 0 $dirInfo{'DirLen'} || length $newVal
572 3 1 2 $did{$name} or not $et->{'ADD_DIRS'}{$name}
574 4 0 0 $boxPos->{$_} or push @missing, $_
632 1 0 2 $items->{$id} or $usedID{$id}
813 1 1 10 $keysInfo{$tagInfo} || $tagInfo->{'SrcTagInfo'} && $keysInfo{$tagInfo->{'SrcTagInfo'}}
836 101 13 191 $curPath eq $writePath or $createKeys
867 0 0 3 $hi or $lo > 2147483647
955 0 0 49 $tag eq "mfra" or $tag eq "moof"
0 0 49 $tag eq "sidx" or $tag eq "saio"
3 10 33 $tag eq "CTBO" or $tag eq "uuid"
977 0 0 0 $et->{'CUR_WRITE_GROUP'} || $parent
1033 774 11 0 !defined($tagInfo->{'Writable'}) || $tagInfo->{'Writable'}
1041 145 420 0 $subdir->{'DirName'} || $tagInfo->{'Name'}
1099 0 0 9 $tagInfo->{'Permanent'} || $tagTablePtr->{'PERMANENT'} && !defined($tagInfo->{'Permanent'})
1109 56 0 1 length $newData || defined $tagInfo->{'Permanent'} && !$tagInfo->{'Permanent'}
1124 7 2 211 $nvHash or $langTags{$tag}
2 0 211 $nvHash or $langTags{$tag} or $delGrp
1130 4 0 0 $tag =~ /^\xa9/ || $tagInfo->{'IText'}
1178 0 5 0 $nvHash or not $ctry
5 0 0 $nvHash or not $ctry or $lang ne $undLang
5 0 0 $nvHash or not $ctry or $lang ne $undLang or length $langCode == 2
1214 3 0 2 $nvHash and $et->IsOverwriting($nvHash, $val) or $delTag
1216 0 0 3 $delTag or not defined $newVal
0 0 3 $delTag or not defined $newVal or $didTag->{$nvHash}
1261 0 0 4 $len > $size - 4 or $len < 0
1293 0 0 0 $tag =~ /^\xa9/ or $tagInfo->{'IText'}
1300 3 0 0 defined $newData or $canCreate
1307 0 0 0 not $format or $format =~ /^string/ and not $tagInfo->{'Binary'} and not $tagInfo->{'ValueConv'}
1401 0 0 0 $et->{'CUR_WRITE_GROUP'} || $parent
1423 76 3 35 exists $et->{'EDIT_DIRS'}{$dirName} || $createKeys
1459 14 39 0 $dirs->{$tag} || $newTags->{$tag}
1462 0 0 0 !$et->{'HandlerType'} || $et->{'HandlerType'} ne $tagInfo->{'HandlerType'}
1487 5 0 2 $tag =~ /^\xa9/ or $tagInfo->{'IText'}
0 0 0 $ctry or $lang
1522 14 0 0 $subdir->{'DirName'} || $tagInfo->{'Name'}
1594 0 0 0 &Write($outfile, $term) or $rtnVal = $rtnErr, $err = 1
1600 12 22 0 $emptyMeta{$_} or $isEmpty = 0, last
1650 2 5 5 defined $mdat->[5] or $changed
1651 3 0 0 $edit->[0] < $mdat->[1] || !$mdat->[1]
1 0 0 $edit->[0] == $mdat->[0] || $edit->[0] == $mdat->[1]
2 0 1 $edit->[0] < $mdat->[1] || !$mdat->[1] and $edit->[1] > $mdat->[0] or $edit->[0] == $edit->[1] and $edit->[0] == $mdat->[0] || $edit->[0] == $mdat->[1]
2 0 3 not $edit->[0] or ($edit->[0] < $mdat->[1] || !$mdat->[1] and $edit->[1] > $mdat->[0] or $edit->[0] == $edit->[1] and $edit->[0] == $mdat->[0] || $edit->[0] == $mdat->[1])
1657 0 0 3 $edit->[0] < $mdat->[0] or $edit->[1] > $mdat->[1] and $mdat->[1]
1769 9 0 3 &Get64u($outfile, $pos + 12) or $id == 1
9 0 3 &Get64u($outfile, $pos + 12) or $id == 1 or $id == 2
1771 0 0 0 $id == 1 or $id == 2
1810 18 0 3 $pos <= $mdat->[1] || !$mdat->[1]