From a88a4336fc4813c33a719db540816659097632c3 Mon Sep 17 00:00:00 2001
From: Sergei Golubchik <serg@mariadb.org>
Date: Sat, 1 Jan 2022 17:19:21 +0100
Subject: [PATCH] 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
---
 mysql-test/lib/My/Options.pm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mysql-test/lib/My/Options.pm b/mysql-test/lib/My/Options.pm
index 5827e0666a6..b3ae64cb4c2 100644
--- a/mysql-test/lib/My/Options.pm
+++ b/mysql-test/lib/My/Options.pm
@@ -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;