Condition Coverage

lib/SIRTX/VM/Assembler.pm
Criterion Covered Total %
condition 0 334 0.0


and 2 conditions

line l !l condition
990 0 0 $c eq 'of' || $c eq 'as' || $c eq 'name' and scalar @in

and 3 conditions

line !l l&&!r l&&r condition
378 0 0 0 defined $self->{'aliases'}{'size$out$'} and $self->{'aliases'}{'size$out$'}[-1] > $boundary
398 0 0 0 defined $self->{'aliases'}{'size$out$'} and $self->{'aliases'}{'size$out$'}[-1] > $boundary
651 0 0 0 defined $auto_host_defined and defined $auto_host_defined->[2]
671 0 0 0 $self->_alive and defined(my $line = readline $in)
725 0 0 0 $cmd ne ".pushname" and $cmd ne ".popname"
753 0 0 0 $cmd eq ".quit" and scalar @args == 0
0 0 0 $cmd eq ".profile" and scalar @args > 0
0 0 0 $cmd eq ".pushname" and not scalar @args & 1
0 0 0 $cmd eq ".tag" and scalar @args == 2
0 0 0 $cmd eq ".tag" and scalar @args == 2 and $args[0] =~ /^[0-9a-zA-Z_]+$/u
0 0 0 $cmd eq ".tag" and scalar @args == 2 and $args[0] =~ /^[0-9a-zA-Z_]+$/u and defined $_type_to_sni{$args[1]}
0 0 0 $cmd eq ".tag" and scalar @args == 2
0 0 0 $cmd eq ".tag" and scalar @args == 2 and $args[0] =~ /^[0-9a-zA-Z_]+$/u
0 0 0 $cmd eq ".tag" and scalar @args == 2 and $args[0] =~ /^[0-9a-zA-Z_]+$/u and $self->_get_value_type($args[1]) =~ /:$/u
0 0 0 $cmd eq ".tag" and scalar @args == 2
0 0 0 $cmd eq ".tag" and scalar @args == 2 and $args[0] =~ /^[0-9a-zA-Z_]+$/u
0 0 0 $cmd eq ".tag" and scalar @args == 2 and $args[0] =~ /^[0-9a-zA-Z_]+$/u and $self->_get_value_type($args[1]) eq "int"
0 0 0 $cmd eq ".tag" and scalar @args == 3
0 0 0 $cmd eq ".tag" and scalar @args == 3 and $args[0] =~ /^[0-9a-zA-Z_]+$/u
0 0 0 $cmd eq ".tag" and scalar @args == 3 and $args[0] =~ /^[0-9a-zA-Z_]+$/u and $args[1] =~ /^[0-9a-zA-Z_]+$/u
0 0 0 $cmd eq ".tag" and scalar @args == 3 and $args[0] =~ /^[0-9a-zA-Z_]+$/u and $args[1] =~ /^[0-9a-zA-Z_]+$/u and $self->_get_value_type($args[2]) eq "int"
0 0 0 $cmd eq ".string" and scalar @args >= 2
0 0 0 $cmd eq "open" and scalar @args == 2
0 0 0 $cmd eq "open" and scalar @args == 2 and $self->_get_value_type($args[0]) eq "reg"
0 0 0 $cmd eq "open" and scalar @args == 2 and $self->_get_value_type($args[0]) eq "reg" and $self->_get_value_type($args[1]) eq "string"
0 0 0 $cmd eq "open" and scalar @args == 2
0 0 0 $cmd eq "open" and scalar @args == 2 and $self->_get_value_type($args[0]) eq "reg"
0 0 0 $cmd eq "open" and scalar @args == 2 and $self->_get_value_type($args[0]) eq "reg" and $self->_get_value_type($args[1]) eq "port"
0 0 0 $cmd eq "byte_transfer" and scalar @args == 2
0 0 0 $cmd eq "byte_transfer" and scalar @args == 2 and $self->_get_value_type($args[0]) eq "reg"
0 0 0 $cmd eq "byte_transfer" and scalar @args == 2 and $self->_get_value_type($args[0]) eq "reg" and $self->_get_value_type($args[1]) eq "string"
0 0 0 $cmd eq ".rodata" and scalar @args == 0
0 0 0 $cmd eq ".noops" and scalar @args == 1
0 0 0 $cmd eq ".org" and scalar @args == 1
0 0 0 $cmd eq ".align" and scalar @args == 1
0 0 0 $cmd eq ".host_defined_auto_range" and scalar @args == 2
0 0 0 $cmd eq ".host_defined_auto_range" and scalar @args == 2 and $self->_get_value_type($args[0]) eq "int"
0 0 0 $cmd eq ".host_defined_auto_range" and scalar @args == 2 and $self->_get_value_type($args[0]) eq "int" and $self->_get_value_type($args[1]) eq "int"
0 0 0 $cmd eq ".label" and scalar @args == 1 || scalar @args == 3
0 0 0 $cmd eq ".label" and scalar @args == 1 || scalar @args == 3 and $args[0] =~ /^[a-z0-9A-Z_]+$/u
0 0 0 $cmd eq ".label" and scalar @args == 1 || scalar @args == 3 and $args[0] =~ /^[a-z0-9A-Z_]+$/u and scalar @args == 1 || $args[1] eq 'as' && $args[2] =~ /^~[0-9]+$/u
0 0 0 $cmd eq ".endlabel" and scalar @args == 0
0 0 0 $cmd eq ".endlabel" and scalar @args == 0 and defined $self->{'current'}{'label'}
0 0 0 $cmd eq ".function" and scalar @args == 1 || scalar @args == 3
0 0 0 $cmd eq ".function" and scalar @args == 1 || scalar @args == 3 and $args[0] =~ /^[a-z0-9A-Z_]+$/u
0 0 0 $cmd eq ".function" and scalar @args == 1 || scalar @args == 3 and $args[0] =~ /^[a-z0-9A-Z_]+$/u and scalar @args == 1 || $args[1] eq 'as' && $args[2] =~ /^~[0-9]+$/u
0 0 0 $cmd eq ".endfunction" and scalar @args == 0
0 0 0 $cmd eq ".endfunction" and scalar @args == 0 and defined $self->{'current'}{'function'}
0 0 0 $cmd eq ".section" and scalar @args == 1 || scalar @args == 2
0 0 0 $cmd eq ".section" and scalar @args == 1 || scalar @args == 2 and not defined $self->{'current'}{'section'}
0 0 0 $cmd eq ".endsection" and scalar @args == 0
0 0 0 $cmd eq ".endsection" and scalar @args == 0 and defined(my $section = $self->{'current'}{'section'})
0 0 0 $cmd eq ".chunk" and scalar @args >= 2
0 0 0 $cmd eq ".endchunk" and scalar @args == 0
0 0 0 $cmd eq ".endchunk" and scalar @args == 0 and defined $self->{'current'}{'chunk'}
0 0 0 $cmd =~ /^\.(regmap_auto|synthetic_auto_unref)$/u and scalar @args == 1
0 0 0 $cmd eq ".map" and scalar @args == 2
0 0 0 $cmd eq ".regattr" and scalar @args >= 1
0 0 0 $cmd eq "map" and scalar @args == 2
0 0 0 defined $_info{$cmd} and scalar @args > 1
0 0 0 defined $_info{$cmd} and scalar @args > 1 and $args[0] =~ /^~0?$/u
902 0 0 0 scalar @args == 3 and $args[1] eq "as"
0 0 0 scalar @args == 3 and $args[1] eq "as" and $args[2] =~ /^~[0-9]+$/u
913 0 0 0 scalar @args == 3 and $args[1] eq "as"
0 0 0 scalar @args == 3 and $args[1] eq "as" and $args[2] =~ /^~[0-9]+$/u
951 0 0 0 $l != 6 and $l != 4
0 0 0 $l != 6 and $l != 4 and $l != 2
0 0 0 $l != 6 and $l != 4 and $l != 2 and $l != 0
1007 0 0 0 defined $info{'name'} and length $info{'name'}
1142 0 0 0 scalar @argmap >= 2 and $argmap[-2] eq "any..."
1166 0 0 0 $t =~ /:$/u && $tw eq 'id'
0 0 0 $t ne $tw and not $t =~ /:$/u && $tw eq 'id'
1172 0 0 0 $t =~ /:$/u && $type eq 'id'
0 0 0 $t ne $type and not $t =~ /:$/u && $type eq 'id'

or 2 conditions

line l !l condition
373 0 0 $self->{'aliases'}{'end$inner$section$' . $section} // (next)
385 0 0 $self->{'aliases'}{'boundary$text'} //= []
386 0 0 $self->{'aliases'}{'end$boundary$text'} //= []
393 0 0 $self->{'aliases'}{'end$inner$section$' . $section} // (next)
405 0 0 $self->{'aliases'}{'boundary$load'} //= []
406 0 0 $self->{'aliases'}{'end$boundary$load'} //= []
461 0 0 $self->{'settings'}{$key} // ""
467 0 0 scalar eval { do { $rf->get_physical_by_name($reg)->name } } // ""
476 0 0 $self->{'regmap_last_used'}{$physical} // 0
488 0 0 $mode //= "<"
540 0 0 $warn //= 0
559 0 0 $self->{'aliases'}{$name} //= []
563 0 0 $self->{'aliases'}{'end$' . $name} //= []
564 0 0 $self->{'aliases'}{'size$' . $name} //= []
599 0 0 $regmap_last_used->{$a} // 0
0 0 $regmap_last_used->{$b} // 0
623 0 0 eval { do { $rf->get_logical_by_name($a) } } // 999
0 0 eval { do { $rf->get_logical_by_name($b) } } // 999
641 0 0 $self->{'aliases'}{'size$' . $key} //= []
766 0 0 $self->{'aliases'}{$key} //= []
779 0 0 $self->{'aliases'}{'tag$' . $args[0]} //= []
781 0 0 $self->{'aliases'}{'tag$' . $args[0]} //= []
783 0 0 $self->{'aliases'}{'tag$' . $args[0]} //= []
785 0 0 $self->{'aliases'}{'tag$' . $args[0]} //= []
822 0 0 $self->{'aliases'}{'size$' . $key} //= []
856 0 0 $aliases->{$key} //= []
857 0 0 $$aliases{'end$' . $key} //= []
903 0 0 $self->{'aliases'}{'hostdefined$label$' . $self->{'current'}{'label'}} //= []
914 0 0 $self->{'aliases'}{'hostdefined$function$' . $self->{'current'}{'function'}} //= []
1019 0 0 $self->{'aliases'}{'hostdefined$chunk$' . $info{'name'}} //= []
1272 0 0 $rel //= 0

or 3 conditions

line l !l&&r !l&&!r condition
507 0 0 0 $_profiles{$b} // croak('Bad profile: ' . $b)
0 0 0 $_profiles{$a} // croak('Bad profile: ' . $a)
723 0 0 0 $autodie //= do { \my $x }
753 0 0 0 scalar @args == 1 || scalar @args == 3
0 0 0 scalar @args == 1 || $args[1] eq 'as' && $args[2] =~ /^~[0-9]+$/u
0 0 0 scalar @args == 1 || scalar @args == 3
0 0 0 scalar @args == 1 || $args[1] eq 'as' && $args[2] =~ /^~[0-9]+$/u
0 0 0 scalar @args == 1 || scalar @args == 2
0 0 0 $cmd eq ".mine" or $cmd eq ".yours"
0 0 0 $cmd eq ".mine" or $cmd eq ".yours" or $cmd eq ".theirs"
0 0 0 $cmd eq ".hot" or $cmd eq ".cold"
0 0 0 $cmd eq ".hot" or $cmd eq ".cold" or $cmd eq ".lukewarm"
896 0 0 0 $end < $start or $start < 1
990 0 0 0 $c eq 'of' || $c eq 'as' || $c eq 'name'
1229 0 0 0 $_type_to_sni{$type} // croak('Unknown type: ' . $type)
1235 0 0 0 $value eq "true" or $value eq "false"