Condition Coverage

blib/lib/Config/AutoConf.pm
Criterion Covered Total %
condition 201 576 34.9


and 2 conditions

line l !l condition
2625 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'
279 160 5 0 $is_executable and $options->{'action_on_true'}
5 0 0 $is_executable and $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
286 15 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
311 1 6 0 scalar @_ > 1 and ref $_[-1] eq 'HASH'
314 1 6 0 scalar @_ > 1 and ref $_[-1] eq 'ARRAY'
326 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'
333 3 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
364 1 0 0 defined $binary and $binary =~ /bison(?:\.(?:exe|com|bat|cmd))?$/
515 0 0 0 $self->link_if_else($conftest) and $have_lib = defined $libstest ? $libstest : 'none required'
672 72 28 162 &looks_like_number($_[0]) and defined $_num_to_msg[$_[0]]
850 0 0 0 defined $_[0] and $self->{'lang'} ne $_[0]
1067 0 0 0 scalar @compiler_flags and ref $compiler_flags[-1] eq 'HASH'
1144 125 0 37 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1172 72 90 0 $obj_file and not -f $obj_file
1186 72 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
1193 90 0 0 $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
1213 1 0 16 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1240 1 16 0 $obj_file and not -f $obj_file
1256 1 0 0 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
1274 3 13 0 $exe_file and not -f $exe_file
1291 2 0 1 $options->{'action_on_false'} and ref $options->{'action_on_false'} eq 'CODE'
1298 4 0 9 $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
1320 22 0 101 scalar @_ > 4 and ref $_[-1] eq 'HASH'
1326 117 0 6 defined $ENV{$cache_name} and not defined $self->{'cache'}{$cache_name}
1337 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}
1342 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}
1390 0 0 5 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1459 0 0 1 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1481 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'}
1490 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'
1495 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
1529 1 0 3 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1559 4 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
1565 0 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
1594 1 0 0 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1613 2 0 0 defined $options->{'action_on_function_true'} and ref $options->{'action_on_function_true'} eq 'CODE'
1618 2 0 0 defined $options->{'action_on_function_false'} and ref $options->{'action_on_function_false'} eq 'CODE'
1626 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'
1631 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
1666 1 0 0 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1696 0 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
1702 1 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
1744 1 0 4 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1778 5 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
1784 0 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
1813 0 0 1 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1835 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'}
1844 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'
1849 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
1953 0 0 1 scalar @_ > 2 and ref $_[-1] eq 'HASH'
1964 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'
1969 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
1987 1 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
1993 0 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
2035 0 0 6 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2057 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'
2062 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
2080 6 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
2086 0 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
2116 0 0 1 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2141 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'}
2151 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'
2156 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
2193 0 0 7 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2227 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'
2232 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
2250 7 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
2256 0 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
2286 0 0 1 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2311 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'}
2321 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'
2326 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
2375 0 0 32 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2410 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'
2414 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'}->()
2433 23 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
2439 9 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
2467 0 0 2 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2492 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'}
2502 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'
2507 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
2523 0 0 28 scalar @_ > 4 and ref $_[-1] eq 'HASH'
2561 6 0 24 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2598 28 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
2604 2 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
2623 0 1 0 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2648 0 0 2 scalar @_ > 2 and ref $_[-1] eq 'HASH'
2672 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'}
2681 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'
2686 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
2709 0 0 1 scalar @_ > 1 and ref $_[-1] eq 'HASH'
2731 1 0 0 scalar @_ > 1 and ref $_[-1] eq 'HASH'
2802 1 0 0 scalar @_ > 1 and ref $_[-1] eq 'HASH'
2830 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'}
2849 1 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
2855 0 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
2860 0 0 1 $have_dirent and $have_dirent = $header
2867 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'
2872 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
3012 0 0 7 $perllib =~ /^\-l(\w+)$/ and push @{$$self{'extra_libs'};}, "$1"
3087 0 2 0 scalar @_ > 1 and ref $_[-1] eq 'HASH'
3091 0 0 2 $lib and $func
3095 2 0 0 scalar @other_libs == 1 and ref $other_libs[0] eq 'ARRAY'
3129 1 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
3135 1 0 0 $options->{'action_on_cache_false'} and ref $options->{'action_on_cache_false'} eq 'CODE'
3189 0 1 6 scalar @_ > 1 and ref $_[-1] eq 'HASH'
3193 0 0 7 defined $libs and 'ARRAY' eq ref $libs
0 0 7 defined $libs and 'ARRAY' eq ref $libs and scalar @{$libs;} > 0
3199 7 0 0 scalar @other_libs == 1 and ref $other_libs[0] eq 'ARRAY'
3203 7 0 0 scalar @other_link_flags == 1 and ref $other_link_flags[0] eq 'ARRAY'
3227 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'}
3241 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'
3260 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'
3265 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
3281 7 0 0 $options->{'action_on_cache_true'} and ref $options->{'action_on_cache_true'} eq 'CODE'
3319 0 0 3 scalar @_ > 1 and ref $_[-1] eq 'HASH'
3324 2 0 1 defined $options->{'action_on_lib_true'} and defined $options->{'action_on_func_lib_true'}
3327 1 0 1 defined $options->{'action_on_lib_false'} and defined $options->{'action_on_func_lib_false'}
3363 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'}
3375 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'
3380 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'
3448 0 0 0 scalar @_ > 1 and ref $_[-1] eq 'HASH'
3468 0 0 0 &looks_like_number($pkg_exists) and $pkg_exists == 0
3477 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))
3485 0 0 0 $LIBS and not &looks_like_number($LIBS)
3496 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'
3501 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
3629 0 0 0 scalar @_ > 1 and ref $_[-1] eq 'HASH'
3639 0 0 0 $options->{'action_on_true'} and ref $options->{'action_on_true'} eq 'CODE'
3662 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
3727 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}
3731 0 0 0 defined $impl and not defined $self->{'lang_supported'}{$lang}
3749 0 0 0 $options->{$callback} and ref $options->{$callback} eq 'CODE'
3750 0 0 0 @_ and wantarray

or 2 conditions

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

or 3 conditions

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