Condition Coverage

blib/lib/Config/AutoConf.pm
Criterion Covered Total %
condition 200 573 34.9


and 2 conditions

line l !l condition
2624 1 1 $self->check_header($_, $options) and return $_

and 3 conditions

line !l l&&!r l&&r condition
263 20 0 0 scalar @_ > 1 and ref $_[-1] eq 'HASH'
266 3 17 0 @_ and scalar @_ > 1
267 3 0 17 @_ and scalar @_ == 1
3 0 17 @_ and scalar @_ == 1 and ref $_[0] eq 'ARRAY'
278 160 5 0 -x $cmd and $options->{'action_on_true'}
5 0 0 -x $cmd and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
285 15 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
310 1 6 0 scalar @_ > 1 and ref $_[-1] eq 'HASH'
313 1 6 0 scalar @_ > 1 and ref $_[-1] eq 'ARRAY'
325 13 4 0 $ans and $options->{'action_on_true'}
4 0 0 $ans and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
332 3 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
363 1 0 0 defined $binary and $binary =~ /bison(?:\.(?:exe|com|bat|cmd))?$/
514 0 0 0 $self->link_if_else($conftest) and $have_lib = defined $libstest ? $libstest : 'none required'
671 72 28 162 &looks_like_number($_[0]) and defined $_num_to_msg[$_[0]]
849 0 0 0 defined $_[0] and $self->{'lang'} ne $_[0]
1066 0 0 0 scalar @compiler_flags and ref $compiler_flags[-1] eq 'HASH'
1143 125 0 37 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1171 72 90 0 $obj_file and not -f $obj_file
1185 72 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
1192 90 0 0 $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
1212 1 0 16 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1239 1 16 0 $obj_file and not -f $obj_file
1255 1 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
1273 3 13 0 $exe_file and not -f $exe_file
1290 2 0 1 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
1297 4 0 9 $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
1319 22 0 101 scalar @_ > 4 and ref $_[-1] eq 'HASH'
1325 117 0 6 defined $ENV{$cache_name} and not defined $self->{'cache'}{$cache_name}
1336 27 0 96 $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
27 13 83 $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE' and $self->{'cache'}{$cache_name}
1341 34 0 89 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
34 76 13 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE' and not $self->{'cache'}{$cache_name}
1389 0 0 5 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1458 0 0 1 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1480 3 0 0 $options->{'action_on_symbol_true'} && 'CODE' eq ref $options->{'action_on_symbol_true'}
3 0 0 $options->{'action_on_symbol_false'} && 'CODE' eq ref $options->{'action_on_symbol_false'}
1489 0 1 0 $have_syms and $options->{'action_on_true'}
1 0 0 $have_syms and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
1494 1 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
1 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE' and not $have_syms
1528 1 0 3 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1558 4 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
1564 0 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
1593 1 0 0 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1612 2 0 0 defined $options->{'action_on_function_true'} and ref $options->{'action_on_function_true'} eq 'CODE'
1617 2 0 0 defined $options->{'action_on_function_false'} and ref $options->{'action_on_function_false'} eq 'CODE'
1625 0 1 0 $have_funcs and $options->{'action_on_true'}
1 0 0 $have_funcs and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
1630 1 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
1 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE' and not $have_funcs
1665 1 0 0 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1695 0 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
1701 1 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
1743 1 0 4 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1777 5 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
1783 0 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
1812 0 0 1 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1834 3 0 0 $options->{'action_on_type_true'} && 'CODE' eq ref $options->{'action_on_type_true'}
3 0 0 $options->{'action_on_type_false'} && 'CODE' eq ref $options->{'action_on_type_false'}
1843 0 1 0 $have_types and $options->{'action_on_true'}
1 0 0 $have_types and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
1848 1 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
1 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE' and not $have_types
1952 0 0 1 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1963 0 1 0 defined $val and $options->{'action_on_true'}
1 0 0 defined $val and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
1968 1 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
1 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE' and not defined $val
1986 1 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
1992 0 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
2034 0 0 6 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2056 0 5 0 $typesize and $options->{'action_on_true'}
5 0 0 $typesize and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
2061 5 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
5 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE' and not $typesize
2079 6 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
2085 0 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
2115 0 0 1 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2140 5 0 0 $options->{'action_on_size_true'} && 'CODE' eq ref $options->{'action_on_size_true'}
5 0 0 $options->{'action_on_size_false'} && 'CODE' eq ref $options->{'action_on_size_false'}
2150 0 1 0 $have_sizes and $options->{'action_on_true'}
1 0 0 $have_sizes and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
2155 1 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
1 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE' and not $have_sizes
2192 0 0 7 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2226 0 5 0 $typealign and $options->{'action_on_true'}
5 0 0 $typealign and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
2231 5 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
5 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE' and not $typealign
2249 7 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
2255 0 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
2285 0 0 1 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2310 5 0 0 $options->{'action_on_align_true'} && 'CODE' eq ref $options->{'action_on_align_true'}
5 0 0 $options->{'action_on_align_false'} && 'CODE' eq ref $options->{'action_on_align_false'}
2320 0 1 0 $have_aligns and $options->{'action_on_true'}
1 0 0 $have_aligns and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
2325 1 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
1 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE' and not $have_aligns
2374 0 0 32 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2409 9 23 0 $have_member and $options->{'action_on_true'}
23 0 0 $have_member and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
2413 9 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
9 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE' and $options->{'action_on_false'}->()
2432 23 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
2438 9 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
2466 0 0 2 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2491 30 0 0 $options->{'action_on_member_true'} && 'CODE' eq ref $options->{'action_on_member_true'}
30 0 0 $options->{'action_on_member_false'} && 'CODE' eq ref $options->{'action_on_member_false'}
2501 0 2 0 $have_members and $options->{'action_on_true'}
2 0 0 $have_members and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
2506 2 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
2 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE' and not $have_members
2522 0 0 28 scalar @_ > 4 and ref $_[-1] eq 'HASH'
2560 6 0 24 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2597 28 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
2603 2 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
2622 0 1 0 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2647 0 0 2 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2671 22 0 0 $options->{'action_on_header_true'} && 'CODE' eq ref $options->{'action_on_header_true'}
22 0 0 $options->{'action_on_header_false'} && 'CODE' eq ref $options->{'action_on_header_false'}
2680 0 2 0 $all_headers and $options->{'action_on_true'}
2 0 0 $all_headers and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
2685 2 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
2 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE' and not $all_headers
2708 0 0 1 scalar @_ > 1 and ref $_[-1] eq 'HASH'
2730 1 0 0 scalar @_ > 1 and ref $_[-1] eq 'HASH'
2801 1 0 0 scalar @_ > 1 and ref $_[-1] eq 'HASH'
2829 1 0 0 $options->{'action_on_header_true'} && 'CODE' eq ref $options->{'action_on_header_true'}
1 0 0 $options->{'action_on_header_false'} && 'CODE' eq ref $options->{'action_on_header_false'}
2848 1 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
2854 0 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
2859 0 0 1 $have_dirent and $have_dirent = $header
2866 0 1 0 $have_dirent and $options->{'action_on_true'}
1 0 0 $have_dirent and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
2871 1 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
1 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE' and not $have_dirent
3011 0 0 7 $perllib =~ /^\-l(\w+)$/ and push @{$$self{'extra_libs'};}, "$1"
3086 0 2 0 scalar @_ > 1 and ref $_[-1] eq 'HASH'
3090 0 0 2 $lib and $func
3094 2 0 0 scalar @other_libs == 1 and ref $other_libs[0] eq 'ARRAY'
3128 1 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
3134 1 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
3180 0 1 6 scalar @_ > 1 and ref $_[-1] eq 'HASH'
3184 0 0 7 defined $libs and 'ARRAY' eq ref $libs
0 0 7 defined $libs and 'ARRAY' eq ref $libs and scalar @{$libs;} > 0
3190 7 0 0 scalar @other_libs == 1 and ref $other_libs[0] eq 'ARRAY'
3213 2 0 7 $options->{'action_on_lib_true'} && 'CODE' eq ref $options->{'action_on_lib_true'}
2 0 7 $options->{'action_on_lib_false'} && 'CODE' eq ref $options->{'action_on_lib_false'}
3224 7 2 0 defined $libstest and scalar @other_libs > 1
9 0 0 defined $libstest and scalar @other_libs > 1 and ref $other_libs[0] eq 'ARRAY'
3242 0 7 0 $have_lib and $options->{'action_on_true'}
7 0 0 $have_lib and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
3247 7 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
7 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE' and not $have_lib
3263 7 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
3301 0 0 3 scalar @_ > 1 and ref $_[-1] eq 'HASH'
3306 2 0 1 defined $options->{'action_on_lib_true'} and defined $options->{'action_on_func_lib_true'}
3309 1 0 1 defined $options->{'action_on_lib_false'} and defined $options->{'action_on_func_lib_false'}
3345 6 0 0 $options->{'action_on_func_true'} && 'CODE' eq ref $options->{'action_on_func_true'}
6 0 0 $options->{'action_on_func_false'} && 'CODE' eq ref $options->{'action_on_func_false'}
0 0 6 $options->{'action_on_func_lib_true'} && 'CODE' eq ref $options->{'action_on_func_lib_true'}
0 0 6 $options->{'action_on_func_lib_false'} && 'CODE' eq ref $options->{'action_on_func_lib_false'}
3357 0 1 0 not $fail and $options->{'action_on_true'}
1 0 0 not $fail and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
3362 1 0 0 $fail and $options->{'action_on_false'}
0 0 0 $fail and $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
3430 0 0 0 scalar @_ > 1 and ref $_[-1] eq 'HASH'
3450 0 0 0 &looks_like_number($pkg_exists) and $pkg_exists == 0
3459 0 0 0 $CFLAGS and not &looks_like_number($CFLAGS)
0 0 0 $CFLAGS and not &looks_like_number($CFLAGS) and @pkg_cflags = map({$_ =~ s/^\s+//; $_ =~ s/\s+$//; Text::ParseWords::shellwords($_);} split(/\n/, $CFLAGS, 0))
3467 0 0 0 $LIBS and not &looks_like_number($LIBS)
3478 0 0 0 $pkg_config_flags and $options->{'action_on_true'}
0 0 0 $pkg_config_flags and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
3483 0 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
0 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE' and not $pkg_config_flags
3611 0 0 0 scalar @_ > 1 and ref $_[-1] eq 'HASH'
3621 0 0 0 $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
3644 0 0 0 $self->check_produce_xs_build(@_) and not $self->{'c_ac_flags'}{'notest_loadable_xs'}
0 0 0 $self->check_produce_xs_build(@_) and not $self->{'c_ac_flags'}{'notest_loadable_xs'} and $self->check_linkable_xs_so_or_die
3709 0 0 0 defined $impl and defined $self->{'lang_supported'}{$lang}
0 0 0 defined $impl and defined $self->{'lang_supported'}{$lang} and $impl ne $self->{'lang_supported'}{$lang}
3713 0 0 0 defined $impl and not defined $self->{'lang_supported'}{$lang}
3731 0 0 0 $options->{$callback} and ref $options->{$callback} eq 'CODE'
3732 0 0 0 @_ and wantarray

or 2 conditions

line l !l condition
3614 0 0 $_[0] || ['C']
3851 150 27 shift() || ''

or 3 conditions

line l !l&&r !l&&!r condition
1174 72 0 90 $exception or not $obj_file
1241 1 0 16 $exception or not $obj_file
1279 3 0 13 $exception or not $exe_file
3447 0 0 0 defined $ENV{$ENV_CFLAGS} || defined $ENV{$ENV_LIBS} || _pkg_config_flag($package, '--exists') eq ''