|
|
|
@ -8,7 +8,7 @@ use warnings;
|
|
|
|
|
use DB_File;
|
|
|
|
|
|
|
|
|
|
use Params::ValidationCompiler qw/validation_for/;
|
|
|
|
|
use Types::Standard qw/ArrayRef Str/;
|
|
|
|
|
use Types::Standard qw/ArrayRef Str Bool/;
|
|
|
|
|
|
|
|
|
|
use Getopt::Long::Descriptive;
|
|
|
|
|
use Path::Tiny qw/path/;
|
|
|
|
@ -26,7 +26,13 @@ my $ERROR_CODE_SOME_TEST_FAILED = 500;
|
|
|
|
|
params => {
|
|
|
|
|
test_files => {
|
|
|
|
|
type => ArrayRef [Str],
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
clean => {
|
|
|
|
|
type => Bool,
|
|
|
|
|
},
|
|
|
|
|
halt => {
|
|
|
|
|
type => Bool,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
@ -39,6 +45,8 @@ my $ERROR_CODE_SOME_TEST_FAILED = 500;
|
|
|
|
|
my $test_files = $params{test_files};
|
|
|
|
|
|
|
|
|
|
$self->{test_files} = [@$test_files];
|
|
|
|
|
$self->_options->{halt} = $params{halt};
|
|
|
|
|
$self->_options->{clean} = $params{clean};
|
|
|
|
|
|
|
|
|
|
return $self;
|
|
|
|
|
}
|
|
|
|
@ -48,27 +56,10 @@ sub _options {
|
|
|
|
|
my $self = shift;
|
|
|
|
|
if ( !defined $self->{options} ) {
|
|
|
|
|
$self->{options} = {};
|
|
|
|
|
$self->_getopt;
|
|
|
|
|
}
|
|
|
|
|
return $self->{options};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sub _getopt {
|
|
|
|
|
my $self = shift;
|
|
|
|
|
my ( $opt, $usage ) = describe_options(
|
|
|
|
|
'./test_runner.pl %o',
|
|
|
|
|
[ 'clean|c', "Cleans the previously succeded tests", ],
|
|
|
|
|
[ 'halt|h', "Halts on error", ],
|
|
|
|
|
[],
|
|
|
|
|
[ 'help', "print usage message and exit", { shortcircuit => 1 } ],
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
print( $usage->text ), die if $opt->help;
|
|
|
|
|
my $options = $self->_options;
|
|
|
|
|
$options->{halt} = $opt->halt;
|
|
|
|
|
$options->{clean} = $opt->clean;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sub run {
|
|
|
|
|
my $self = shift;
|
|
|
|
|
if ( $self->_options->{clean} ) {
|
|
|
|
|