Branch Coverage

blib/lib/ExtUtils/XSBuilder/WrapXS.pm
Criterion Covered Total %
branch 0 326 0.0


line true false branch
63 0 0 unless ref $self
74 0 0 unless $filename
87 0 0 if $$warning
111 0 0 if $$warning
192 0 0 if ($file =~ m[^\Q$path\E(/|\\)(.*?)$]i)
208 0 0 -f $self->xs_include_dir . '/' . $fixup1 ? :
0 0 -f $self->xs_include_dir . '/' . $fixup2 ? :
316 0 0 unless (shift())->{'xs_includes'}
330 0 0 unless $name =~ /^DEFINE_/
345 0 0 unless $name =~ /^DEFINE_/
375 0 0 /^(?:\*|&)(.*?)$/ ? :
0 0 /^&/ ? :
378 0 0 if ($return_class =~ / /)
384 0 0 if ($structelt)
389 0 0 $return_type eq 'void' ? :
391 0 0 $numret == 1 ? :
0 0 $numret == 0 ? :
398 0 0 if $return_type and $return_type ne 'void'
399 0 0 if $numret
409 0 0 if ($structelt)
415 0 0 /^(?:\*|\&)(.*?)$/ ? :
416 0 0 /^\*(.*?)$/ ? :
417 0 0 if $retargs{$type}{'class'}
418 0 0 unless ($args{$type}{'class'} or $args{$type}{'type'})
425 0 0 if ($class =~ /\s/)
439 0 0 if ($structelt) { }
448 0 0 if $numret > 0
458 0 0 if ($return_type and $return_type ne 'void')
475 0 0 if $return_type and $return_type ne 'void'
481 0 0 unless ($userdataarg)
490 0 0 $return_type eq 'void' ? :
526 0 0 if $verbose
528 0 0 if ($name =~ s/^DEFINE_//)
531 0 0 if (needs_prefix($$func{'name'}))
537 0 0 defined $$_{'default'} ? :
542 0 0 if ($$func{'dispatch_argspec'}) { }
556 0 0 $name =~ /^DESTROY$/ ? :
560 0 0 @$retargs ? :
567 0 0 if ($dispatch =~ /^$myprefix/io)
576 0 0 if ($passthru)
587 0 0 if $proto
588 0 0 if $attrs
589 0 0 if $retdecl
591 0 0 if ($dispatch or $orig_args)
594 0 0 if ($dispatch) { }
595 0 0 if $dispatch =~ /^$myprefix/i
596 0 0 if ($orig_args and not $$func{'dispatch_argspec'})
597 0 0 $retargs{$_} ? :
602 0 0 if ($orig_args and @$orig_args)
604 0 0 $retargs{$_} ? :
610 0 0 if ($passthru)
615 0 0 $return_type eq 'void' ? :
618 0 0 $return_type eq 'void' ? :
0 0 $retdecl ? :
619 0 0 $retdecl ? :
621 0 0 if ($retdecl) { }
623 0 0 if ($retclass =~ / /)
631 0 0 if ($$_{'class'} =~ / /)
661 0 0 unless $func
662 0 0 if $seen{$$entry{'name'}}++
674 0 0 if ($$e{'class'} eq 'PV')
675 0 0 if (my $pool = $$e{'pool'})
741 0 0 if ($$e{'callback'})
826 0 0 if ($$e{'name'} =~ /^(.*?)\[(.*?)\]$/) { }
0 0 elsif (not $$e{'class'} =~ /::/ or $$e{'rtype'} =~ /\*$/) { }
843 0 0 if ($$e{'malloc'}) { }
848 0 0 if $@
911 0 0 if (not $$e{'class'} =~ /::/ or $$e{'rtype'} =~ /\*$/)
912 0 0 if ($$e{'free'})
916 0 0 if $@
925 0 0 if ($numfree)
952 0 0 if $verbose
953 0 0 unless ($struct)
968 0 0 if ($$e{'callback'}) { }
983 0 0 if ($$e{'class'} eq 'PV' and $val ne 'val') { }
0 0 elsif ($$e{'class'} =~ /::/ and not $$e{'rtype'} =~ /\*\s*$/) { }
0 0 elsif ($name =~ /^(.*?)\[(.*?)\]$/) { }
1012 0 0 if ($rdonly) { }
1021 0 0 if ($$e{'malloc'}) { }
0 0 elsif ($strncpy) { }
1026 0 0 if $@
1054 0 0 if $$struct{'has_new'}
1055 0 0 if $$struct{'has_new'}
1056 0 0 if $has_callbacks
1068 0 0 if (-e $$self{'DIR'})
1098 0 0 unless -d $dir
1114 0 0 unless defined $class
1149 0 0 if ($file =~ /^\./)
1156 0 0 unless open my $fh, '>', $name
1200 0 0 if $deps
1220 0 0 @parts ? :
1223 0 0 if (my $mod_h = $self->mod_h($class, 1))
1231 0 0 unless $class
1257 0 0 if $$self{'makefilepls'}{$class}
1274 0 0 if $complete
1275 0 0 if -e $file
1292 0 0 if $complete
1294 0 0 if -e $file
1350 0 0 unless $_[1]
1362 0 0 if (my $isa = $self->typemap->{'function_map'}{'isa'}{$module})
1381 0 0 if (my $boot = $self->typemap->{'function_map'}{'boot'}{$module})
1395 0 0 if $name =~ /$notshared$/o
1410 0 0 if (my $mod_h = $self->mod_h($module))
1424 0 0 if ($class)
1427 0 0 if $prefix
1429 0 0 if ($$func{'name'} =~ /^$myprefix/o)
1432 0 0 if ($$func{'name'} =~ /$class_prefix/)
1437 0 0 $prefix ? :
1444 0 0 if (my $destructor = $self->typemap->destructor($last_prefix))
1460 0 0 if (my $newxs = $$self{'newXS'}{$module})
1514 0 0 if (my $mod_pm = $self->mod_pm($module, 1))
1525 0 0 unless $text
1548 0 0 if $seen{$type}++ or $typemap->special($class)
1551 0 0 if ($class =~ /::/) { }
1552 0 0 if $seen{$class}++
1568 0 0 if $$code{$dir}
1584 0 0 unless open my $fh, '>', $file
1596 0 0 if $class eq 'HV'
1597 0 0 if $class eq 'AV'
1636 0 0 unless (ref $detail eq 'ARRAY')
1647 0 0 if $$f{'prefix'} and $method =~ /^$$f{'prefix'}(.*?)$/
1648 0 0 if $$f{'class_xs_prefix'} and $method =~ /^(?:DEFINE_)?$$f{'class_xs_prefix'}(.*?)$/
1650 0 0 unless ($method)
1657 0 0 if ($member) { }
1664 0 0 if ($args and @$args)
1672 0 0 unless (_pod_is_function($$first_param{'class'}))
1682 0 0 if ($$f{'return_type'} and $$f{'return_type'} ne 'void')
1684 0 0 $rettype ? :
1717 0 0 if (my $mod_h = $self->mod_h($module))
1742 0 0 if (defined $$details{'comment'} and my $comment = $$details{'comment'})
1747 0 0 if ($comment =~ s/^\s*(\S*\.c)\s+\*\n//s)
1768 0 0 if ($line =~ /^\s*\*\s+[\\\@](\w+)\s+(.*)\s*$/) { }
0 0 elsif ($doxygen) { }
0 0 elsif ($line =~ /$ordinary_line/) { }
1773 0 0 $info =~ /$pre_begin/ ? :
1774 0 0 $info =~ /$pre_end/ ? :
1777 0 0 if (defined $$details{'comment_parsed'}{"doxygen_$type"}) { }
1789 0 0 if ($line =~ /^\s*$/)
1796 0 0 unless defined $$details{'comment_parsed'}{"doxygen_$type"}
1798 0 0 unless $line =~ /$ordinary_line/
1801 0 0 if $pre
1804 0 0 $info =~ /$pre_begin/ ? :
1805 0 0 $info =~ /$pre_end/ ? :
1817 0 0 unless ($pre)
1829 0 0 if $pre
1832 0 0 $info =~ /$pre_begin/ ? :
1833 0 0 $info =~ /$pre_end/ ? :
1837 0 0 unless $info =~ /^\s*$/ and $$details{'comment_parsed'}{'func_desc'} eq ''
1841 0 0 if (defined $$details{'comment_parsed'}{'unidentified'}) { }
1851 0 0 if defined $$details{'comment_parsed'}{'func_desc'}
1854 0 0 if (defined $$details{'comment_parsed'}{'doxygen_param'})
1869 0 0 if (defined $$details{'comment_parsed'}{'doxygen_defgroup'})
1880 0 0 if (defined $$details{'comment_parsed'}{'doxygen_ingroup'})
1891 0 0 if (defined $$details{'comment_parsed'}{"doxygen_$_"})
1912 0 0 if ($class)
1914 0 0 if $prefix
1916 0 0 if ($$details{'name'} =~ /^$myprefix/o)
1919 0 0 if ($$details{'name'} =~ /$class_prefix/)
1932 0 0 if ($boot)
1984 0 0 unless ($module)
2011 0 0 if (my $newxs = $$self{'newXS'}{$module})
2055 0 0 unless ref $self
2058 0 0 if $prefix