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   167039 use 5.010_001;
  19         199  
4              
5 19     19   101 use strict;
  19         39  
  19         446  
6 19     19   93 use warnings;
  19         35  
  19         1351  
7              
8             our $VERSION = '0.054';
9             my $version = $VERSION;
10             $VERSION = eval $VERSION;
11              
12 19     19   8493 use App::TestOnTap::Args;
  19         69  
  19         732  
13 19     19   10324 use App::TestOnTap::Harness;
  19         78  
  19         871  
14 19     19   142 use App::TestOnTap::Util qw($IS_PACKED);
  19         42  
  19         5154  
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 243460 $ENV{PERL5LIB} = $ENV{TESTONTAP_PERL5LIB} if $ENV{TESTONTAP_PERL5LIB};
33              
34             # parse raw argv and prepare
35             #
36 29         643 my $args = App::TestOnTap::Args->new($version, @_);
37              
38             # run all tests
39             #
40 27         426 my $failed = App::TestOnTap::Harness->new($args)->runtests();
41            
42             # in case results have been requested...
43             #
44 26         3886 my $saveDir = $args->getSaveDir();
45 26 100       151 if ($saveDir)
46             {
47 2         12 my $savePath = $args->getWorkDirManager()->saveResult($saveDir, $args->getArchive());
48 2         57 print "Result saved to '$savePath'\n";
49             }
50            
51 26 100       193 warn("At least $failed test(s) failed!\n") if $failed;
52              
53 26         214 return $failed;
54             }
55              
56             1;