File Coverage

inc/Test2/Hub/Subtest.pm
Criterion Covered Total %
statement 35 42 83.3
branch 3 10 30.0
condition 4 21 19.0
subroutine 11 12 91.6
pod 2 5 40.0
total 55 90 61.1


line stmt bran cond sub pod time code
1             #line 1
2 6     6   42 package Test2::Hub::Subtest;
  6         12  
  6         174  
3 6     6   29 use strict;
  6         12  
  6         343  
4             use warnings;
5              
6             our $VERSION = '1.302073';
7              
8 6     6   35  
  6         263  
9 6     6   38 BEGIN { require Test2::Hub; our @ISA = qw(Test2::Hub) }
  6         25  
  6         66  
10 6     6   42 use Test2::Util::HashBase qw/nested bailed_out exit_code manual_skip_all id/;
  6         12  
  6         1716  
11             use Test2::Util qw/get_tid/;
12              
13             my $ID = 1;
14 9     9 0 21 sub init {
15 9         76 my $self = shift;
16 9   33     73 $self->SUPER::init(@_);
17             $self->{+ID} ||= join "-", $$, get_tid, $ID++;
18             }
19 9     9 0 91  
20             sub is_subtest { 1 }
21              
22 34     34 1 113 sub process {
23 34         68 my $self = shift;
24 34         140 my ($e) = @_;
25 34         141 $e->set_nested($self->nested);
26 34 50       248 $e->set_in_subtest($self->{+ID});
27 34         138 $self->set_bailed_out($e) if $e->isa('Test2::Event::Bail');
28             $self->SUPER::process($e);
29             }
30              
31 34     34 1 64 sub send {
32 34         69 my $self = shift;
33             my ($e) = @_;
34 34         179  
35             my $out = $self->SUPER::send($e);
36 34 50       101  
37 34 50 66     259 return $out if $self->{+MANUAL_SKIP_ALL};
      0        
      33        
38             return $out unless $e->isa('Test2::Event::Plan')
39             && $e->directive eq 'SKIP'
40             && ($e->trace->pid != $self->pid || $e->trace->tid != $self->tid);
41 6     6   43  
  6         49  
  6         847  
42 0           no warnings 'exiting';
43             last T2_SUBTEST_WRAPPER;
44             }
45              
46 0     0 0   sub terminate {
47 0           my $self = shift;
48 0           my ($code, $e) = @_;
49             $self->set_exit_code($code);
50 0 0          
51 0 0 0       return if $self->{+MANUAL_SKIP_ALL};
      0        
      0        
52             return if $e->isa('Test2::Event::Plan')
53             && $e->directive eq 'SKIP'
54             && ($e->trace->pid != $$ || $e->trace->tid != get_tid);
55 6     6   50  
  6         11  
  6         340  
56 0           no warnings 'exiting';
57             last T2_SUBTEST_WRAPPER;
58             }
59              
60             1;
61              
62             __END__