Condition Coverage

blib/lib/MP3/Tag/ID3v2.pm
Criterion Covered Total %
condition 184 398 46.2


and 3 conditions

line !l l&&!r l&&r condition
174 22 0 0 $basic and length $_ > 4
189 0 144 0 $self->{'major'} == 3 and $size > 255
207 0 0 0 $pos + 20 + $fsize < $self->{'data_size'} and exists $MP3::Tag::ID3v2::long_names{substr $self->{'tag_data'}, $pos + 10 + $fsize, 4}
251 101 0 0 $basic and length $_ > 4
328 302 425 0 wantarray and $self->{'extra_frames'}
235 29 161 wantarray and $self->{'extra_frames'} and length $fname == 4
420 0 0 11 $k == 5 and substr($fname, 0, 4) eq 'APIC'
456 0 0 0 not $bin || ref $val and $descr =~ /^(MCDI|APIC)/
605 0 78 0 $self->get_config('id3v23_unsync')->[0] and $self->{'version'} == 3 && $self->get_config('id3v23_unsync_size_w')->[0] || $self->{'version'} >= 4
777 33 0 0 $raw_ok and $self->{'raw_data'}
0 0 0 $raw_ok and $self->{'raw_data'} and not $self->{'modified'}
0 0 0 $raw_ok and $self->{'raw_data'} and not $self->{'modified'} and not $update_file
780 33 0 0 $self->{'major'} == 4 and not $self->get_config1('write_v24')
801 0 33 0 $self->get_config('id3v23_unsync')->[0] and $tag_data =~ s/\xFF(?=[\x00\xE0-\xFF])/\377\000/g
803 0 33 0 length $tag_data and "\377" eq substr($tag_data, -1, 1)
1016 189 4 0 $_->{'optional'} and ++$opt
1019 0 2 65 @data == $args - 1 - $opt || $split && @data <= $args - 1 - $opt and $format->[0]{'name'} eq '_encoding'
1022 2 1 0 $format->[0]{'name'} eq '_encoding' and defined $data[0]
3 0 0 $format->[0]{'name'} eq '_encoding' and defined $data[0] and not $data[0] =~ /^[0-3]?$/
1026 44 21 3 $split and @data < $args
1042 3 0 0 @data == $args + 1 and not defined $data[0]
3 0 0 @data == $args + 1 and not defined $data[0] and $format->[0]{'name'} eq '_encoding'
1044 0 0 68 @data <= $args and @data >= $args - $opt
1046 3 0 65 $format->[0]{'name'} eq '_encoding' and not defined $data[0]
1055 105 82 0 $fs->{'encoded'} and $d[0]
2 80 0 $fs->{'encoded'} and $d[0] and $d[0] =~ /[^\x00-\xff]/
1060 191 2 3 $fs->{'optional'} and not @data
1071 0 21 100 exists $fs->{'len'} and not exists $fs->{'func'}
21 0 0 exists $fs->{'mlen'} and $fs->{'mlen'} > 0
1076 1 0 6 exists $fs->{'len'} and $fs->{'len'} > 0
1080 6 0 1 exists $fs->{'mlen'} and $fs->{'mlen'} > 0
1108 0 0 82 not $self->{'fixed_encoding'} and $self->get_config1('id3v2_fix_encoding_on_edit')
0 82 0 not $self->{'fixed_encoding'} and $self->get_config1('id3v2_fix_encoding_on_edit') and $e = $self->botched_encoding
82 0 0 not $self->{'fixed_encoding'} and $self->get_config1('id3v2_fix_encoding_on_edit') and $e = $self->botched_encoding and do { require Encode; Encode::decode($e, $d) ne $d }
1121 0 0 0 $use_utf16le and $encoding == 1
1240 0 0 0 not $expl and $fn =~ /^(GRID|TLEN)/
1385 0 11 0 @_ == 1 and $_[0] eq ''
1388 81 0 18 defined $_ && length $_
1427 0 11 5 exists $comment->{'Description'} and not length $comment->{'Description'}
1429 3 2 0 defined $language and !exists $comment->{'Language'} || lc $comment->{'Language'} ne $language
1478 0 0 1 exists $comment->{'Description'} and $comment->{'Description'} eq $desc
1480 0 1 0 defined $language and !exists $comment->{'Language'} || lc $comment->{'Language'} ne lc $language
1485 1 0 0 @_ == 1 and $_[0] eq ''
1602 89 0 124 defined $descr and not ref $descr
1643 194 44 0 length $l > 3 and not $lang_special
1644 0 27 1 not $seen{$1}++ and $1 < @found_frames
1654 87 0 119 $l eq '' || ref $f && defined $f->{$lang_field} && $l eq &__to_lang($f->{$lang_field}, $lang_special) and not $seen{$c}++
1666 12 0 125 defined $f and ref $f
12 0 125 defined $f and ref $f and defined $f->{'Description'}
0 36 89 defined $f and ref $f and defined $f->{'Description'} and grep(($_ eq $f->{'Description'}), @$descr)
1674 0 84 0 exists $res->{'Description'} and defined $descr || $any_descr
1675 14 5 65 exists $res->{$lang_field} and defined $languages
1679 55 7 22 $c == 2 and $ic == 5
62 22 0 $c == 2 and $ic == 5 and exists $res->{'MIME type'}
0 22 0 $c == 2 and $ic == 5 and exists $res->{'MIME type'} and exists $res->{'_Data'}
0 0 22 $c == 2 and $ic == 5 and exists $res->{'MIME type'} and exists $res->{'_Data'} and $res->{'MIME type'} eq $self->_Data_to_MIME($res->{'_Data'})
1703 20 0 4 $lang_special and @_ == 1
1786 10 33 51 $what > 1 && !@_
1788 2 11 32 $what > 2 && !@_
1859 0 2 0 @_ == 1 and $_[0] eq ''
1900 0 1 13 @_ == 1 and not $_[0]
1932 0 3 9 @_ == 1 and $_[0] eq ''
1966 0 0 14 @_ == 1 and $_[0] eq ''
1995 0 11 0 @_ == 1 and $_[0] eq ''
2063 15 31 54 $r_header and 10 == length $header
2072 1 56 44 defined $mp3obj and $self->read_header($header)
2080 0 44 0 defined $s and $s - 10 < $s1
2111 0 0 45 $max0s and $mp3obj->read(\$d, 1024)
2118 4 0 0 $mp3obj->read(\$d, 10 - length($r)) and $r .= $d
0 40 4 defined $r and length $r < 10
2119 0 4 40 $r_header and 10 <= length $d
2125 41 0 16 defined $create and $create
2140 31 0 54 $header and $parent
2190 44 0 0 $major == 4 and $self->get_config1('prohibit_v24')
2269 1100 3 2 $rule->{'optional'} and not length $data
2274 55 202 0 exists $rule->{'encoded'} and $encoding =~ /^[12]$/
2287 0 6 1097 defined $found and $found ne ''
2299 480 0 0 $encoding and not $trustencoding
0 480 0 not $noDecode and $e = $self->botched_encoding
2382 0 0 0 defined $e and not $e
2402 0 0 0 $fix && keys %$fix
2466 0 0 0 $set and exists $flagmap{$flag}
2547 0 0 6 $how eq 1 and $byte eq 1
2567 0 0 6 $how eq 1 and $data eq 1
2583 0 0 0 $how eq 1 and $data eq 1
2601 0 0 6 $how eq 1 and $data eq 1
2625 0 0 6 $how eq 1 and $text eq 1

or 2 conditions

line l !l condition
328 49 112 $self->{'extra_frames'}{$fname} || 0
362 11 326 $raw ||= 0
439 11 0 $l ||= ''
440 11 0 $d ||= ''
1158 1 5 $self->{'extra_frames'}{$ID} || 0
1238 0 0 $f_ids ||= [keys %{$from->get_frame_ids;}]
1241 0 0 $overwrite || 0
1629 0 0 $_ eq '' or exists $m1->{$_} or $loose or not /\D/ or die "Unknown value `${_}' for field `${lang_field}' of frame $fname"
2060 86 0 $mp3obj->open or return
2266 5 330 $arr ||= 0

or 3 conditions

line l !l&&r !l&&!r condition
203 0 0 0 $pos + $headersize + $size > $self->{'data_size'} or not exists $MP3::Tag::ID3v2::long_names{substr $self->{'tag_data'}, $pos + $size, 4}
333 337 4 386 defined $frame or $e
371 5 0 330 $raw eq 'array_nokey' or $raw eq 'array_nodecode'
373 4 0 331 $raw eq 'intact' or $raw eq 'hash'
4 5 326 $raw eq 'intact' or $raw eq 'hash' or $as_arr
376 5 0 330 $as_arr or $raw eq 'hash'
456 0 0 0 $bin || ref $val
581 0 0 78 $frame->{'flags'}{'compression'} or $self->{'flags'}{'compress_all'}
587 0 0 78 $frame->{'flags'}{'encryption'} or $self->{'flags'}{'encrypt_all'}
605 0 0 78 $self->{'version'} == 3 && $self->get_config('id3v23_unsync_size_w')->[0] || $self->{'version'} >= 4
673 16 0 0 rename $tempfile, $mp3obj->{'filename'} or system('mv', $tempfile, $mp3obj->{'filename'}) == 0
812 15 0 18 $o_tsize < $n_tsize or $self->get_config('id3v2_shrink')->[0]
916 0 0 0 rename $tempfile, $mp3obj->{'filename'} or system('mv', $tempfile, $mp3obj->{'filename'}) == 0
1019 66 0 1 @data == $args - 1 - $opt || $split && @data <= $args - 1 - $opt
1030 0 1 0 $tail_rex[$c] ||= qr/((?:;[^;]*){0,$c})\z/
1114 0 0 0 $calc_enc or $encode_utf8
1162 0 68 0 $flags || $self->check_flags(0)
1429 0 1 1 !exists $comment->{'Language'} || lc $comment->{'Language'} ne $language
1480 0 0 1 !exists $comment->{'Language'} || lc $comment->{'Language'} ne lc $language
1580 42 4 286 shift() or $l eq 'XXX'
1589 37 0 0 $MT{substr $data, 0, 4} || $MT{substr $data, 0, 2}
1629 8 0 44 $_ eq '' or exists $m1->{$_}
44 0 0 $_ eq '' or exists $m1->{$_} or $loose
44 0 0 $_ eq '' or exists $m1->{$_} or $loose or not /\D/
1654 88 0 118 $l eq '' || ref $f && defined $f->{$lang_field} && $l eq &__to_lang($f->{$lang_field}, $lang_special)
1674 67 9 8 defined $descr || $any_descr
1692 1 23 15 @_ > 1 or defined $_[0]
1870 3 0 18 ($y) = $self->get_frame('TDRC', 'intact') or ($y) = $self->get_frame('TYER')
2176 0 0 44 $major > $#MP3::Tag::ID3v2::supported_majors or $MP3::Tag::ID3v2::supported_majors[$major] == 0
2331 56 0 701 exists $rule->{'data'} or not defined $found
2359 0 0 0 $self->get_config1('ignore_trusted_encoding0_v2') or not $self->frame_select('TXXX', 'trusted_encoding0_v2')
2660 0 0 0 $found =~ s/DIG/Other digital Media/ or $found =~ /DAT/
0 0 0 $found =~ s/DIG/Other digital Media/ or $found =~ /DAT/ or $found =~ /DCC/
0 0 0 $found =~ s/DIG/Other digital Media/ or $found =~ /DAT/ or $found =~ /DCC/ or $found =~ /DVD/
0 0 0 $found =~ s/DIG/Other digital Media/ or $found =~ /DAT/ or $found =~ /DCC/ or $found =~ /DVD/ or $found =~ s/MD/MiniDisc/
0 0 0 $found =~ s/DIG/Other digital Media/ or $found =~ /DAT/ or $found =~ /DCC/ or $found =~ /DVD/ or $found =~ s/MD/MiniDisc/ or $found =~ s/LD/Laserdisc/
0 0 0 $found =~ s/TV/Television/ or $found =~ s/VID/Video/
0 0 0 $found =~ s/TV/Television/ or $found =~ s/VID/Video/ or $found =~ s/RAD/Radio/
0 0 0 $found =~ s/REE/Reel/ or $found =~ s/MC/MC (normal cassette)/