Skip to content

Commit

Permalink
Fix randomization in testPerformActionAttrsRequestFails (#43304)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
gwbrown authored Jun 18, 2019
1 parent c171f9a commit 3b022bb
Showing 1 changed file with 11 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,9 @@
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;

Expand Down Expand Up @@ -202,17 +204,18 @@ public void testPerformActionAttrsNoNodesValid() {
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();
Expand All @@ -224,9 +227,9 @@ public void testPerformActionAttrsRequestFails() {
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);
}
Expand Down

0 comments on commit 3b022bb

Please sign in to comment.