Commit ca7bf9fa authored by Bjorn Munch's avatar Bjorn Munch

Bug #44222 mysql-test-run --start analyses which tests it would skip. This is redundant.

Quicker test collection and better output with --start[-dirty]
parent 2000cef7
...@@ -41,6 +41,7 @@ our $opt_with_ndbcluster_only; ...@@ -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"; ...@@ -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 ($$) { ...@@ -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 ($$) { ...@@ -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($) ...@@ -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 { ...@@ -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; }; ...@@ -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 { ...@@ -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($) ...@@ -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 ($) { ...@@ -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();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment