You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by bo...@apache.org on 2017/05/22 17:08:57 UTC
[2/4] storm git commit: Fixed test failure
Fixed test failure
Project: http://git-wip-us.apache.org/repos/asf/storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/0a88924b
Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/0a88924b
Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/0a88924b
Branch: refs/heads/master
Commit: 0a88924bdaccb6471ed34b35de4d34e217d54d39
Parents: 9c1ab5b
Author: Robert (Bobby) Evans <ev...@yahoo-inc.com>
Authored: Mon May 15 15:55:49 2017 -0500
Committer: Aditya Sharad <ad...@semmle.com>
Committed: Mon May 15 22:11:26 2017 +0100
----------------------------------------------------------------------
.../TestDefaultResourceAwareStrategy.java | 65 +++++---------------
1 file changed, 17 insertions(+), 48 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/storm/blob/0a88924b/storm-server/src/test/java/org/apache/storm/scheduler/resource/strategies/scheduling/TestDefaultResourceAwareStrategy.java
----------------------------------------------------------------------
diff --git a/storm-server/src/test/java/org/apache/storm/scheduler/resource/strategies/scheduling/TestDefaultResourceAwareStrategy.java b/storm-server/src/test/java/org/apache/storm/scheduler/resource/strategies/scheduling/TestDefaultResourceAwareStrategy.java
index aff08c8..14cfa7f 100644
--- a/storm-server/src/test/java/org/apache/storm/scheduler/resource/strategies/scheduling/TestDefaultResourceAwareStrategy.java
+++ b/storm-server/src/test/java/org/apache/storm/scheduler/resource/strategies/scheduling/TestDefaultResourceAwareStrategy.java
@@ -26,6 +26,7 @@ import org.apache.storm.scheduler.Cluster;
import org.apache.storm.scheduler.ExecutorDetails;
import org.apache.storm.scheduler.INimbus;
import org.apache.storm.scheduler.SchedulerAssignmentImpl;
+import org.apache.storm.scheduler.SchedulerAssignment;
import org.apache.storm.scheduler.SupervisorDetails;
import org.apache.storm.scheduler.Topologies;
import org.apache.storm.scheduler.TopologyDetails;
@@ -48,6 +49,7 @@ import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.HashSet;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
@@ -55,7 +57,6 @@ import java.util.List;
import java.util.Map;
import java.util.TreeSet;
-
public class TestDefaultResourceAwareStrategy {
private static final Logger LOG = LoggerFactory.getLogger(TestDefaultResourceAwareStrategy.class);
@@ -112,55 +113,23 @@ public class TestDefaultResourceAwareStrategy {
rs.prepare(conf);
rs.schedule(topologies, cluster);
- Map<String, List<String>> nodeToComps = new HashMap<String, List<String>>();
- for (Map.Entry<ExecutorDetails, WorkerSlot> entry : cluster.getAssignments().get("testTopology-id").getExecutorToSlot().entrySet()) {
- WorkerSlot ws = entry.getValue();
- ExecutorDetails exec = entry.getKey();
- if (!nodeToComps.containsKey(ws.getNodeId())) {
- nodeToComps.put(ws.getNodeId(), new LinkedList<String>());
- }
- nodeToComps.get(ws.getNodeId()).add(topo.getExecutorToComponent().get(exec));
+ HashSet<HashSet<ExecutorDetails>> expectedScheduling = new HashSet<>();
+ expectedScheduling.add(new HashSet<>(Arrays.asList(new ExecutorDetails(0, 0)))); //Spout
+ expectedScheduling.add(new HashSet<>(Arrays.asList(
+ new ExecutorDetails(2, 2), //bolt-1
+ new ExecutorDetails(4, 4), //bolt-2
+ new ExecutorDetails(6, 6)))); //bolt-3
+ expectedScheduling.add(new HashSet<>(Arrays.asList(
+ new ExecutorDetails(1, 1), //bolt-1
+ new ExecutorDetails(3, 3), //bolt-2
+ new ExecutorDetails(5, 5)))); //bolt-3
+ HashSet<HashSet<ExecutorDetails>> foundScheduling = new HashSet<>();
+ SchedulerAssignment assignment = cluster.getAssignmentById("testTopology-id");
+ for (Collection<ExecutorDetails> execs : assignment.getSlotToExecutors().values()) {
+ foundScheduling.add(new HashSet<>(execs));
}
- /**
- * check for correct scheduling
- * Since all the resource availabilites on nodes are the same in the beginining
- * DefaultResourceAwareStrategy can arbitrarily pick one thus we must find if a particular scheduling
- * exists on a node the the cluster.
- */
-
- //one node should have the below scheduling
- List<String> node1 = new LinkedList<>();
- node1.add("spout");
- node1.add("bolt-1");
- node1.add("bolt-2");
- Assert.assertTrue("Check DefaultResourceAwareStrategy scheduling", checkDefaultStrategyScheduling(nodeToComps, node1));
-
- //one node should have the below scheduling
- List<String> node2 = new LinkedList<>();
- node2.add("bolt-3");
- node2.add("bolt-1");
- node2.add("bolt-2");
-
- Assert.assertTrue("Check DefaultResourceAwareStrategy scheduling", checkDefaultStrategyScheduling(nodeToComps, node2));
-
- //one node should have the below scheduling
- List<String> node3 = new LinkedList<>();
- node3.add("bolt-3");
-
- Assert.assertTrue("Check DefaultResourceAwareStrategy scheduling", checkDefaultStrategyScheduling(nodeToComps, node3));
-
- //three used and one node should be empty
- Assert.assertEquals("only three nodes should be used", 3, nodeToComps.size());
- }
-
- private boolean checkDefaultStrategyScheduling(Map<String, List<String>> nodeToComps, List<String> schedulingToFind) {
- for (List<String> entry : nodeToComps.values()) {
- if (schedulingToFind.containsAll(entry) && entry.containsAll(schedulingToFind)) {
- return true;
- }
- }
- return false;
+ Assert.assertEquals(expectedScheduling, foundScheduling);
}
/**