diff options
author | Bjorn Munch <Bjorn.Munch@sun.com> | 2010-02-17 12:37:37 +0100 |
---|---|---|
committer | Bjorn Munch <Bjorn.Munch@sun.com> | 2010-02-17 12:37:37 +0100 |
commit | db1f4e0bf96538ddcab0a668efbf566f537fdefd (patch) | |
tree | a573a0b1f2960e11c2efe9ac53ffd9996fe5f9de /mysql-test/lib | |
parent | 4cc54ef0c361a7b9f65198e35305151019147dbe (diff) | |
download | mariadb-git-db1f4e0bf96538ddcab0a668efbf566f537fdefd.tar.gz |
Bug #44054 MTR2: --no-reorder does not prevent reordering
Some logic would group by suite always
Disable this if using --noreorder
Also fix getting array from collect_one_suite() in this case
Amended according to previous comment
Diffstat (limited to 'mysql-test/lib')
-rw-r--r-- | mysql-test/lib/mtr_cases.pm | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm index ef3c2a43e87..1b6896e5a80 100644 --- a/mysql-test/lib/mtr_cases.pm +++ b/mysql-test/lib/mtr_cases.pm @@ -40,7 +40,6 @@ our $default_storage_engine; our $opt_with_ndbcluster_only; our $defaults_file; our $defaults_extra_file; -our $reorder= 1; our $quick_collect; sub collect_option { @@ -99,7 +98,8 @@ sub init_pattern { # ############################################################################## -sub collect_test_cases ($$) { +sub collect_test_cases ($$$) { + my $opt_reorder= shift; # True if we're reordering tests my $suites= shift; # Semicolon separated list of test suites my $opt_cases= shift; my $cases= []; # Array of hash(one hash for each testcase) @@ -118,10 +118,16 @@ sub collect_test_cases ($$) { !(IS_WINDOWS && $::opt_embedded_server) && $lib_innodb_plugin); - foreach my $suite (split(",", $suites)) + # If not reordering, we also shouldn't group by suites, unless + # no test cases were named. + # This also effects some logic in the loop following this. + if ($opt_reorder or !@$opt_cases) { - push(@$cases, collect_one_suite($suite, $opt_cases)); - last if $some_test_found; + foreach my $suite (split(",", $suites)) + { + push(@$cases, collect_one_suite($suite, $opt_cases)); + last if $some_test_found; + } } if ( @$opt_cases ) @@ -135,6 +141,7 @@ sub collect_test_cases ($$) { my ($sname, $tname, $extension)= split_testname($test_name_spec); foreach my $test ( @$cases ) { + last unless $opt_reorder; # test->{name} is always in suite.name format if ( $test->{name} =~ /.*\.$tname/ ) { @@ -144,12 +151,13 @@ sub collect_test_cases ($$) { } if ( not $found ) { + $sname= "main" if !$opt_reorder and !$sname; mtr_error("Could not find '$tname' in '$suites' suite(s)") unless $sname; - # If suite was part of name, find it there - my ($this_case) = collect_one_suite($sname, [ $tname ]); - if ($this_case) + # If suite was part of name, find it there, may come with combinations + my @this_case = collect_one_suite($sname, [ $tname ]); + if (@this_case) { - push (@$cases, $this_case); + push (@$cases, @this_case); } else { @@ -159,7 +167,7 @@ sub collect_test_cases ($$) { } } - if ( $reorder && !$quick_collect) + if ( $opt_reorder && !$quick_collect) { # Reorder the test cases in an order that will make them faster to run my %sort_criteria; |