Fix randomization in testPerformActionAttrsRequestFails (#43304)
The randomization in this test would occasionally generate duplicate node attribute keys, causing spurious test failures. This commit adjusts the randomization to not generate duplicate keys and cleans up the data structure used to hold the generated keys.
This commit is contained in:
parent
667bdcd3ce
commit
23a3471394
|
@ -39,7 +39,9 @@ import org.mockito.invocation.InvocationOnMock;
|
|||
import org.mockito.stubbing.Answer;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
@ -202,17 +204,18 @@ public class SetSingleNodeAllocateStepTests extends AbstractStepTestCase<SetSing
|
|||
assertNoValidNode(indexMetaData, index, nodes);
|
||||
}
|
||||
|
||||
@AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/42932")
|
||||
public void testPerformActionAttrsRequestFails() {
|
||||
int numAttrs = randomIntBetween(1, 10);
|
||||
String[][] validAttrs = new String[numAttrs][2];
|
||||
Map<String, String> validAttributes = new HashMap<>();
|
||||
for (int i = 0; i < numAttrs; i++) {
|
||||
validAttrs[i] = new String[] { randomAlphaOfLengthBetween(1, 20), randomAlphaOfLengthBetween(1, 20) };
|
||||
validAttributes.put(randomValueOtherThanMany(validAttributes::containsKey,
|
||||
() -> randomAlphaOfLengthBetween(1,20)), randomAlphaOfLengthBetween(1,20));
|
||||
}
|
||||
Settings.Builder indexSettings = settings(Version.CURRENT);
|
||||
for (String[] attr : validAttrs) {
|
||||
indexSettings.put(IndexMetaData.INDEX_ROUTING_INCLUDE_GROUP_SETTING.getKey() + attr[0], attr[1]);
|
||||
}
|
||||
validAttributes.forEach((k, v) -> {
|
||||
indexSettings.put(IndexMetaData.INDEX_ROUTING_INCLUDE_GROUP_SETTING.getKey() + k, v);
|
||||
|
||||
});
|
||||
IndexMetaData indexMetaData = IndexMetaData.builder(randomAlphaOfLength(10)).settings(indexSettings)
|
||||
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
||||
Index index = indexMetaData.getIndex();
|
||||
|
@ -224,9 +227,9 @@ public class SetSingleNodeAllocateStepTests extends AbstractStepTestCase<SetSing
|
|||
String nodeId = "node_id_" + i;
|
||||
String nodeName = "node_" + i;
|
||||
int nodePort = 9300 + i;
|
||||
String[] nodeAttr = randomFrom(validAttrs);
|
||||
Map.Entry<String, String> nodeAttr = randomFrom(validAttributes.entrySet());
|
||||
Settings nodeSettings = Settings.builder().put(validNodeSettings).put(Node.NODE_NAME_SETTING.getKey(), nodeName)
|
||||
.put(Node.NODE_ATTRIBUTES.getKey() + nodeAttr[0], nodeAttr[1]).build();
|
||||
.put(Node.NODE_ATTRIBUTES.getKey() + nodeAttr.getKey(), nodeAttr.getValue()).build();
|
||||
nodes.add(DiscoveryNode.createLocal(nodeSettings, new TransportAddress(TransportAddress.META_ADDRESS, nodePort), nodeId));
|
||||
validNodeIds.add(nodeId);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue