mtr failed to detect when a combination is forced

mtr detects a forced combination if the command line for a test already
includes all options from this combination. options are stored in a perl
hash as (key,value) pairs.

this breaks if the command line has two options with the same name,
like --plugin-load-add=foo --plugin-load-add=bar, and the combination
forces plugin foo.

In particular, this resulted in warnings when running
federated.federatedx_versioning test
This commit is contained in:
Sergei Golubchik 2022-01-01 17:19:21 +01:00
parent d7f4fd30f2
commit a88a4336fc

View file

@ -142,11 +142,11 @@ sub diff {
sub is_subset {
my ($set, $subset)= @_;
my %cache = map { _split_option($_) } @$set;
my %cache = map { join('=', _split_option($_)), 1 } @$set;
for (@$subset){
my ($name, $value)= _split_option($_);
return 0 unless exists $cache{$name} and $cache{$name} eq $value;
return 0 unless $cache{"$name=$value"};
}
return 1;