Branch Coverage

inc/Test/Builder.pm
Criterion Covered Total %
branch 122 350 34.8


line true false branch
11 0 13 if ($] < 5.008)
22 0 13 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 2 if ($$self{'Child_Name'})
188 0 2 if ($parent_in_todo)
216 0 2 if ('CODE' ne ref $subtests)
234 0 2 unless $self->_plan_handled
238 0 2 unless (eval { do { &$run_the_subtests() } })
251 0 2 if $error and not eval { do { $error->isa('Test::Builder::Exception') } }
310 0 2 unless $self->parent
311 0 2 if ($$self{'Child_Name'})
322 0 2 if ($$self{'Skip_All'}) { }
0 2 elsif (not @{$$self{'Test_Results'};}) { }
340 2 71 if (@_)
374 0 2 if ($self->parent and $$ == $$self{'Original_Pid'})
482 7 1 unless $cmd
486 0 1 if $$self{'Have_Plan'}
488 1 0 if (my $method = $plan_cmds{$cmd}) { }
504 5 0 if ($arg) { }
0 0 elsif (not defined $arg) { }
532 5 9 if (@_)
533 0 5 unless $max =~ /^\+?\d+$/
539 5 0 unless $self->no_header
555 0 1 if $arg
588 0 15 if $$self{'Have_Output_Plan'}
591 0 15 if defined $directive
592 0 15 if defined $reason
641 0 9 if (defined $num_tests) { }
648 0 9 if ($$self{'Done_Testing'})
656 0 9 if ($self->expected_tests and $num_tests != $self->expected_tests) { }
664 9 0 unless $$self{'Have_Output_Plan'}
669 0 9 if $$self{'Expected_Tests'} != $$self{'Curr_Test'}
672 0 9 if $$self{'Curr_Test'} == 0
691 16 38 if $$self{'Expected_Tests'}
692 4 34 if $$self{'No_Plan'}
708 0 0 $self->parent ? :
710 0 0 unless $self->no_header
711 0 0 if ($self->parent)
733 13 0 if (defined $pack)
763 0 54 if ($$self{'Child_Name'} and not $$self{'In_Destroy'})
764 0 0 unless defined $name
770 54 0 $test ? :
778 0 54 if defined $name and $name =~ /^[\d\s]+$/
787 0 54 if $in_todo
794 0 54 if (not $test) { }
796 0 0 $self->in_todo ? :
803 54 0 if $self->use_numbers
805 51 3 if (defined $name) { }
814 0 54 if ($self->in_todo) { }
829 0 54 unless ($test)
830 0 0 $self->in_todo ? :
831 0 0 if $ENV{'HARNESS_ACTIVE'}
834 0 0 if (defined $name) { }
843 0 54 unless $test or $self->in_todo
848 54 0 $test ? :
858 34 20 unless defined $plan
859 4 16 if $plan =~ /\D/
860 0 16 if $plan < $$self{'Curr_Test'}
871 8 120 if ($self->_is_object($$thing))
872 0 8 if (my $string_meth = overload::Method($$thing, $type))
884 20 108 if ref $thing
8 120 $self->_try(sub { $thing->isa('UNIVERSAL') if ref $thing; } ) ? :
899 0 0 unless $self->_is_dualvar($$val)
911 0 0 if ref $val
915 0 0 $numval ne $val ? :
0 0 if return $numval != 0
938 0 14 unless (defined $got and defined $expect)
943 0 0 unless $test
954 0 0 unless (defined $got and defined $expect)
959 0 0 unless $test
969 0 0 if (defined $$val) { }
970 0 0 if ($type eq 'eq' or $type eq 'ne') { }
1031 0 2 unless (defined $got and defined $dont_expect)
1036 0 0 unless $test
1047 0 0 unless (defined $got and defined $dont_expect)
1052 0 0 unless $test
1126 0 16 $numeric_cmps{$type} ? :
1131 0 16 if $error
1138 0 16 unless ($ok)
1141 0 0 if ($type =~ /^(eq|==)$/) { }
0 0 elsif ($type =~ /^(ne|!=)$/) { }
1157 0 0 defined $got ? :
1158 0 0 defined $expect ? :
1174 1 0 if defined $file and defined $line
1246 0 0 if $self->use_numbers
1248 0 0 if length $why
1286 0 0 if $self->use_numbers
1352 0 1 unless defined $regex
1357 1 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) { }
1365 0 0 length $opts ? :
1376 1 0 if defined &re::is_regexp
1385 0 1 unless (defined $usable_regex)
1402 0 1 if $cmp eq '!~'
1408 0 1 unless ($ok)
1409 0 0 defined $this ? :
1410 0 0 $cmp eq '=~' ? :
1457 0 258 if $error and $opts{'die_on_fail'}
1459 12 246 wantarray ? :
1476 0 45 unless defined $maybe_fh
1478 45 0 if ref $maybe_fh eq 'GLOB'
1479 0 0 if ref \$maybe_fh eq 'GLOB'
1519 0 185 if (defined $level)
1551 0 54 if (defined $use_nums)
1587 0 21 if (defined $no)
1659 0 0 $self->in_todo ? :
1665 0 0 if $self->no_diag
1666 0 0 unless @msgs
1669 0 0 if $^C
1673 0 0 defined $_ ? :
1704 0 0 ref $_ ? :
1709 0 0 if $dumper->can('Sortkeys')
1738 0 69 if $^C
1750 0 69 unless $msg =~ /\n\z/
1791 15 69 if (defined $fh)
1800 15 0 if (defined $fh)
1809 15 0 if (defined $fh)
1820 45 0 if ($self->is_fh($file_or_fh)) { }
0 0 elsif (ref $file_or_fh eq 'SCALAR') { }
1825 0 0 if ($] >= 5.008) { }
1826 0 0 unless open $fh, '>>', $file_or_fh
1831 0 0 unless $fh = 'Test::Builder::IO::Scalar'->new($file_or_fh)
1836 0 0 unless open $fh, '>', $file_or_fh
1875 0 15 if $$self{'Opened_Testhandles'}
1879 0 15 unless open $Testout, '>&STDOUT'
1880 0 15 unless open $Testerr, '>&STDERR'
1898 0 0 if @src_layers
1983 0 9 if (defined $num)
1988 0 0 if ($num > @$test_results) { }
0 0 elsif ($num < @$test_results) { }
1989 0 0 @$test_results ? :
2030 15 4 if (@_)
2136 0 54 if defined $$self{'Todo'}
2140 0 54 if defined $todo
2164 0 168 unless $pack
2168 4 164 if $set
2184 0 110 defined $$self{'Todo'} || $self->find_TODO ? :
2232 0 0 @_ ? :
2235 0 0 if ($self->in_todo)
2255 0 0 unless ($$self{'Start_Todo'})
2261 0 0 if ($$self{'Start_Todo'} and @{$$self{'Todo_Stack'};}) { }
2295 17 168 wantarray ? :
2339 0 0 if ($check)
2375 0 15 if $self->no_ending
2376 0 15 if $$self{'Ending'}++
2382 0 15 if ($$self{'Original_Pid'} != $$)
2387 0 15 if (not $$self{'Have_Plan'} and $$self{'Curr_Test'})
2394 0 15 unless ($$self{'Have_Plan'})
2399 0 15 if ($$self{'Bailed_Out'})
2405 15 0 if (@$test_results) { }
0 0 elsif ($$self{'Skip_All'}) { }
0 0 elsif ($real_exit_code) { }
2407 1 14 if ($$self{'No_Plan'})
2408 1 0 unless $self->no_header
2417 0 54 unless defined $$test_results[$idx]
2425 0 15 if ($num_extra != 0)
2426 0 0 $$self{'Expected_Tests'} == 1 ? :
2433 0 15 if ($num_failed)
2435 0 0 $num_failed == 1 ? :
2437 0 0 $num_extra == 0 ? :
2445 0 15 if ($real_exit_code)
2450 0 0 if _my_exit($real_exit_code)
2454 0 15 if ($num_failed) { }
0 15 elsif ($num_extra != 0) { }
2455 0 0 $num_failed <= 254 ? :
2464 15 0 if _my_exit($exit_code)
2467 0 0 if _my_exit(0)
2474 0 0 if _my_exit($real_exit_code)
2479 0 0 if _my_exit(255)
2487 13 0 if defined $Test