Repository: mesos Updated Branches: refs/heads/master b8b216331 -> 009963d9d
Fixed flaky test FaultToleranceTest.FrameworkReregister. Review: https://reviews.apache.org/r/57364/ Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/009963d9 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/009963d9 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/009963d9 Branch: refs/heads/master Commit: 009963d9d2f1fbc130e20dc696010c9b5eede52f Parents: b8b2163 Author: Jay Guo <[email protected]> Authored: Thu Mar 9 11:03:32 2017 -0500 Committer: Neil Conway <[email protected]> Committed: Thu Mar 9 11:03:37 2017 -0500 ---------------------------------------------------------------------- src/tests/fault_tolerance_tests.cpp | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/009963d9/src/tests/fault_tolerance_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/fault_tolerance_tests.cpp b/src/tests/fault_tolerance_tests.cpp index b13a7e2..d6bde7f 100644 --- a/src/tests/fault_tolerance_tests.cpp +++ b/src/tests/fault_tolerance_tests.cpp @@ -785,6 +785,9 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS( } +// This test ensures framework re-registers with master after failover. +// Previous offers are rescinded and re-offered to the framework after +// re-registration. TEST_F_TEMP_DISABLED_ON_WINDOWS(FaultToleranceTest, FrameworkReregister) { // NOTE: We do not use `StartMaster()` because we need to access flags later. @@ -795,10 +798,16 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(FaultToleranceTest, FrameworkReregister) StandaloneMasterDetector slaveDetector(master.get()->pid); + Future<SlaveRegisteredMessage> slaveRegisteredMessage = + FUTURE_PROTOBUF(SlaveRegisteredMessage(), _, _); + slave::Flags agentFlags = CreateSlaveFlags(); Try<Owned<cluster::Slave>> slave = StartSlave(&slaveDetector, agentFlags); ASSERT_SOME(slave); + // Wait for slave registration. + AWAIT_READY(slaveRegisteredMessage); + // Create a detector for the scheduler driver because we want the // spurious leading master change to be known by the scheduler // driver only. @@ -806,7 +815,9 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(FaultToleranceTest, FrameworkReregister) MockScheduler sched; TestingMesosSchedulerDriver driver(&sched, &schedDetector); - EXPECT_CALL(sched, registered(&driver, _, _)); + Future<Nothing> registered; + EXPECT_CALL(sched, registered(&driver, _, _)) + .WillOnce(FutureSatisfy(®istered)); Future<Nothing> resourceOffers; EXPECT_CALL(sched, resourceOffers(&driver, _)) @@ -818,15 +829,14 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(FaultToleranceTest, FrameworkReregister) driver.start(); - // Trigger authentication, registration, and offers to the agent. - // Once we advance the clock, taking `Clock::now` gives us the - // precise registration time. - Clock::advance(agentFlags.authentication_backoff_factor); - Clock::advance(agentFlags.registration_backoff_factor); - Clock::advance(masterFlags.allocation_interval); + AWAIT_READY(registered); + // Take `Clock::now` as precise registration time. process::Time registerTime = Clock::now(); + // Advance the clock and trigger a batch allocation. + Clock::advance(masterFlags.allocation_interval); + AWAIT_READY(resourceOffers); Future<Nothing> disconnected;
