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 19, 2019
1 parent 667bdcd commit 23a3471
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 23a3471

Please sign in to comment.