File Coverage

blib/lib/App/TestOnTap.pm
Criterion Covered Total %
statement 26 26 100.0
branch 5 6 83.3
condition n/a
subroutine 7 7 100.0
pod 0 1 0.0
total 38 40 95.0


line stmt bran cond sub pod time code
1             package App::TestOnTap;
2              
3 19     19   164327 use 5.010_001;
  19         170  
4              
5 19     19   98 use strict;
  19         41  
  19         408  
6 19     19   91 use warnings;
  19         34  
  19         1195  
7              
8             our $VERSION = '1.001';
9             my $version = $VERSION;
10             $VERSION = eval $VERSION;
11              
12 19     19   8071 use App::TestOnTap::Args;
  19         61  
  19         725  
13 19     19   10494 use App::TestOnTap::Harness;
  19         99  
  19         742  
14 19     19   130 use App::TestOnTap::Util qw($IS_PACKED);
  19         42  
  19         4778  
15              
16             # These are (known) implicit dependencies, and listing them like this
17             # allows scanners like perlapp to pick up on them
18             #
19             require TAP::Parser if 0;
20             require TAP::Parser::Aggregator if 0;
21             require TAP::Parser::Multiplexer if 0;
22             require TAP::Formatter::Console::ParallelSession if 0;
23              
24             # main entry point
25             #
26             sub main
27             {
28             # as a very special workaround - when running as a packed binary, any PERL5LIB envvar
29             # is cleared, but if it's really needed, any TESTONTAP_PERL5LIB will be used to reinsert
30             # it here for our children
31             #
32 29 50   29 0 234162 $ENV{PERL5LIB} = $ENV{TESTONTAP_PERL5LIB} if $ENV{TESTONTAP_PERL5LIB};
33              
34             # parse raw argv and prepare
35             #
36 29         516 my $args = App::TestOnTap::Args->new($version, @_);
37              
38             # run all tests
39             #
40 27         354 my $failed = App::TestOnTap::Harness->new($args)->runtests();
41            
42             # in case results have been requested...
43             #
44 26         5075 my $saveDir = $args->getSaveDir();
45 26 100       279 if ($saveDir)
46             {
47 2         8 my $savePath = $args->getWorkDirManager()->saveResult($saveDir, $args->getArchive());
48 2         36 print "Result saved to '$savePath'\n";
49             }
50            
51 26 100       445 warn("At least $failed test(s) failed!\n") if $failed;
52              
53 26         324 return $failed;
54             }
55              
56             1;