File Coverage

blib/lib/App/GhaProve.pm
Criterion Covered Total %
statement 32 40 80.0
branch 12 20 60.0
condition 4 4 100.0
subroutine 5 6 83.3
pod 0 1 0.0
total 53 71 74.6


line stmt bran cond sub pod time code
1 2     2   71322 use 5.006;
  2         17  
2 2     2   10 use strict;
  2         4  
  2         41  
3 2     2   9 use warnings;
  2         4  
  2         1162  
4              
5             package App::GhaProve;
6              
7             our $AUTHORITY = 'cpan:TOBYINK';
8             our $VERSION = '0.007';
9              
10             our $QUIET = 0;
11              
12 0     0   0 sub _system { scalar system( @_ ) }
13              
14             sub _maybe_warn {
15 36     36   63 my ( $class, $system ) = ( shift, @_ );
16 36 50       107 return if $] > 5.012000;
17 0 0       0 return if $QUIET;
18 0         0 print "PERL VERSION: $]\n";
19 0         0 print "PROVE VERSION: ";
20 0         0 $system->( 'prove', '-V' );
21 0         0 return;
22             }
23              
24             sub go {
25 36     36 0 89077 my ( $class, @args ) = ( shift, @_ );
26 36 50       126 my $system = ref( $args[0] ) eq 'CODE' ? shift(@args) : \&_system;
27            
28 36         94 $class->_maybe_warn( $system );
29            
30 36   100     110 my $testing_mode = $ENV{GHA_TESTING_MODE} || 0;
31 36   100     110 my $coverage = $ENV{GHA_TESTING_COVER} || 0;
32            
33 36 100       209 if ( $coverage =~ /^(true|1)$/i ) {
34 27 50       71 if ( length $ENV{HARNESS_PERL_SWITCHES} ) {
35 27         76 $ENV{HARNESS_PERL_SWITCHES} .= ' ';
36             }
37             else {
38 0         0 $ENV{HARNESS_PERL_SWITCHES} = '';
39             }
40 27         64 $ENV{HARNESS_PERL_SWITCHES} .= '-MDevel::Cover';
41             }
42            
43 36         48 my @errors;
44            
45 36 100       119 if ( $testing_mode !~ /^(extended|1)$/i ) {
46 24         88 delete $ENV{EXTENDED_TESTING};
47 24 50       55 print "# ~~ Standard testing\n" unless $QUIET;
48 24         65 push @errors, $system->( 'prove', @args );
49             }
50              
51 36 100       325 if ( $testing_mode =~ /^(extended|both|1|2)$/i ) {
52 24         87 $ENV{EXTENDED_TESTING} = 1;
53 24 50       54 print "# ~~ Extended testing\n" unless $QUIET;
54 24         73 push @errors, $system->( 'prove', @args );
55             }
56            
57 36         267 my ( $max ) = sort { $b <=> $a } @errors;
  12         43  
58            
59 36 50       77 if ( $max > 254 ) {
60 0         0 $max = 254;
61             }
62            
63 36         130 return $max;
64             }
65              
66             1;
67              
68             __END__