File Coverage

inc/Test2/Hub/Subtest.pm
Criterion Covered Total %
statement 20 42 47.6
branch 0 10 0.0
condition 0 21 0.0
subroutine 7 12 58.3
pod 2 5 40.0
total 29 90 32.2


line stmt bran cond sub pod time code
1             #line 1
2 1     1   5 package Test2::Hub::Subtest;
  1         1  
  1         22  
3 1     1   3 use strict;
  1         2  
  1         39  
4             use warnings;
5              
6             our $VERSION = '1.302073';
7              
8 1     1   4  
  1         39  
9 1     1   4 BEGIN { require Test2::Hub; our @ISA = qw(Test2::Hub) }
  1         2  
  1         4  
10 1     1   5 use Test2::Util::HashBase qw/nested bailed_out exit_code manual_skip_all id/;
  1         1  
  1         194  
11             use Test2::Util qw/get_tid/;
12              
13             my $ID = 1;
14 0     0 0   sub init {
15 0           my $self = shift;
16 0   0       $self->SUPER::init(@_);
17             $self->{+ID} ||= join "-", $$, get_tid, $ID++;
18             }
19 0     0 0    
20             sub is_subtest { 1 }
21              
22 0     0 1   sub process {
23 0           my $self = shift;
24 0           my ($e) = @_;
25 0           $e->set_nested($self->nested);
26 0 0         $e->set_in_subtest($self->{+ID});
27 0           $self->set_bailed_out($e) if $e->isa('Test2::Event::Bail');
28             $self->SUPER::process($e);
29             }
30              
31 0     0 1   sub send {
32 0           my $self = shift;
33             my ($e) = @_;
34 0            
35             my $out = $self->SUPER::send($e);
36 0 0          
37 0 0 0       return $out if $self->{+MANUAL_SKIP_ALL};
      0        
      0        
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 1     1   5  
  1         1  
  1         107  
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 1     1   5  
  1         1  
  1         43  
56 0           no warnings 'exiting';
57             last T2_SUBTEST_WRAPPER;
58             }
59              
60             1;
61              
62             __END__