Branch Coverage

inc/Test/Builder.pm
Criterion Covered Total %
branch 74 344 21.5


line true false branch
11 0 3 if ($] < 5.008)
22 0 3 if ($] >= 5.008001 and $Test::Builder::Config{'useithreads'} and $INC{'threads.pm'}) { }
32 0 0 if ($type eq 'HASH') { }
0 0 elsif ($type eq 'ARRAY') { }
0 0 elsif ($type eq 'SCALAR') { }
47 0 0 if ($type eq 'HASH') { }
0 0 elsif ($type eq 'ARRAY') { }
0 0 elsif ($type eq 'SCALAR') { }
172 0 0 if ($self->{'Child_Name'})
206 0 0 if ('CODE' ne ref $subtests)
217 0 0 unless (eval { do { &$subtests(); 1 } })
226 0 0 if $error and not eval { do { $error->isa('Test::Builder::Exception') } }
254 0 0 unless $self->parent
255 0 0 if ($self->{'Child_Name'})
265 0 0 if ($self->{'Skip_All'}) { }
0 0 elsif (not @{$self->{'Test_Results'};}) { }
283 0 26 if (@_)
317 0 0 if ($self->parent)
424 0 1 unless $cmd
428 0 1 if $self->{'Have_Plan'}
430 1 0 if (my $method = $plan_cmds{$cmd}) { }
446 3 0 if ($arg) { }
0 0 elsif (not defined $arg) { }
475 3 0 if (@_)
476 0 3 unless $max =~ /^\+?\d+$/
482 3 0 unless $self->no_header
498 0 0 if $arg
532 0 3 if $self->{'Have_Output_Plan'}
535 0 3 if defined $directive
536 0 3 if defined $reason
584 0 0 if (defined $num_tests) { }
591 0 0 if ($self->{'Done_Testing'})
599 0 0 if ($self->expected_tests and $num_tests != $self->expected_tests) { }
607 0 0 unless $self->{'Have_Output_Plan'}
612 0 0 if $self->{'Expected_Tests'} != $self->{'Curr_Test'}
615 0 0 if $self->{'Curr_Test'} == 0
634 23 0 if $self->{'Expected_Tests'}
635 0 0 if $self->{'No_Plan'}
651 0 0 $self->parent ? :
653 0 0 unless $self->no_header
654 0 0 if ($self->parent)
676 3 0 if (defined $pack)
706 0 23 if ($self->{'Child_Name'} and not $self->{'In_Destroy'})
707 0 0 unless defined $name
713 23 0 $test ? :
721 0 23 if defined $name and $name =~ /^[\d\s]+$/
730 0 23 if $in_todo
737 23 0 if ($test) { }
739 0 0 $self->in_todo ? :
746 23 0 if $self->use_numbers
748 23 0 if (defined $name) { }
757 0 23 if ($self->in_todo) { }
772 0 23 unless ($test)
773 0 0 $self->in_todo ? :
774 0 0 if $ENV{'HARNESS_ACTIVE'}
777 0 0 if (defined $name) { }
786 0 23 unless $test or $self->in_todo
791 23 0 $test ? :
801 0 23 unless defined $plan
802 0 23 if $plan =~ /\D/
803 0 23 if $plan < $self->{'Curr_Test'}
814 0 90 if ($self->_is_object($$thing))
815 0 0 if (my $string_meth = overload::Method($$thing, $type))
827 0 90 if ref $thing
0 90 $self->_try(sub { $thing->isa('UNIVERSAL') if ref $thing; } ) ? :
842 0 0 unless $self->_is_dualvar($$val)
854 0 0 if ref $val
858 0 0 $numval ne $val ? :
0 0 if return $numval != 0
883 0 22 unless (defined $got and defined $expect)
888 0 0 unless $test
901 0 0 unless (defined $got and defined $expect)
906 0 0 unless $test
916 0 0 if (defined $$val) { }
917 0 0 if ($type eq 'eq' or $type eq 'ne') { }
978 0 0 unless (defined $got and defined $dont_expect)
983 0 0 unless $test
994 0 0 unless (defined $got and defined $dont_expect)
999 0 0 unless $test
1073 0 22 $numeric_cmps{$type} ? :
1077 0 22 if $error
1084 0 22 unless ($ok)
1087 0 0 if ($type =~ /^(eq|==)$/) { }
0 0 elsif ($type =~ /^(ne|!=)$/) { }
1103 0 0 defined $got ? :
1104 0 0 defined $expect ? :
1120 0 0 if defined $file and defined $line
1192 0 0 if $self->use_numbers
1194 0 0 if length $why
1232 0 0 if $self->use_numbers
1298 0 0 unless defined $regex
1303 0 0 if (_is_qr($regex)) { }
0 0 elsif (($re, $opts) = $regex =~ m[^ /(.*)/ (\w*) $ ]sx or (undef, $re, $opts) = $regex =~ /^ m([^\w\s]) (.+) \1 (\w*) $/sx) { }
1311 0 0 length $opts ? :
1322 0 0 if defined &re::is_regexp
1331 0 0 unless (defined $usable_regex)
1348 0 0 if $cmp eq '!~'
1354 0 0 unless ($ok)
1355 0 0 defined $this ? :
1356 0 0 $cmp eq '=~' ? :
1403 0 0 if $error and $opts{'die_on_fail'}
1405 0 158 wantarray ? :
1422 0 9 unless defined $maybe_fh
1424 9 0 if ref $maybe_fh eq 'GLOB'
1425 0 0 if ref \$maybe_fh eq 'GLOB'
1465 0 91 if (defined $level)
1497 0 23 if (defined $use_nums)
1533 0 6 if (defined $no)
1605 0 0 $self->in_todo ? :
1611 0 0 if $self->no_diag
1612 0 0 unless @msgs
1615 0 0 if $^C
1619 0 0 defined $_ ? :
1650 0 0 ref $_ ? :
1655 0 0 if $dumper->can('Sortkeys')
1684 0 26 if $^C
1695 0 26 unless $msg =~ /\n\z/
1736 3 26 if (defined $fh)
1745 3 0 if (defined $fh)
1754 3 0 if (defined $fh)
1765 9 0 if ($self->is_fh($file_or_fh)) { }
0 0 elsif (ref $file_or_fh eq 'SCALAR') { }
1770 0 0 if ($] >= 5.008) { }
1771 0 0 unless open $fh, '>>', $file_or_fh
1776 0 0 unless $fh = 'Test::Builder::IO::Scalar'->new($file_or_fh)
1781 0 0 unless open $fh, '>', $file_or_fh
1820 0 3 if $self->{'Opened_Testhandles'}
1824 0 3 unless open $Testout, '>&STDOUT'
1825 0 3 unless open $Testerr, '>&STDERR'
1843 0 0 if @src_layers
1928 0 0 if (defined $num)
1933 0 0 if ($num > @$test_results) { }
0 0 elsif ($num < @$test_results) { }
1934 0 0 @$test_results ? :
1975 3 0 if (@_)
2081 0 23 if defined $self->{'Todo'}
2085 0 23 if defined $todo
2104 0 69 unless $pack
2122 0 46 defined $self->{'Todo'} || $self->find_TODO ? :
2170 0 0 @_ ? :
2173 0 0 if ($self->in_todo)
2193 0 0 unless ($self->{'Start_Todo'})
2199 0 0 if ($self->{'Start_Todo'} and @{$self->{'Todo_Stack'};}) { }
2233 22 69 wantarray ? :
2277 0 0 if ($check)
2313 0 3 if $self->no_ending
2314 0 3 if $self->{'Ending'}++
2320 0 3 if ($self->{'Original_Pid'} != $$)
2325 0 0 if (not $self->{'Have_Plan'} and $self->{'Curr_Test'})
2332 0 3 unless ($self->{'Have_Plan'})
2337 0 3 if ($self->{'Bailed_Out'})
2343 3 0 if (@$test_results) { }
0 0 elsif ($self->{'Skip_All'}) { }
0 0 elsif ($real_exit_code) { }
2345 0 3 if ($self->{'No_Plan'})
2346 0 0 unless $self->no_header
2355 0 23 unless defined $test_results->[$idx]
2363 0 3 if ($num_extra != 0)
2364 0 0 $self->{'Expected_Tests'} == 1 ? :
2371 0 3 if ($num_failed)
2373 0 0 $num_failed == 1 ? :
2375 0 0 $num_extra == 0 ? :
2383 0 3 if ($real_exit_code)
2388 0 0 if _my_exit($real_exit_code)
2392 0 3 if ($num_failed) { }
0 3 elsif ($num_extra != 0) { }
2393 0 0 $num_failed <= 254 ? :
2402 3 0 if _my_exit($exit_code)
2405 0 0 if _my_exit(0)
2412 0 0 if _my_exit($real_exit_code)
2417 0 0 if _my_exit(255)
2425 3 0 if defined $Test