Condition Coverage

blib/lib/XS/Install/ParseXS.pm
Criterion Covered Total %
condition 17 79 21.5


and 3 conditions

line !l l&&!r l&&r condition
141 0 6 1 $lines->[0] and $lines->[0] =~ /^([A-Z]+)\s*\{/
148 0 3 4 $lines->[0] and $lines->[0] =~ /^(.+?)\s+([^\s()]+\s*(\((?:[^()]|(?3))*\)))\s*(.*)/
154 0 0 0 $lines->[0] and $lines->[0] =~ s/^\s*\{//
174 0 0 4 $lines->[0] and $lines->[0] =~ /\S/
192 0 0 0 $attr eq "ALIAS" and my @alias = split(/\s*,\s*/, $val, 0)
243 0 2 4 $info{'type'} && $info{'name'}
268 0 4 0 $first_arg && $first_arg->{'name'} eq 'THIS'
276 0 0 0 $func ne "new" and $func ne 'DESTROY' || !$is_method
291 2 0 2 $para =~ /^CODE\s*:/m and not $para =~ /^OUTPUT\s*:/m
314 0 0 0 $func eq "DESTROY" and $is_method
458 0 0 0 defined $self->{'argtype_seen'}{$var_name} and not $self->{'processing_arg_with_types'}
485 0 0 0 $self->{'in_out'}{$var_name} and $self->{'in_out'}{$var_name} =~ /^OUT/
0 0 0 $self->{'in_out'}{$var_name} and $self->{'in_out'}{$var_name} =~ /^OUT/ and not $var_init =~ /\S/

or 2 conditions

line l !l condition
399 1 0 $out //= ""
482 0 0 $typemap && $typemap->proto || '$'

or 3 conditions

line l !l&&r !l&&!r condition
69 0 0 0 $linno->[$idx] // $linno->[-1]
78 0 0 0 $linno->[$idx] // $linno->[-1]
176 0 0 0 $linno->[0] ||= $deflinno
227 0 0 7 not $out_type or $out_type =~ /^#/
0 3 4 not $out_type or $out_type =~ /^#/ or $out_type =~ /^[_A-Z]+\s*:([^:]|$)/
243 6 0 0 $info{'type'} || $info{'name'}
251 2 0 0 $info{'type'} ||= $info{'name'}
267 0 0 4 exists $attrs{'const'} or exists $attrs{'CONST'}
276 0 0 0 $func ne 'DESTROY' || !$is_method
458 0 0 0 $self->{'arg_list'}{$var_name}++ or defined $self->{'argtype_seen'}{$var_name} and not $self->{'processing_arg_with_types'}
480 0 0 0 $typemap or $is_overridden_typemap
485 0 0 0 $var_init =~ /^[=;]\s*NO_INIT\s*;?\s*$/ or $self->{'in_out'}{$var_name} and $self->{'in_out'}{$var_name} =~ /^OUT/ and not $var_init =~ /\S/