Condition Coverage

blib/lib/ExtUtils/ParseXS.pm
Criterion Covered Total %
condition 119 217 54.8


and 3 conditions

line !l l&&!r l&&r condition
271 17 71 5 @{$self->{'line'};} and not $self->{'line'}[0] =~ /^[^\#]/
284 69 1 1 $XSS_work_idx and not $self->{'XSStack'}[$XSS_work_idx]{'varname'}
329 0 0 1 $self->{'WantLineNumbers'} and not $self->{'line'}[0] =~ /^\s*#\s*line\b/
341 0 56 0 $self->{'argtypes'} and $self->{'ret_type'} =~ s/^(.*?\w.*?)\s*\b(\w+\s*\(.*)/$1/s
384 0 9 47 $self->{'argtypes'} and $orig_args =~ /\S/
397 4 53 13 defined $pre and length $pre
400 0 8 5 $self->{'inout'} and s/^(IN|IN_OUTLIST|OUTLIST|OUT|IN_OUT)\b\s*//
438 0 0 0 $self->{'inout'} and s/^(IN|IN_OUTLIST|OUTLIST|IN_OUT|OUT)\b\s*//
462 0 0 4 $args[$i] eq "" and $i == $#args
493 22 34 0 $CODE && join($", @{$self->{'line'};}) =~ /(\bST\s*\([^;]*=) | (\bXST_m\w+\s*\()/x
582 0 57 0 not $self->{'thisdone'} and defined $class
622 0 0 36 $self->{'optimize'} and $outputmap
0 9 27 $self->{'optimize'} and $outputmap and $outputmap->targetable
635 18 0 0 defined $class and $self->{'func_name'} eq "DESTROY"
700 30 27 0 $self->{'have_CODE_with_RETVAL'} and not $self->{'have_OUTPUT'}
57 0 0 $self->{'have_CODE_with_RETVAL'} and not $self->{'have_OUTPUT'} and $self->{'ret_type'} ne "void"
720 34 23 0 $self->{'gotRETVAL'} and $self->{'RETVAL_code'}
726 0 5 27 $self->{'optimize'} && $outputmap && $outputmap->targetable
735 0 27 0 not $trgt->{'with_size'} and $trgt->{'type'} eq "p"
782 57 0 0 $self->{'ScopeThisXSUB'} and not $PPCODE
866 50 0 6 $self->{'XsubAliases'} and keys %{$$self{"XsubAliases"};}
1076 633 0 56 not /\S/ and @{$self->{'line'};}
1084 48 0 0 not /\S/ and @{$self->{'line'};}
1090 14 1 33 $self->{'WantLineNumbers'} and not /^\s*#\s*line\b/
15 0 33 $self->{'WantLineNumbers'} and not /^\s*#\s*line\b/ and not /^#if XSubPPtmp/
1091 1 47 83 defined $_ and not /^$BLOCK_regexp/o
1104 5 0 5 not /\S/ and @{$self->{'line'};}
1108 0 5 5 defined $_ and not /^$BLOCK_regexp/o
1128 1 1 0 $self->{'condnum'} and $self->{'cond'} eq ""
1169 49 13 0 defined $self->{'argtype_seen'}{$var_name} and not $self->{'processing_arg_with_types'}
1196 57 0 4 $self->{'in_out'}{$var_name} and $self->{'in_out'}{$var_name} =~ /^OUT/
57 0 4 $self->{'in_out'}{$var_name} and $self->{'in_out'}{$var_name} =~ /^OUT/ and not $var_init =~ /\S/
1243 0 8 23 not $self->{'gotRETVAL'} and $outarg eq "RETVAL"
1268 8 0 0 exists $self->{'in_out'}{$outarg} and $self->{'in_out'}{$outarg} =~ /OUT$/
1359 0 16 0 not $is_symbolic and $value =~ /:/
1399 16 0 0 $value eq 0 and not defined $self->{'XsubAlias'}{$fname}
1400 16 0 0 @keys and $self->{'author_warnings'}
1648 1 0 0 /\|\s*$/ and /^\s*perl\s/
1692 0 0 0 not /^\"/ and length $_ > 0
1707 0 1 0 defined $command and $command =~ /\s/
1 0 0 defined $command and $command =~ /\s/ and not $command =~ /[$quote]/
1792 1 1 0 $isPipe and $?
1884 86 10 0 not defined $self->{'lastline'} and $self->{'XSStack'}[-1]{'type'} eq "if"
1925 346 75 148 $self->{'lastline'} =~ /^\S/ and @{$self->{'line'};}
421 74 74 $self->{'lastline'} =~ /^\S/ and @{$self->{'line'};} and $self->{'line'}[-1] eq ""
1947 492 3 0 $final and @{$self->{'line'};}
1960 488 0 0 $self->{'lastline'} =~ /\\$/ and defined($tmp_line = readline $self->{'FH'})
1971 11 75 101 @{$self->{'line'};} and $self->{'line'}[-1] eq ""
1997 0 0 0 $init =~ s/^\+// and $num
2045 38 16 1 $xstype eq "T_PV" and exists $self->{'lengthof'}{$var}

or 2 conditions

line l !l condition
1007 1 0 $self->{'Fallback'}{$package} || '&PL_sv_undef'
1063 1 0 $_[0]{'errors'} || 0
1066 0 1 $ExtUtils::ParseXS::Singleton->{'errors'} || 0
1193 0 56 $typemap && $typemap->proto || '$'
1871 6 0 $self->current_line_number || 0

or 3 conditions

line l !l&&r !l&&!r condition
413 13 0 0 length $pre or $islength
424 4 1 8 $out_type eq "OUTLIST" or $islength
450 0 0 0 defined $static || $self->{'func_name'} eq 'new'
583 0 0 0 defined $static or $self->{'func_name'} eq "new"
625 7 0 50 @fake_INPUT or @fake_INPUT_pre
715 0 2 1 $self->{'gotRETVAL'} or $wantRETVAL
720 23 9 25 $self->{'gotRETVAL'} or $wantRETVAL
991 0 1 7 defined $self->{'XsubAliases'} or defined $self->{'interfaces'}
1022 0 1 7 defined $self->{'XsubAliases'} or defined $self->{'interfaces'}
1169 0 0 62 $self->{'arg_list'}{$var_name}++ or defined $self->{'argtype_seen'}{$var_name} and not $self->{'processing_arg_with_types'}
1191 56 0 0 $typemap or $is_overridden_typemap
1196 1 4 57 $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/
1728 0 0 1 /^\s*\|/ or /\|\s*$/
1906 560 9 3 not $self->{'lastline'} =~ /^\s*#/ or $self->{'lastline'} =~ /^\#[ \t]* (?: (?:if|ifn?def|elif|else|endif|elifn?def| define|undef|pragma|error| warning|line\s+\d+|ident) \b | (?:include(?:_next)?|import) \s* ["<] .* [>"] ) /x
2044 0 0 0 $xstype =~ s/OBJ$/REF/ or $xstype =~ s/^T_REF_IV_PTR$/T_PTRREF/
2099 0 1 51 $self->{'ScopeThisXSUB'} or not $expr =~ /^\s*\$var =/
2253 0 0 5 $do_mortal or $do_setmagic
2268 0 0 5 $do_mortal or $do_setmagic
0 0 5 $do_mortal or $do_setmagic or $do_copy_tmp