Skip to content

Commit

Permalink
mtr: fix the check where a combination is pre-selected
Browse files Browse the repository at this point in the history
if all options from a combination from the combinations file are already
present in the server's list of options, then don't try to run tests
in other combinations from this file.

old behavior was: if at least one option from a combination is
already present in the list...
  • Loading branch information
vuvova committed Aug 29, 2021
1 parent fe2a704 commit 600e494
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 17 deletions.
22 changes: 7 additions & 15 deletions mysql-test/lib/My/Options.pm
Original file line number Diff line number Diff line change
Expand Up @@ -140,24 +140,16 @@ sub diff {
}


sub is_set {
my ($opts, $set_opts)= @_;
sub is_subset {
my ($set, $subset)= @_;
my %cache = map { _split_option($_) } @$set;

foreach my $opt (@$opts){

my ($opt_name1, $value1)= _split_option($opt);

foreach my $set_opt (@$set_opts){
my ($opt_name2, $value2)= _split_option($set_opt);

if ($opt_name1 eq $opt_name2 and $value1 eq $value2){
# Option already set
return 1;
}
}
for (@$subset){
my ($name, $value)= _split_option($_);
return 0 unless exists $cache{$name} and $cache{$name} eq $value;
}

return 0;
return 1;
}


Expand Down
6 changes: 4 additions & 2 deletions mysql-test/lib/mtr_cases.pm
Original file line number Diff line number Diff line change
Expand Up @@ -623,8 +623,10 @@ sub make_combinations($$@)
{
# Skip all other combinations if the values they change
# are already fixed in master_opt or slave_opt
if (My::Options::is_set($test->{master_opt}, $comb->{comb_opt}) &&
My::Options::is_set($test->{slave_opt}, $comb->{comb_opt}) ){
# (empty combinations are not considered a subset of anything)
if (@{$comb->{comb_opt}} &&
My::Options::is_subset($test->{master_opt}, $comb->{comb_opt}) &&
My::Options::is_subset($test->{slave_opt}, $comb->{comb_opt}) ){

$test_combs->{$comb->{name}} = 2;

Expand Down

0 comments on commit 600e494

Please sign in to comment.