You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2014/04/13 01:37:31 UTC
[2/5] git commit: Cleaned up master detector usage in tests.
Cleaned up master detector usage in tests.
Review: https://reviews.apache.org/r/19834
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/bafce319
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/bafce319
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/bafce319
Branch: refs/heads/master
Commit: bafce31921254459b0cf426f2d72637ec38a135f
Parents: 58241c0
Author: Benjamin Hindman <be...@gmail.com>
Authored: Sat Mar 29 14:06:41 2014 -0700
Committer: Benjamin Hindman <be...@gmail.com>
Committed: Sat Apr 12 17:35:37 2014 -0600
----------------------------------------------------------------------
src/tests/cluster.hpp | 121 +++++++++++----------
src/tests/fault_tolerance_tests.cpp | 98 ++++++++---------
src/tests/master_contender_detector_tests.cpp | 5 +-
src/tests/master_tests.cpp | 17 ++-
src/tests/mesos.cpp | 6 +-
src/tests/mesos.hpp | 6 +-
6 files changed, 127 insertions(+), 126 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/bafce319/src/tests/cluster.hpp
----------------------------------------------------------------------
diff --git a/src/tests/cluster.hpp b/src/tests/cluster.hpp
index 11684d9..8479fe3 100644
--- a/src/tests/cluster.hpp
+++ b/src/tests/cluster.hpp
@@ -91,10 +91,9 @@ public:
// the launched master. If no allocator process is specified then
// the default allocator will be instantiated.
Try<process::PID<master::Master> > start(
- Option<master::allocator::AllocatorProcess*> allocatorProcess,
+ const Option<master::allocator::AllocatorProcess*>& allocatorProcess,
const master::Flags& flags = master::Flags());
-
// Stops and cleans up a master at the specified PID.
Try<Nothing> stop(const process::PID<master::Master>& pid);
@@ -110,9 +109,9 @@ public:
Option<zookeeper::URL> url;
// Encapsulates a single master's dependencies.
- struct MasterInfo
+ struct Master
{
- MasterInfo()
+ Master()
: master(NULL),
allocator(NULL),
allocatorProcess(NULL),
@@ -130,7 +129,7 @@ public:
MasterDetector* detector;
};
- std::map<process::PID<master::Master>, MasterInfo> masters;
+ std::map<process::PID<master::Master>, Master> masters;
};
// Abstracts the slaves of a cluster.
@@ -159,12 +158,12 @@ public:
// Detector. The detector is expected to outlive the launched
// slave (i.e., until it is stopped via Slaves::stop).
Try<process::PID<slave::Slave> > start(
- process::Owned<MasterDetector> detector,
+ const Option<MasterDetector*>& detector,
const slave::Flags& flags = slave::Flags());
Try<process::PID<slave::Slave> > start(
slave::Containerizer* containerizer,
- process::Owned<MasterDetector> detector,
+ const Option<MasterDetector*>& detector,
const slave::Flags& flags = slave::Flags());
// Stops and cleans up a slave at the specified PID. If 'shutdown'
@@ -239,7 +238,7 @@ inline Cluster::Masters::~Masters()
inline void Cluster::Masters::shutdown()
{
// TODO(benh): Use utils::copy from stout once namespaced.
- std::map<process::PID<master::Master>, MasterInfo> copy(masters);
+ std::map<process::PID<master::Master>, Master> copy(masters);
foreachkey (const process::PID<master::Master>& pid, copy) {
stop(pid);
}
@@ -255,7 +254,7 @@ inline Try<process::PID<master::Master> > Cluster::Masters::start(
inline Try<process::PID<master::Master> > Cluster::Masters::start(
- Option<master::allocator::AllocatorProcess*> allocatorProcess,
+ const Option<master::allocator::AllocatorProcess*>& allocatorProcess,
const master::Flags& flags)
{
// Disallow multiple masters when not using ZooKeeper.
@@ -263,16 +262,16 @@ inline Try<process::PID<master::Master> > Cluster::Masters::start(
return Error("Can not start multiple masters when not using ZooKeeper");
}
- MasterInfo masterInfo;
+ Master master;
if (allocatorProcess.isNone()) {
- masterInfo.allocatorProcess =
+ master.allocatorProcess =
new master::allocator::HierarchicalDRFAllocatorProcess();
- masterInfo.allocator =
- new master::allocator::Allocator(masterInfo.allocatorProcess);
+ master.allocator =
+ new master::allocator::Allocator(master.allocatorProcess);
} else {
- masterInfo.allocatorProcess = NULL;
- masterInfo.allocator =
+ master.allocatorProcess = NULL;
+ master.allocator =
new master::allocator::Allocator(allocatorProcess.get());
}
@@ -281,44 +280,44 @@ inline Try<process::PID<master::Master> > Cluster::Masters::start(
}
if (flags.registry == "in_memory") {
- masterInfo.storage = new state::InMemoryStorage();
+ master.storage = new state::InMemoryStorage();
} else {
return Error("'" + flags.registry + "' is not a supported"
" option for registry persistence");
}
- CHECK_NOTNULL(masterInfo.storage);
+ CHECK_NOTNULL(master.storage);
- masterInfo.state = new state::protobuf::State(masterInfo.storage);
- masterInfo.registrar = new master::Registrar(flags, masterInfo.state);
- masterInfo.repairer = new master::Repairer();
+ master.state = new state::protobuf::State(master.storage);
+ master.registrar = new master::Registrar(flags, master.state);
+ master.repairer = new master::Repairer();
if (url.isSome()) {
- masterInfo.contender = new ZooKeeperMasterContender(url.get());
- masterInfo.detector = new ZooKeeperMasterDetector(url.get());
+ master.contender = new ZooKeeperMasterContender(url.get());
+ master.detector = new ZooKeeperMasterDetector(url.get());
} else {
- masterInfo.contender = new StandaloneMasterContender();
- masterInfo.detector = new StandaloneMasterDetector();
+ master.contender = new StandaloneMasterContender();
+ master.detector = new StandaloneMasterDetector();
}
- masterInfo.master = new master::Master(
- masterInfo.allocator,
- masterInfo.registrar,
- masterInfo.repairer,
+ master.master = new master::Master(
+ master.allocator,
+ master.registrar,
+ master.repairer,
&cluster->files,
- masterInfo.contender,
- masterInfo.detector,
+ master.contender,
+ master.detector,
flags);
if (url.isNone()) {
// This means we are using the StandaloneMasterDetector.
- CHECK_NOTNULL(dynamic_cast<StandaloneMasterDetector*>(masterInfo.detector))
- ->appoint(masterInfo.master->info());
+ CHECK_NOTNULL(dynamic_cast<StandaloneMasterDetector*>(master.detector))
+ ->appoint(master.master->info());
}
- process::PID<master::Master> pid = process::spawn(masterInfo.master);
+ process::PID<master::Master> pid = process::spawn(master.master);
- masters[pid] = masterInfo;
+ masters[pid] = master;
return pid;
}
@@ -331,22 +330,22 @@ inline Try<Nothing> Cluster::Masters::stop(
return Error("No master found to stop");
}
- MasterInfo masterInfo = masters[pid];
+ Master master = masters[pid];
- process::terminate(masterInfo.master);
- process::wait(masterInfo.master);
- delete masterInfo.master;
+ process::terminate(master.master);
+ process::wait(master.master);
+ delete master.master;
- delete masterInfo.allocator; // Terminates and waits for allocator process.
- delete masterInfo.allocatorProcess; // May be NULL.
+ delete master.allocator; // Terminates and waits for allocator process.
+ delete master.allocatorProcess; // May be NULL.
- delete masterInfo.registrar;
- delete masterInfo.repairer;
- delete masterInfo.state;
- delete masterInfo.storage;
+ delete master.registrar;
+ delete master.repairer;
+ delete master.state;
+ delete master.storage;
- delete masterInfo.contender;
- delete masterInfo.detector;
+ delete master.contender;
+ delete master.detector;
masters.erase(pid);
@@ -422,12 +421,12 @@ inline Try<process::PID<slave::Slave> > Cluster::Slaves::start(
slave::Containerizer* containerizer,
const slave::Flags& flags)
{
- return start(containerizer, masters->detector(), flags);
+ return start(containerizer, None(), flags);
}
inline Try<process::PID<slave::Slave> > Cluster::Slaves::start(
- process::Owned<MasterDetector> detector,
+ const Option<MasterDetector*>& detector,
const slave::Flags& flags)
{
// TODO(benh): Create a work directory if using the default.
@@ -443,11 +442,17 @@ inline Try<process::PID<slave::Slave> > Cluster::Slaves::start(
slave.containerizer = containerizer.get();
- // Get a detector for the master(s).
- slave.detector = detector;
+ // Get a detector for the master(s) if one wasn't provided.
+ if (detector.isNone()) {
+ slave.detector = masters->detector();
+ }
slave.slave = new slave::Slave(
- flags, slave.detector.get(), slave.containerizer, &cluster->files);
+ flags,
+ detector.get(slave.detector.get()),
+ slave.containerizer,
+ &cluster->files);
+
process::PID<slave::Slave> pid = process::spawn(slave.slave);
slaves[pid] = slave;
@@ -458,7 +463,7 @@ inline Try<process::PID<slave::Slave> > Cluster::Slaves::start(
inline Try<process::PID<slave::Slave> > Cluster::Slaves::start(
slave::Containerizer* containerizer,
- process::Owned<MasterDetector> detector,
+ const Option<MasterDetector*>& detector,
const slave::Flags& flags)
{
// TODO(benh): Create a work directory if using the default.
@@ -467,11 +472,17 @@ inline Try<process::PID<slave::Slave> > Cluster::Slaves::start(
slave.flags = flags;
- // Get a detector for the master(s).
- slave.detector = detector;
+ // Get a detector for the master(s) if one wasn't provided.
+ if (detector.isNone()) {
+ slave.detector = masters->detector();
+ }
slave.slave = new slave::Slave(
- flags, slave.detector.get(), containerizer, &cluster->files);
+ flags,
+ detector.get(slave.detector.get()),
+ containerizer,
+ &cluster->files);
+
process::PID<slave::Slave> pid = process::spawn(slave.slave);
slaves[pid] = slave;
http://git-wip-us.apache.org/repos/asf/mesos/blob/bafce319/src/tests/fault_tolerance_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/fault_tolerance_tests.cpp b/src/tests/fault_tolerance_tests.cpp
index 99311c3..4796149 100644
--- a/src/tests/fault_tolerance_tests.cpp
+++ b/src/tests/fault_tolerance_tests.cpp
@@ -222,10 +222,9 @@ TEST_F(FaultToleranceTest, PartitionedSlaveReregistration)
MockExecutor exec(DEFAULT_EXECUTOR_ID);
- StandaloneMasterDetector* detector =
- new StandaloneMasterDetector(master.get());
+ StandaloneMasterDetector detector(master.get());
- Try<PID<Slave> > slave = StartSlave(&exec, Owned<MasterDetector>(detector));
+ Try<PID<Slave> > slave = StartSlave(&exec, &detector);
ASSERT_SOME(slave);
MockScheduler sched;
@@ -327,7 +326,7 @@ TEST_F(FaultToleranceTest, PartitionedSlaveReregistration)
// We now complete the partition on the slave side as well. This
// is done by simulating a master loss event which would normally
// occur during a network partition.
- detector->appoint(None());
+ detector.appoint(None());
Future<Nothing> shutdown;
EXPECT_CALL(exec, shutdown(_))
@@ -336,7 +335,7 @@ TEST_F(FaultToleranceTest, PartitionedSlaveReregistration)
shutdownMessage = FUTURE_PROTOBUF(ShutdownMessage(), _, slave.get());
// Have the slave re-register with the master.
- detector->appoint(master.get());
+ detector.appoint(master.get());
// Upon re-registration, the master will shutdown the slave.
// The slave will then shut down the executor.
@@ -609,9 +608,8 @@ TEST_F(FaultToleranceTest, MasterFailover)
ASSERT_SOME(master);
MockScheduler sched;
- StandaloneMasterDetector* detector =
- new StandaloneMasterDetector(master.get());
- TestingMesosSchedulerDriver driver(&sched, detector);
+ StandaloneMasterDetector detector(master.get());
+ TestingMesosSchedulerDriver driver(&sched, &detector);
Future<process::Message> frameworkRegisteredMessage =
FUTURE_MESSAGE(Eq(FrameworkRegisteredMessage().GetTypeName()), _, _);
@@ -641,7 +639,7 @@ TEST_F(FaultToleranceTest, MasterFailover)
.WillOnce(FutureSatisfy(®istered2));
// Simulate a new master detected message to the scheduler.
- detector->appoint(master.get());
+ detector.appoint(master.get());
// Scheduler should retry authentication.
AWAIT_READY(authenticateMessage);
@@ -652,8 +650,6 @@ TEST_F(FaultToleranceTest, MasterFailover)
driver.stop();
driver.join();
- delete detector;
-
Shutdown();
}
@@ -681,12 +677,12 @@ TEST_F(FaultToleranceTest, ReregisterCompletedFrameworks)
ASSERT_SOME(master);
MockExecutor executor(DEFAULT_EXECUTOR_ID);
+
TestContainerizer containerizer(&executor);
- Owned<MasterDetector> slaveDetector(
- new StandaloneMasterDetector(master.get()));
+ StandaloneMasterDetector slaveDetector(master.get());
- Try<PID<Slave> > slave = StartSlave(&containerizer, slaveDetector);
+ Try<PID<Slave> > slave = StartSlave(&containerizer, &slaveDetector);
ASSERT_SOME(slave);
// Verify master/slave have 0 completed/running frameworks.
@@ -810,8 +806,8 @@ TEST_F(FaultToleranceTest, ReregisterCompletedFrameworks)
Future<SlaveReregisteredMessage> slaveReregisteredMessage =
FUTURE_PROTOBUF(SlaveReregisteredMessage(), _, _);
- dynamic_cast<StandaloneMasterDetector*>(slaveDetector.get())->appoint(
- master.get());
+ // Simulate a new master detected message to the slave.
+ slaveDetector.appoint(master.get());
AWAIT_READY(slaveReregisteredMessage);
@@ -1045,19 +1041,17 @@ TEST_F(FaultToleranceTest, FrameworkReregister)
Try<PID<Master> > master = StartMaster();
ASSERT_SOME(master);
- Owned<MasterDetector> slaveDetector(
- new StandaloneMasterDetector(master.get()));
- Try<PID<Slave> > slave = StartSlave(slaveDetector);
- ASSERT_SOME(slave);
+ StandaloneMasterDetector slaveDetector(master.get());
+ Try<PID<Slave> > slave = StartSlave(&slaveDetector);
+ ASSERT_SOME(slave);
// Create a detector for the scheduler driver because we want the
// spurious leading master change to be known by the scheduler
// driver only.
- Owned<MasterDetector> schedDetector(
- new StandaloneMasterDetector(master.get()));
+ StandaloneMasterDetector schedDetector(master.get());
MockScheduler sched;
- TestingMesosSchedulerDriver driver(&sched, schedDetector.get());
+ TestingMesosSchedulerDriver driver(&sched, &schedDetector);
Future<Nothing> registered;
EXPECT_CALL(sched, registered(&driver, _, _))
@@ -1093,8 +1087,7 @@ TEST_F(FaultToleranceTest, FrameworkReregister)
.Times(AtMost(1));
// Simulate a spurious leading master change at the scheduler.
- dynamic_cast<StandaloneMasterDetector*>(schedDetector.get())->appoint(
- master.get());
+ schedDetector.appoint(master.get());
AWAIT_READY(disconnected);
@@ -1119,9 +1112,8 @@ TEST_F(FaultToleranceTest, TaskLost)
ASSERT_SOME(slave);
MockScheduler sched;
- StandaloneMasterDetector* detector =
- new StandaloneMasterDetector(master.get());
- TestingMesosSchedulerDriver driver(&sched, detector);
+ StandaloneMasterDetector detector(master.get());
+ TestingMesosSchedulerDriver driver(&sched, &detector);
EXPECT_CALL(sched, registered(&driver, _, _));
@@ -1145,7 +1137,7 @@ TEST_F(FaultToleranceTest, TaskLost)
.WillOnce(FutureSatisfy(&disconnected));
// Simulate a spurious master loss event at the scheduler.
- detector->appoint(None());
+ detector.appoint(None());
AWAIT_READY(disconnected);
@@ -1301,15 +1293,14 @@ TEST_F(FaultToleranceTest, ReregisterFrameworkExitedExecutor)
MockExecutor exec(DEFAULT_EXECUTOR_ID);
TestContainerizer containerizer(&exec);
- Owned<MasterDetector> slaveDetector(
- new StandaloneMasterDetector(master.get()));
- Try<PID<Slave> > slave = StartSlave(&containerizer, slaveDetector);
+ StandaloneMasterDetector slaveDetector(master.get());
+
+ Try<PID<Slave> > slave = StartSlave(&containerizer, &slaveDetector);
ASSERT_SOME(slave);
MockScheduler sched;
- Owned<StandaloneMasterDetector> schedDetector(
- new StandaloneMasterDetector(master.get()));
- TestingMesosSchedulerDriver driver(&sched, schedDetector.get());
+ StandaloneMasterDetector schedDetector(master.get());
+ TestingMesosSchedulerDriver driver(&sched, &schedDetector);
Future<process::Message> frameworkRegisteredMessage =
FUTURE_MESSAGE(Eq(FrameworkRegisteredMessage().GetTypeName()), _, _);
@@ -1361,8 +1352,7 @@ TEST_F(FaultToleranceTest, ReregisterFrameworkExitedExecutor)
Future<SlaveReregisteredMessage> slaveReregisteredMessage =
FUTURE_PROTOBUF(SlaveReregisteredMessage(), _, _);
- dynamic_cast<StandaloneMasterDetector*>(slaveDetector.get())->appoint(
- master.get());
+ slaveDetector.appoint(master.get());
// Wait for the slave to re-register.
AWAIT_READY(slaveReregisteredMessage);
@@ -1386,7 +1376,7 @@ TEST_F(FaultToleranceTest, ReregisterFrameworkExitedExecutor)
EXPECT_CALL(sched, registered(&driver, _, _));
- schedDetector->appoint(master.get());
+ schedDetector.appoint(master.get());
AWAIT_READY(frameworkRegisteredMessage2);
@@ -1822,8 +1812,9 @@ TEST_F(FaultToleranceTest, SlaveReregisterOnZKExpiration)
Future<SlaveRegisteredMessage> slaveRegisteredMessage =
FUTURE_PROTOBUF(SlaveRegisteredMessage(), _, _);
- StandaloneMasterDetector* detector = new StandaloneMasterDetector(master.get());
- Try<PID<Slave> > slave = StartSlave(Owned<MasterDetector>(detector));
+ StandaloneMasterDetector detector(master.get());
+
+ Try<PID<Slave> > slave = StartSlave(&detector);
ASSERT_SOME(slave);
AWAIT_READY(slaveRegisteredMessage);
@@ -1848,7 +1839,7 @@ TEST_F(FaultToleranceTest, SlaveReregisterOnZKExpiration)
// Simulate a spurious master change event (e.g., due to ZooKeeper
// expiration) at the slave.
- detector->appoint(master.get());
+ detector.appoint(master.get());
AWAIT_READY(slaveReregisteredMessage);
@@ -1872,10 +1863,9 @@ TEST_F(FaultToleranceTest, SlaveReregisterTerminatedExecutor)
MockExecutor exec(DEFAULT_EXECUTOR_ID);
TestContainerizer containerizer(&exec);
- StandaloneMasterDetector* detector =
- new StandaloneMasterDetector(master.get());
- Try<PID<Slave> > slave =
- StartSlave(&containerizer, Owned<MasterDetector>(detector));
+ StandaloneMasterDetector detector(master.get());
+
+ Try<PID<Slave> > slave = StartSlave(&containerizer, &detector);
ASSERT_SOME(slave);
MockScheduler sched;
@@ -1923,7 +1913,7 @@ TEST_F(FaultToleranceTest, SlaveReregisterTerminatedExecutor)
EXPECT_CALL(sched, statusUpdate(&driver, _))
.WillOnce(FutureArg<1>(&status2));
- detector->appoint(master.get());
+ detector.appoint(master.get());
AWAIT_READY(status2);
EXPECT_EQ(TASK_LOST, status2.get().state());
@@ -1943,9 +1933,9 @@ TEST_F(FaultToleranceTest, ReconcileLostTasks)
Try<PID<Master> > master = StartMaster();
ASSERT_SOME(master);
- StandaloneMasterDetector* detector =
- new StandaloneMasterDetector(master.get());
- Try<PID<Slave> > slave = StartSlave(Owned<MasterDetector>(detector));
+ StandaloneMasterDetector detector(master.get());
+
+ Try<PID<Slave> > slave = StartSlave(&detector);
ASSERT_SOME(slave);
MockScheduler sched;
@@ -1993,7 +1983,7 @@ TEST_F(FaultToleranceTest, ReconcileLostTasks)
// Simulate a spurious master change event (e.g., due to ZooKeeper
// expiration) at the slave to force re-registration.
- detector->appoint(master.get());
+ detector.appoint(master.get());
AWAIT_READY(slaveReregisteredMessage);
@@ -2019,9 +2009,9 @@ TEST_F(FaultToleranceTest, ReconcileIncompleteTasks)
MockExecutor exec(DEFAULT_EXECUTOR_ID);
- StandaloneMasterDetector* detector =
- new StandaloneMasterDetector(master.get());
- Try<PID<Slave> > slave = StartSlave(&exec, Owned<MasterDetector>(detector));
+ StandaloneMasterDetector detector(master.get());
+
+ Try<PID<Slave> > slave = StartSlave(&exec, &detector);
ASSERT_SOME(slave);
MockScheduler sched;
@@ -2078,7 +2068,7 @@ TEST_F(FaultToleranceTest, ReconcileIncompleteTasks)
// Simulate a spurious master change event (e.g., due to ZooKeeper
// expiration) at the slave to force re-registration.
- detector->appoint(master.get());
+ detector.appoint(master.get());
AWAIT_READY(slaveReregisteredMessage);
http://git-wip-us.apache.org/repos/asf/mesos/blob/bafce319/src/tests/master_contender_detector_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_contender_detector_tests.cpp b/src/tests/master_contender_detector_tests.cpp
index 8da7420..42051bf 100644
--- a/src/tests/master_contender_detector_tests.cpp
+++ b/src/tests/master_contender_detector_tests.cpp
@@ -102,7 +102,8 @@ TEST_F(MasterContenderDetectorTest, File)
ASSERT_SOME(detector);
- StartSlave(Owned<MasterDetector>(detector.get()), flags);
+ Try<PID<Slave> > slave = StartSlave(detector.get(), flags);
+ ASSERT_SOME(slave);
MockScheduler sched;
MesosSchedulerDriver driver(
@@ -123,6 +124,8 @@ TEST_F(MasterContenderDetectorTest, File)
driver.join();
Shutdown();
+
+ delete detector.get();
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/bafce319/src/tests/master_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_tests.cpp b/src/tests/master_tests.cpp
index 599f4a0..c047397 100644
--- a/src/tests/master_tests.cpp
+++ b/src/tests/master_tests.cpp
@@ -722,14 +722,13 @@ TEST_F(MasterTest, MasterInfoOnReElection)
Try<PID<Master> > master = StartMaster();
ASSERT_SOME(master);
- StandaloneMasterDetector* detector =
- new StandaloneMasterDetector(master.get());
+ StandaloneMasterDetector detector(master.get());
- Try<PID<Slave> > slave = StartSlave(Owned<MasterDetector>(detector));
+ Try<PID<Slave> > slave = StartSlave(&detector);
ASSERT_SOME(slave);
MockScheduler sched;
- TestingMesosSchedulerDriver driver(&sched, detector);
+ TestingMesosSchedulerDriver driver(&sched, &detector);
EXPECT_CALL(sched, registered(&driver, _, _))
.Times(1);
@@ -761,7 +760,7 @@ TEST_F(MasterTest, MasterInfoOnReElection)
// Simulate a spurious event (e.g., due to ZooKeeper
// expiration) at the scheduler.
- detector->appoint(master.get());
+ detector.appoint(master.get());
AWAIT_READY(disconnected);
@@ -841,15 +840,13 @@ TEST_F(MasterTest, MasterLost)
Try<PID<Master> > master = StartMaster();
ASSERT_SOME(master);
- Owned<StandaloneMasterDetector> detector(
- new StandaloneMasterDetector());
- detector->appoint(master.get());
+ StandaloneMasterDetector detector(master.get());
Try<PID<Slave> > slave = StartSlave();
ASSERT_SOME(slave);
MockScheduler sched;
- TestingMesosSchedulerDriver driver(&sched, detector.get());
+ TestingMesosSchedulerDriver driver(&sched, &detector);
EXPECT_CALL(sched, registered(&driver, _, _))
.Times(1);
@@ -869,7 +866,7 @@ TEST_F(MasterTest, MasterLost)
.WillOnce(FutureSatisfy(&disconnected));
// Simulate a spurious event at the scheduler.
- detector->appoint(None());
+ detector.appoint(None());
AWAIT_READY(disconnected);
http://git-wip-us.apache.org/repos/asf/mesos/blob/bafce319/src/tests/mesos.cpp
----------------------------------------------------------------------
diff --git a/src/tests/mesos.cpp b/src/tests/mesos.cpp
index ae3aeee..a9844e4 100644
--- a/src/tests/mesos.cpp
+++ b/src/tests/mesos.cpp
@@ -176,7 +176,7 @@ Try<process::PID<slave::Slave> > MesosTest::StartSlave(
Try<process::PID<slave::Slave> > MesosTest::StartSlave(
slave::Containerizer* containerizer,
- Owned<MasterDetector> detector,
+ MasterDetector* detector,
const Option<slave::Flags>& flags)
{
return cluster.slaves.start(
@@ -187,7 +187,7 @@ Try<process::PID<slave::Slave> > MesosTest::StartSlave(
Try<PID<slave::Slave> > MesosTest::StartSlave(
- Owned<MasterDetector> detector,
+ MasterDetector* detector,
const Option<slave::Flags>& flags)
{
return cluster.slaves.start(
@@ -197,7 +197,7 @@ Try<PID<slave::Slave> > MesosTest::StartSlave(
Try<PID<slave::Slave> > MesosTest::StartSlave(
MockExecutor* executor,
- Owned<MasterDetector> detector,
+ MasterDetector* detector,
const Option<slave::Flags>& flags)
{
slave::Containerizer* containerizer = new TestContainerizer(executor);
http://git-wip-us.apache.org/repos/asf/mesos/blob/bafce319/src/tests/mesos.hpp
----------------------------------------------------------------------
diff --git a/src/tests/mesos.hpp b/src/tests/mesos.hpp
index f77fbfe..7bc5e98 100644
--- a/src/tests/mesos.hpp
+++ b/src/tests/mesos.hpp
@@ -113,19 +113,19 @@ protected:
// Starts a slave with the specified containerizer, detector and flags.
virtual Try<process::PID<slave::Slave> > StartSlave(
slave::Containerizer* containerizer,
- process::Owned<MasterDetector> detector,
+ MasterDetector* detector,
const Option<slave::Flags>& flags = None());
// Starts a slave with the specified MasterDetector and flags.
virtual Try<process::PID<slave::Slave> > StartSlave(
- process::Owned<MasterDetector> detector,
+ MasterDetector* detector,
const Option<slave::Flags>& flags = None());
// Starts a slave with the specified mock executor, MasterDetector
// and flags.
virtual Try<process::PID<slave::Slave> > StartSlave(
MockExecutor* executor,
- process::Owned<MasterDetector> detector,
+ MasterDetector* detector,
const Option<slave::Flags>& flags = None());
// Stop the specified master.