mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug #44222 mysql-test-run --start analyses which tests it would skip. This is redundant.
Quicker test collection and better output with --start[-dirty]
This commit is contained in:
@ -41,6 +41,7 @@ our $opt_with_ndbcluster_only;
|
|||||||
our $defaults_file;
|
our $defaults_file;
|
||||||
our $defaults_extra_file;
|
our $defaults_extra_file;
|
||||||
our $reorder= 1;
|
our $reorder= 1;
|
||||||
|
our $quick_collect;
|
||||||
|
|
||||||
sub collect_option {
|
sub collect_option {
|
||||||
my ($opt, $value)= @_;
|
my ($opt, $value)= @_;
|
||||||
@ -68,6 +69,9 @@ require "mtr_misc.pl";
|
|||||||
my $do_test_reg;
|
my $do_test_reg;
|
||||||
my $skip_test_reg;
|
my $skip_test_reg;
|
||||||
|
|
||||||
|
# If "Quick collect", set to 1 once a test to run has been found.
|
||||||
|
my $some_test_found;
|
||||||
|
|
||||||
sub init_pattern {
|
sub init_pattern {
|
||||||
my ($from, $what)= @_;
|
my ($from, $what)= @_;
|
||||||
return undef unless defined $from;
|
return undef unless defined $from;
|
||||||
@ -102,6 +106,7 @@ sub collect_test_cases ($$) {
|
|||||||
foreach my $suite (split(",", $suites))
|
foreach my $suite (split(",", $suites))
|
||||||
{
|
{
|
||||||
push(@$cases, collect_one_suite($suite, $opt_cases));
|
push(@$cases, collect_one_suite($suite, $opt_cases));
|
||||||
|
last if $some_test_found;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( @$opt_cases )
|
if ( @$opt_cases )
|
||||||
@ -139,7 +144,7 @@ sub collect_test_cases ($$) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $reorder )
|
if ( $reorder && !$quick_collect)
|
||||||
{
|
{
|
||||||
# Reorder the test cases in an order that will make them faster to run
|
# Reorder the test cases in an order that will make them faster to run
|
||||||
my %sort_criteria;
|
my %sort_criteria;
|
||||||
@ -386,7 +391,7 @@ sub collect_one_suite($)
|
|||||||
# Read combinations for this suite and build testcases x combinations
|
# Read combinations for this suite and build testcases x combinations
|
||||||
# if any combinations exists
|
# if any combinations exists
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
if ( ! $skip_combinations )
|
if ( ! $skip_combinations && ! $quick_collect )
|
||||||
{
|
{
|
||||||
my @combinations;
|
my @combinations;
|
||||||
my $combination_file= "$suitedir/combinations";
|
my $combination_file= "$suitedir/combinations";
|
||||||
@ -583,6 +588,12 @@ sub optimize_cases {
|
|||||||
if ( $default_engine =~ /^innodb/i );
|
if ( $default_engine =~ /^innodb/i );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($quick_collect && ! $tinfo->{'skip'})
|
||||||
|
{
|
||||||
|
$some_test_found= 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -209,6 +209,7 @@ sub check_timeout { return $opt_testcase_timeout * 6; };
|
|||||||
|
|
||||||
my $opt_start;
|
my $opt_start;
|
||||||
my $opt_start_dirty;
|
my $opt_start_dirty;
|
||||||
|
my $start_only;
|
||||||
my $opt_wait_all;
|
my $opt_wait_all;
|
||||||
my $opt_repeat= 1;
|
my $opt_repeat= 1;
|
||||||
my $opt_retry= 3;
|
my $opt_retry= 3;
|
||||||
@ -1262,11 +1263,19 @@ sub command_line_setup {
|
|||||||
$opt_start_timeout= 24 * 60 * 60;
|
$opt_start_timeout= 24 * 60 * 60;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Modified behavior with --start options
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
if ($opt_start or $opt_start_dirty) {
|
||||||
|
collect_option ('quick-collect', 1);
|
||||||
|
$start_only= 1;
|
||||||
|
}
|
||||||
|
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
# Check use of wait-all
|
# Check use of wait-all
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
if ($opt_wait_all && ! ($opt_start_dirty || $opt_start))
|
if ($opt_wait_all && ! $start_only)
|
||||||
{
|
{
|
||||||
mtr_error("--wait-all can only be used with --start or --start-dirty");
|
mtr_error("--wait-all can only be used with --start or --start-dirty");
|
||||||
}
|
}
|
||||||
@ -2824,7 +2833,7 @@ sub run_testcase_check_skip_test($)
|
|||||||
|
|
||||||
if ( $tinfo->{'skip'} )
|
if ( $tinfo->{'skip'} )
|
||||||
{
|
{
|
||||||
mtr_report_test_skipped($tinfo);
|
mtr_report_test_skipped($tinfo) unless $start_only;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3311,9 +3320,16 @@ sub run_testcase ($) {
|
|||||||
# server exits
|
# server exits
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
|
|
||||||
if ( $opt_start or $opt_start_dirty )
|
if ( $start_only )
|
||||||
{
|
{
|
||||||
mtr_print("\nStarted", started(all_servers()));
|
mtr_print("\nStarted", started(all_servers()));
|
||||||
|
mtr_print("Using config for test", $tinfo->{name});
|
||||||
|
mtr_print("Port and socket path for server(s):");
|
||||||
|
foreach my $mysqld ( mysqlds() )
|
||||||
|
{
|
||||||
|
mtr_print ($mysqld->name() . " " . $mysqld->value('port') .
|
||||||
|
" " . $mysqld->value('socket'));
|
||||||
|
}
|
||||||
mtr_print("Waiting for server(s) to exit...");
|
mtr_print("Waiting for server(s) to exit...");
|
||||||
if ( $opt_wait_all ) {
|
if ( $opt_wait_all ) {
|
||||||
My::SafeProcess->wait_all();
|
My::SafeProcess->wait_all();
|
||||||
|
Reference in New Issue
Block a user