aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-05-13 12:07:00 +0200
committerHarald Musum <musum@yahooinc.com>2023-05-13 12:07:00 +0200
commitc57fea33f762e66d5f5e0ce046db274028bc839d (patch)
treead6052f689b9afaaec793b6e22731d59010b27c7
parent7886432df911cc24de8a2b4df8a3572d5654bf2e (diff)
Avoid duplicating code
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterFeedBlockTest.java17
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java26
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java1
3 files changed, 21 insertions, 23 deletions
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterFeedBlockTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterFeedBlockTest.java
index eb592e95865..d4eea261767 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterFeedBlockTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterFeedBlockTest.java
@@ -5,11 +5,9 @@ import com.yahoo.vdslib.state.Node;
import com.yahoo.vdslib.state.NodeState;
import com.yahoo.vdslib.state.NodeType;
import com.yahoo.vdslib.state.State;
-import com.yahoo.vespa.clustercontroller.core.database.DatabaseHandler;
-import com.yahoo.vespa.clustercontroller.core.database.ZooKeeperDatabaseFactory;
-import com.yahoo.vespa.clustercontroller.utils.util.NoMetricReporter;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
+
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -31,7 +29,6 @@ public class ClusterFeedBlockTest extends FleetControllerTest {
private final Timer timer = new FakeTimer();
- // TODO dedupe fixture and setup stuff with other tests
private FleetController ctrl;
private DummyCommunicator communicator;
@@ -44,16 +41,8 @@ public class ClusterFeedBlockTest extends FleetControllerTest {
var context = new TestFleetControllerContext(options);
communicator = new DummyCommunicator(nodes, timer);
- var metricUpdater = new MetricUpdater(new NoMetricReporter(), options.fleetControllerIndex(), options.clusterName());
- var eventLog = new EventLog(timer, metricUpdater);
- var cluster = new ContentCluster(options);
- var stateGatherer = new NodeStateGatherer(timer, timer, eventLog);
- var database = new DatabaseHandler(context, new ZooKeeperDatabaseFactory(context), timer, options.zooKeeperServerAddress(), timer);
- var stateGenerator = new StateChangeHandler(context, timer, eventLog);
- var stateBroadcaster = new SystemStateBroadcaster(context, timer, timer);
- var masterElectionHandler = new MasterElectionHandler(context, options.fleetControllerIndex(), options.fleetControllerCount(), timer, timer);
- ctrl = new FleetController(context, timer, eventLog, cluster, stateGatherer, communicator, null, communicator, database,
- stateGenerator, stateBroadcaster, masterElectionHandler, metricUpdater, options);
+ boolean start = false;
+ ctrl = createFleetController(timer, options, context, communicator, communicator, null, start);
ctrl.tick();
markAllNodesAsUp(options);
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java
index d3eaa828d6f..238dfd42da5 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java
@@ -99,12 +99,7 @@ public abstract class FleetControllerTest implements Waiter {
}
FleetController createFleetController(Timer timer, FleetControllerOptions options) {
- waiter = createWaiter(timer);
var context = new TestFleetControllerContext(options);
- var metricUpdater = new MetricUpdater(new NoMetricReporter(), options.fleetControllerIndex(), options.clusterName());
- var log = new EventLog(timer, metricUpdater);
- var cluster = new ContentCluster(options.clusterName(), options.nodes(), options.storageDistribution());
- var stateGatherer = new NodeStateGatherer(timer, timer, log);
var communicator = new RPCCommunicator(
RPCCommunicator.createRealSupervisor(),
timer,
@@ -115,8 +110,22 @@ public abstract class FleetControllerTest implements Waiter {
options.nodeStateRequestRoundTripTimeMaxSeconds());
var lookUp = new SlobrokClient(context, timer, new String[0]);
var rpcServer = new RpcServer(timer, options.clusterName(), options.fleetControllerIndex());
- var database = new DatabaseHandler(context, new ZooKeeperDatabaseFactory(context), timer, options.zooKeeperServerAddress(), timer);
+ return createFleetController(timer, options, context, communicator, lookUp, rpcServer, true);
+ }
+ FleetController createFleetController(Timer timer,
+ FleetControllerOptions options,
+ TestFleetControllerContext context,
+ Communicator communicator,
+ NodeLookup nodeLookup,
+ RpcServer rpcServer,
+ boolean start) {
+ waiter = createWaiter(timer);
+ var metricUpdater = new MetricUpdater(new NoMetricReporter(), options.fleetControllerIndex(), options.clusterName());
+ var log = new EventLog(timer, metricUpdater);
+ var cluster = new ContentCluster(options.clusterName(), options.nodes(), options.storageDistribution());
+ var stateGatherer = new NodeStateGatherer(timer, timer, log);
+ var database = new DatabaseHandler(context, new ZooKeeperDatabaseFactory(context), timer, options.zooKeeperServerAddress(), timer);
// Setting this <1000 ms causes ECONNREFUSED on socket trying to connect to ZK server, in ZooKeeper,
// after creating a new ZooKeeper (session). This causes ~10s extra time to connect after connection loss.
// Reasons unknown. Larger values like the default 10_000 causes that much additional running time for some tests.
@@ -126,9 +135,10 @@ public abstract class FleetControllerTest implements Waiter {
var stateBroadcaster = new SystemStateBroadcaster(context, timer, timer);
var masterElectionHandler = new MasterElectionHandler(context, options.fleetControllerIndex(), options.fleetControllerCount(), timer, timer);
- var controller = new FleetController(context, timer, log, cluster, stateGatherer, communicator, rpcServer, lookUp,
+ var controller = new FleetController(context, timer, log, cluster, stateGatherer, communicator, rpcServer, nodeLookup,
database, stateGenerator, stateBroadcaster, masterElectionHandler, metricUpdater, options);
- controller.start();
+ if (start)
+ controller.start();
return controller;
}
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java
index e93d824cb67..77c89d77ba5 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java
@@ -467,7 +467,6 @@ public class MasterElectionTest extends FleetControllerTest {
.setClusterHasGlobalDocumentTypes(true)
.setMasterZooKeeperCooldownPeriod(1)
.setMinTimeBeforeFirstSystemStateBroadcast(100000);
- boolean useFakeTimer = false;
Timer timer = new RealTimer();
setUpFleetControllers(3, timer, builder);
setUpVdsNodes(timer);