Branch Coverage

blib/lib/Image/ExifTool/ID3.pm
Criterion Covered Total %
branch 92 338 27.2


line true false branch
887 0 0 if $userTagName{$name}
888 0 0 unless $name =~ /[a-z]/
911 0 0 unless $val =~ /^\[(\d+\.\d+)\]/g
915 0 0 if ($h) { }
924 0 0 if ($ss >= 60)
926 0 0 if ++$m >= 60
940 0 0 unless length $$dataPt > 6
944 0 0 if not $lang =~ /^[a-z]{3}$/ or $lang eq "eng"
947 0 0 if ($enc == 1 or $enc == 2) { }
948 0 0 unless $$dataPt =~ /\G(..)*?\0\0/gs
952 0 0 unless $$dataPt =~ /\0/g
960 0 0 if $lang
964 0 0 if $lang
968 0 0 unless $$dataPt =~ /$pat/gs
973 0 0 if ($timeCode == 2) { }
977 0 0 if $timeCode != 1
992 0 0 if ($$dataPt =~ /^(.*?)\0/s) { }
999 0 0 unless ($tagTablePtr->{$tag})
1001 0 0 unless $tag =~ /^[-\w]{1,24}$/
1002 0 0 unless ($tagTablePtr->{$tag})
1013 0 0 if $key
1026 0 1 unless $genre{$1}
1031 0 0 unless $genre{$1}
1057 0 35 unless length $val
1058 27 8 unless (defined $enc)
1063 35 0 if ($enc == 0 or $enc == 3) { }
0 0 elsif ($enc == 1 or $enc == 2) { }
1068 0 41 $enc ? :
1076 0 0 if ($val =~ s/((..)*?)\0\0//s) { }
1079 0 0 unless length $val > 1
1083 0 0 if $v =~ s/^(\xfe\xff|\xff\xfe)//
1090 8 27 if wantarray
1101 0 3 if $val & 2155905152
1127 40 0 if ($vers < 768) { }
1129 3 37 if $offset + 6 > $size
1131 0 37 if $id eq "\0\0\0"
1136 0 0 if $offset + 10 > $size
1138 0 0 if $id eq "\0\0\0\0"
1146 0 0 if (not defined $len or $offset + $len + 10 > $size)
1147 0 0 if ($offset + $len == $size) { }
1156 0 0 if $tagTablePtr->{$nextID}
1158 0 0 if $offset + $oldLen + 10 > $size
1160 0 0 if $tagTablePtr->{$nextID}
1164 0 37 if $offset + $len > $size
1166 0 37 unless ($tagInfo)
1167 0 0 if (not $otherTable and $otherTable{$tagTablePtr})
1170 0 0 if $otherTable
1171 0 0 if ($tagInfo) { }
1174 0 0 unless $verbose or $et->Options("Unknown")
1176 0 0 unless length $id
1177 0 0 unless ($tagTablePtr->{$id})
1185 0 37 if ($flags)
1186 0 0 if ($vers < 1024) { }
1188 0 0 if $flags & 128
1189 0 0 if $flags & 64
1190 0 0 if $flags & 32
1193 0 0 if $flags & 64
1194 0 0 if $flags & 8
1195 0 0 if $flags & 4
1196 0 0 if $flags & 2
1197 0 0 if $flags & 1
1200 0 37 if ($flags{'Encrypt'})
1208 0 37 if $flags{'Unsync'}
1211 0 37 if ($flags{'GroupID'})
1212 0 0 unless length $val >= 1
1217 0 37 if ($flags{'DataLen'} or $flags{'Compress'})
1218 0 0 unless length $val >= 4
1223 0 37 if ($flags{'Compress'})
1224 0 0 if (eval { do { require Compress::Zlib } }) { }
1227 0 0 if $inflate
1228 0 0 if ($inflate and $stat == Compress::Zlib::Z_STREAM_END()) { }
1240 0 37 if (defined $dataLen)
1242 0 0 unless defined $dataLen
1243 0 0 unless $dataLen == length $val
1245 0 37 unless ($tagInfo)
1246 0 0 unless $verbose
1247 0 0 if %flags
1265 0 37 if ($id =~ /^(TXX|TXXX)$/) { }
27 10 elsif ($id =~ /^T/ or $id =~ /^(IPL|IPLS|GP1|MVI|MVN)$/) { }
0 10 elsif ($id =~ /^(WXX|WXXX)$/) { }
0 10 elsif ($id =~ /^W/) { }
6 4 elsif ($id =~ /^(COM|COMM|ULT|USLT)$/) { }
0 4 elsif ($id eq 'USER') { }
0 4 elsif ($id =~ /^(CNT|PCNT)$/) { }
2 2 elsif ($id =~ /^(PIC|APIC)$/) { }
0 2 elsif ($id eq 'POP' or $id eq 'POPM') { }
0 2 elsif ($id eq 'OWNE') { }
2 0 elsif ($id eq 'RVA' or $id eq 'RVAD') { }
0 0 elsif ($id eq 'RVA2') { }
0 0 elsif ($id eq 'PRIV') { }
0 0 elsif ($tagInfo->{'Format'} or $tagInfo->{'SubDirectory'}) { }
0 0 elsif ($id eq 'GRP1' or $id eq 'MVNM' or $id eq 'MVIN') { }
0 0 elsif (not $tagInfo->{'Binary'}) { }
1268 0 0 unless defined $vals[$_]
1269 0 0 if (length $vals[0])
1280 0 0 if ($enc == 1 or $enc == 2) { }
1285 0 0 unless (defined $tag and defined $url)
1290 0 0 if (length $tag)
1292 0 0 unless $tag =~ /url/i
1300 0 6 unless $valLen > 4
1303 0 12 unless defined $vals[$_]
1304 0 6 length $vals[0] ? :
1306 0 0 unless $valLen > 4
1310 0 0 unless $valLen >= 4
1315 0 2 unless $valLen >= 4
1318 0 2 if ($enc == 1 or $enc == 2) { }
1319 0 0 $id eq 'PIC' ? :
1321 2 0 $id eq 'PIC' ? :
1324 0 2 unless $val =~ s/^$hdr//s
1336 0 0 unless (defined $dat and length $dat)
1347 0 0 if $strs[1]
1352 0 2 unless my $bits = shift @dat
1360 2 4 if scalar @dat < $j + $bytes
1362 2 2 if $val
1368 0 4 unless $flag & $elem->[3]
1372 0 0 $val =~ /^([^\0]*)\0/s ? :
1395 0 0 if $id
1410 0 6 if ($lang and $lang =~ /^[a-z]{3}$/i and $lang ne "eng")
1413 0 37 if %flags
1435 0 19 if $et->{'DoneID3'}
1448 3 16 unless $raf->Read($buff, 3) == 3
1454 0 3 unless $raf->Read($hBuff, 7) == 7
1457 0 3 unless defined $size
1459 0 3 if ($vers >= 1280)
1463 0 3 unless ($raf->Read($hBuff, $size) == $size)
1468 0 3 if ($flags & 128 and $vers < 1024)
1473 0 3 if ($flags & 64)
1475 0 0 unless $size >= 4
1477 0 0 if ($len > length $hBuff)
1484 0 3 if ($flags & 16)
1497 0 3 if ($vers >= 1024) { }
0 3 elsif ($vers >= 768) { }
1511 2 6 if ($raf->Seek(-128, 2) and $raf->Read($tBuff, 128) == 128 and $tBuff =~ /^TAG/)
1523 0 2 if ($raf->Seek(-$trailSize - $eSize, 2) and $raf->Read($eBuff, $eSize) == $eSize and $eBuff =~ /^TAG+/)
1532 0 11 if ($raf->Seek(-$trailSize - 15, 2) and $raf->Read($buff, 15) == 15 and $buff =~ /^(.{6})LYRICS(END|200)$/)
1534 0 0 $ver eq 'END' ? :
1536 0 0 if $len > $raf->Tell
1537 0 0 if ($raf->Seek(-$len, 1) and $raf->Read($buff, $len) == $len and $buff =~ /LYRICSBEGIN/g) { }
1542 0 0 if ($et->Options("Verbose"))
1545 0 0 if ($pos > 11)
1551 0 0 if ($ver eq 'END') { }
1559 0 0 unless $buff =~ /\G(.{3})(\d{5})/g
1562 0 0 if $pos + $size > length $buff
1563 0 0 unless ($tbl->{$tag})
1570 0 0 unless $pos == length($buff) - 15
1580 3 13 if ($rtnVal)
1582 2 1 if ($dirInfo->{'RAF'})
1594 0 2 unless require "Image/ExifTool/$module.pm"
1598 2 0 if &$func($et, $dirInfo)
1608 3 0 if (%id3Header)
1613 2 1 if (%id3Trailer)
1619 0 2 if ($id3Trailer{'EnhancedTAG'})
1654 0 0 unless $len >= 4
1657 0 0 if ($enc == 1 or $enc == 2) { }
1663 0 0 unless $$dataPt =~ s/^$hdr//s
1665 0 0 if length $mime
1666 0 0 if length $file
1667 0 0 if length $desc
1668 0 0 if ($tagTablePtr->{$mime}) { }
1691 12 1 unless ($et->{'DoneID3'})
1696 12 1 unless ($rtnVal)
1704 1 11 $et->{'FILE_EXT'} && $et->{'FILE_EXT'} eq 'MP3' ? :
1705 9 3 if ($raf->Read($buff, $scanLen))
1707 0 9 if ($buff =~ /\0\0\x01(\xb3|\xc0)/) { }
1710 0 0 if $raf->Read($buf2, 65536 - $scanLen)
1711 0 0 if Image::ExifTool::MPEG::ParseMPEGAudioVideo($et, \$buff)
1716 0 9 $ext eq 'MUS' ? :
1717 1 8 if Image::ExifTool::MPEG::ParseMPEGAudio($et, \$buff, $mp3)
1723 1 12 if ($rtnVal and not $et->{'DoneAPE'})