Commit 32e5304b authored by Sergei Golubchik's avatar Sergei Golubchik

mtr: fix testname,combination syntax to work in many-combination case

in particular, "innodb.innodb-page_encryption,xtradb" should
select these three tests:

innodb.innodb-page_encryption 'cbc,xtradb' [ pass ]  35563
innodb.innodb-page_encryption 'ctr,xtradb' [ pass ]  36858
innodb.innodb-page_encryption 'ecb,xtradb' [ pass ]  36741

and deselect all innodb_plugin tests. This was not the case, because
the %test_combs hash was destructively modified in the loop
parent 5fcba6eb
...@@ -618,7 +618,7 @@ sub make_combinations($$@) ...@@ -618,7 +618,7 @@ sub make_combinations($$@)
if (My::Options::is_set($test->{master_opt}, $comb->{comb_opt}) && if (My::Options::is_set($test->{master_opt}, $comb->{comb_opt}) &&
My::Options::is_set($test->{slave_opt}, $comb->{comb_opt}) ){ My::Options::is_set($test->{slave_opt}, $comb->{comb_opt}) ){
delete $test_combs->{$comb->{name}}; $test_combs->{$comb->{name}} = 2;
# Add combination name short name # Add combination name short name
push @{$test->{combinations}}, $comb->{name}; push @{$test->{combinations}}, $comb->{name};
...@@ -627,8 +627,9 @@ sub make_combinations($$@) ...@@ -627,8 +627,9 @@ sub make_combinations($$@)
} }
# Skip all other combinations, if this combination is forced # Skip all other combinations, if this combination is forced
if (delete $test_combs->{$comb->{name}}) { if ($test_combs->{$comb->{name}}) {
@combinations = ($comb); # run the loop below only for this combination @combinations = ($comb); # run the loop below only for this combination
$test_combs->{$comb->{name}} = 2;
last; last;
} }
} }
...@@ -858,9 +859,10 @@ sub collect_one_test_case { ...@@ -858,9 +859,10 @@ sub collect_one_test_case {
{ {
@cases = map make_combinations($_, \%test_combs, @{$comb}), @cases; @cases = map make_combinations($_, \%test_combs, @{$comb}), @cases;
} }
if (keys %test_combs) { my @no_combs = grep { $test_combs{$_} == 1 } keys %test_combs;
if (@no_combs) {
mtr_error("Could not run $name with '".( mtr_error("Could not run $name with '".(
join(',', sort keys %test_combs))."' combination(s)"); join(',', sort @no_combs))."' combination(s)");
} }
for $tinfo (@cases) { for $tinfo (@cases) {
......
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