Repository: mesos Updated Branches: refs/heads/master cb3ef91a6 -> 5220f7758
Added more expectations to TASK_LOST test cases. Check the reason and source of TASK_LOST status updates, replaced ASSERT_ with EXPECT_ in various places where EXPECT_ is more appropriate. Review: https://reviews.apache.org/r/50235/ Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/29925658 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/29925658 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/29925658 Branch: refs/heads/master Commit: 29925658291be60bda7af7f83225d743e8d24870 Parents: cb3ef91 Author: Neil Conway <neil.con...@gmail.com> Authored: Fri Aug 5 16:41:10 2016 -0700 Committer: Vinod Kone <vinodk...@gmail.com> Committed: Fri Aug 5 16:41:10 2016 -0700 ---------------------------------------------------------------------- src/tests/fault_tolerance_tests.cpp | 1 + src/tests/master_authorization_tests.cpp | 6 + src/tests/master_maintenance_tests.cpp | 3 + src/tests/master_slave_reconciliation_tests.cpp | 6 +- src/tests/master_tests.cpp | 6 + src/tests/partition_tests.cpp | 2 + src/tests/slave_recovery_tests.cpp | 144 +++++++++++-------- 7 files changed, 107 insertions(+), 61 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/29925658/src/tests/fault_tolerance_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/fault_tolerance_tests.cpp b/src/tests/fault_tolerance_tests.cpp index 79f36a5..661cc8b 100644 --- a/src/tests/fault_tolerance_tests.cpp +++ b/src/tests/fault_tolerance_tests.cpp @@ -907,6 +907,7 @@ TEST_F(FaultToleranceTest, TaskLost) AWAIT_READY(status); EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TaskStatus::REASON_MASTER_DISCONNECTED, status.get().reason()); driver.stop(); driver.join(); http://git-wip-us.apache.org/repos/asf/mesos/blob/29925658/src/tests/master_authorization_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/master_authorization_tests.cpp b/src/tests/master_authorization_tests.cpp index e43b264..16f1ab4 100644 --- a/src/tests/master_authorization_tests.cpp +++ b/src/tests/master_authorization_tests.cpp @@ -373,7 +373,10 @@ TEST_F(MasterAuthorizationTest, SlaveRemoved) // Framework should get a TASK_LOST. AWAIT_READY(status); + EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TaskStatus::SOURCE_MASTER, status.get().source()); + EXPECT_EQ(TaskStatus::REASON_SLAVE_REMOVED, status.get().reason()); // No task launch should happen resulting in all resources being // returned to the allocator. @@ -464,7 +467,10 @@ TEST_F(MasterAuthorizationTest, SlaveDisconnected) // Framework should get a TASK_LOST. AWAIT_READY(status); + EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TaskStatus::SOURCE_MASTER, status.get().source()); + EXPECT_EQ(TaskStatus::REASON_SLAVE_REMOVED, status.get().reason()); // No task launch should happen resulting in all resources being // returned to the allocator. http://git-wip-us.apache.org/repos/asf/mesos/blob/29925658/src/tests/master_maintenance_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/master_maintenance_tests.cpp b/src/tests/master_maintenance_tests.cpp index 2d4b45f..0820e63 100644 --- a/src/tests/master_maintenance_tests.cpp +++ b/src/tests/master_maintenance_tests.cpp @@ -698,7 +698,10 @@ TEST_F(MasterMaintenanceTest, EnterMaintenanceMode) // Verify that we received a TASK_LOST. AWAIT_READY(lostStatus); + EXPECT_EQ(TASK_LOST, lostStatus.get().state()); + EXPECT_EQ(TaskStatus::SOURCE_MASTER, lostStatus.get().source()); + EXPECT_EQ(TaskStatus::REASON_SLAVE_REMOVED, lostStatus.get().reason()); // Verify that the framework received the slave lost message. AWAIT_READY(slaveLost); http://git-wip-us.apache.org/repos/asf/mesos/blob/29925658/src/tests/master_slave_reconciliation_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/master_slave_reconciliation_tests.cpp b/src/tests/master_slave_reconciliation_tests.cpp index fdb9bb6..03405e3 100644 --- a/src/tests/master_slave_reconciliation_tests.cpp +++ b/src/tests/master_slave_reconciliation_tests.cpp @@ -233,8 +233,10 @@ TEST_F(MasterSlaveReconciliationTest, ReconcileLostTask) AWAIT_READY(status); - ASSERT_EQ(task.task_id(), status.get().task_id()); - ASSERT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(task.task_id(), status.get().task_id()); + EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TaskStatus::SOURCE_SLAVE, status.get().source()); + EXPECT_EQ(TaskStatus::REASON_RECONCILIATION, status.get().reason()); // Before we obtain the metrics, ensure that the master has finished // processing the status update so metrics have been updated. http://git-wip-us.apache.org/repos/asf/mesos/blob/29925658/src/tests/master_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/master_tests.cpp b/src/tests/master_tests.cpp index b1d7545..398164d 100644 --- a/src/tests/master_tests.cpp +++ b/src/tests/master_tests.cpp @@ -461,7 +461,10 @@ TEST_F(MasterTest, KillUnknownTask) driver.killTask(unknownTaskId); AWAIT_READY(status); + EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TaskStatus::SOURCE_MASTER, status.get().source()); + EXPECT_EQ(TaskStatus::REASON_RECONCILIATION, status.get().reason()); EXPECT_CALL(exec, shutdown(_)) .Times(AtMost(1)); @@ -1815,8 +1818,11 @@ TEST_F(MasterTest, RecoveredSlaveDoesNotReregister) AWAIT_READY(slaveLost); JSON::Object stats = Metrics(); + EXPECT_EQ(1, stats.values["master/recovery_slave_removals"]); EXPECT_EQ(1, stats.values["master/slave_removals"]); EXPECT_EQ(1, stats.values["master/slave_removals/reason_unhealthy"]); + EXPECT_EQ(1, stats.values["master/slave_shutdowns_completed"]); + EXPECT_EQ(1, stats.values["master/slave_shutdowns_scheduled"]); Clock::resume(); http://git-wip-us.apache.org/repos/asf/mesos/blob/29925658/src/tests/partition_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/partition_tests.cpp b/src/tests/partition_tests.cpp index 91969e4..bafc7ce 100644 --- a/src/tests/partition_tests.cpp +++ b/src/tests/partition_tests.cpp @@ -278,6 +278,7 @@ TEST_P(PartitionTest, PartitionedSlaveReregistration) // The master will have notified the framework of the lost task. AWAIT_READY(lostStatus); EXPECT_EQ(TASK_LOST, lostStatus.get().state()); + EXPECT_EQ(TaskStatus::REASON_SLAVE_REMOVED, lostStatus.get().reason()); // Wait for the master to attempt to shut down the slave. AWAIT_READY(shutdownMessage); @@ -555,6 +556,7 @@ TEST_P(PartitionTest, PartitionedSlaveExitedExecutor) // The master will have notified the framework of the lost task. AWAIT_READY(lostStatus); EXPECT_EQ(TASK_LOST, lostStatus.get().state()); + EXPECT_EQ(TaskStatus::REASON_SLAVE_REMOVED, lostStatus.get().reason()); // Wait for the master to attempt to shut down the slave. AWAIT_READY(shutdownMessage); http://git-wip-us.apache.org/repos/asf/mesos/blob/29925658/src/tests/slave_recovery_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/slave_recovery_tests.cpp b/src/tests/slave_recovery_tests.cpp index 470fb26..83e89d6 100644 --- a/src/tests/slave_recovery_tests.cpp +++ b/src/tests/slave_recovery_tests.cpp @@ -414,7 +414,7 @@ TYPED_TEST(SlaveRecoveryTest, RecoverStatusUpdateManager) ASSERT_SOME(slave); AWAIT_READY(status); - ASSERT_EQ(TASK_RUNNING, status.get().state()); + EXPECT_EQ(TASK_RUNNING, status.get().state()); driver.stop(); driver.join(); @@ -501,12 +501,12 @@ TYPED_TEST(SlaveRecoveryTest, ReconnectHTTPExecutor) // Ensure that the executor subscribes again. AWAIT_READY(subscribeCall); - ASSERT_EQ(1, subscribeCall.get().subscribe().unacknowledged_updates().size()); - ASSERT_EQ(1, subscribeCall.get().subscribe().unacknowledged_tasks().size()); + EXPECT_EQ(1, subscribeCall.get().subscribe().unacknowledged_updates().size()); + EXPECT_EQ(1, subscribeCall.get().subscribe().unacknowledged_tasks().size()); // Scheduler should receive the recovered update. AWAIT_READY(status); - ASSERT_EQ(TASK_RUNNING, status.get().state()); + EXPECT_EQ(TASK_RUNNING, status.get().state()); driver.stop(); driver.join(); @@ -593,14 +593,14 @@ TYPED_TEST(SlaveRecoveryTest, ReconnectExecutor) reregister.ParseFromString(reregisterExecutorMessage.get().body); // Executor should inform about the unacknowledged update. - ASSERT_EQ(1, reregister.updates_size()); + EXPECT_EQ(1, reregister.updates_size()); const StatusUpdate& update = reregister.updates(0); - ASSERT_EQ(task.task_id(), update.status().task_id()); - ASSERT_EQ(TASK_RUNNING, update.status().state()); + EXPECT_EQ(task.task_id(), update.status().task_id()); + EXPECT_EQ(TASK_RUNNING, update.status().state()); // Scheduler should receive the recovered update. AWAIT_READY(status); - ASSERT_EQ(TASK_RUNNING, status.get().state()); + EXPECT_EQ(TASK_RUNNING, status.get().state()); driver.stop(); driver.join(); @@ -704,7 +704,8 @@ TYPED_TEST(SlaveRecoveryTest, RecoverUnregisteredHTTPExecutor) // Scheduler should receive the TASK_LOST update. AWAIT_READY(status); - ASSERT_EQ(TASK_LOST, status->state()); + + EXPECT_EQ(TASK_LOST, status->state()); EXPECT_EQ(TaskStatus::SOURCE_SLAVE, status->source()); EXPECT_EQ(TaskStatus::REASON_EXECUTOR_REREGISTRATION_TIMEOUT, status->reason()); @@ -716,7 +717,7 @@ TYPED_TEST(SlaveRecoveryTest, RecoverUnregisteredHTTPExecutor) } AWAIT_READY(offers2); - ASSERT_EQ(Resources(offers1.get()[0].resources()), + EXPECT_EQ(Resources(offers1.get()[0].resources()), Resources(offers2.get()[0].resources())); driver.stop(); @@ -817,7 +818,8 @@ TYPED_TEST(SlaveRecoveryTest, RecoverUnregisteredExecutor) // Scheduler should receive the TASK_LOST update. AWAIT_READY(status); - ASSERT_EQ(TASK_LOST, status->state()); + + EXPECT_EQ(TASK_LOST, status->state()); EXPECT_EQ(TaskStatus::SOURCE_SLAVE, status->source()); EXPECT_EQ(TaskStatus::REASON_EXECUTOR_REREGISTRATION_TIMEOUT, status->reason()); @@ -829,7 +831,7 @@ TYPED_TEST(SlaveRecoveryTest, RecoverUnregisteredExecutor) } AWAIT_READY(offers2); - ASSERT_EQ(Resources(offers1.get()[0].resources()), + EXPECT_EQ(Resources(offers1.get()[0].resources()), Resources(offers2.get()[0].resources())); driver.stop(); @@ -1023,12 +1025,12 @@ TYPED_TEST(SlaveRecoveryTest, RecoverTerminatedHTTPExecutor) slave::state::FrameworkState frameworkState = state.get().slave.get().frameworks.get(frameworkId.get()).get(); - ASSERT_EQ(1u, frameworkState.executors.size()); + EXPECT_EQ(1u, frameworkState.executors.size()); slave::state::ExecutorState executorState = frameworkState.executors.begin()->second; - ASSERT_EQ(1u, executorState.runs.size()); + EXPECT_EQ(1u, executorState.runs.size()); slave::state::RunState runState = executorState.runs.begin()->second; @@ -1073,7 +1075,7 @@ TYPED_TEST(SlaveRecoveryTest, RecoverTerminatedHTTPExecutor) // Scheduler should receive the TASK_FAILED update. AWAIT_READY(status); - ASSERT_EQ(TASK_FAILED, status->state()); + EXPECT_EQ(TASK_FAILED, status->state()); while (offers2.isPending()) { Clock::advance(Seconds(1)); @@ -1082,7 +1084,7 @@ TYPED_TEST(SlaveRecoveryTest, RecoverTerminatedHTTPExecutor) // Master should subsequently reoffer the same resources. AWAIT_READY(offers2); - ASSERT_EQ(Resources(offers1.get()[0].resources()), + EXPECT_EQ(Resources(offers1.get()[0].resources()), Resources(offers2.get()[0].resources())); driver.stop(); @@ -1193,7 +1195,8 @@ TYPED_TEST(SlaveRecoveryTest, RecoverTerminatedExecutor) // Scheduler should receive the TASK_LOST update. AWAIT_READY(status); - ASSERT_EQ(TASK_LOST, status->state()); + + EXPECT_EQ(TASK_LOST, status->state()); EXPECT_EQ(TaskStatus::SOURCE_SLAVE, status->source()); EXPECT_EQ(TaskStatus::REASON_EXECUTOR_REREGISTRATION_TIMEOUT, status->reason()); @@ -1205,7 +1208,7 @@ TYPED_TEST(SlaveRecoveryTest, RecoverTerminatedExecutor) // Master should subsequently reoffer the same resources. AWAIT_READY(offers2); - ASSERT_EQ(Resources(offers1.get()[0].resources()), + EXPECT_EQ(Resources(offers1.get()[0].resources()), Resources(offers2.get()[0].resources())); driver.stop(); @@ -1305,7 +1308,7 @@ TYPED_TEST(SlaveRecoveryTest, DISABLED_RecoveryTimeout) // Scheduler should receive the TASK_FAILED update. AWAIT_READY(status); - ASSERT_EQ(TASK_FAILED, status.get().state()); + EXPECT_EQ(TASK_FAILED, status.get().state()); driver.stop(); driver.join(); @@ -1395,7 +1398,7 @@ TYPED_TEST(SlaveRecoveryTest, RecoverCompletedExecutor) // Make sure all slave resources are reoffered. AWAIT_READY(offers2); - ASSERT_EQ(Resources(offers1.get()[0].resources()), + EXPECT_EQ(Resources(offers1.get()[0].resources()), Resources(offers2.get()[0].resources())); driver.stop(); @@ -1500,7 +1503,10 @@ TYPED_TEST(SlaveRecoveryTest, CleanupHTTPExecutor) // Scheduler should receive the TASK_LOST update. AWAIT_READY(status); - ASSERT_EQ(TASK_LOST, status.get().state()); + + EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TaskStatus::SOURCE_MASTER, status.get().source()); + EXPECT_EQ(TaskStatus::REASON_SLAVE_REMOVED, status.get().reason()); driver.stop(); driver.join(); @@ -1600,7 +1606,10 @@ TYPED_TEST(SlaveRecoveryTest, CleanupExecutor) // Scheduler should receive the TASK_LOST update. AWAIT_READY(status); - ASSERT_EQ(TASK_LOST, status.get().state()); + + EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TaskStatus::SOURCE_MASTER, status.get().source()); + EXPECT_EQ(TaskStatus::REASON_SLAVE_REMOVED, status.get().reason()); driver.stop(); driver.join(); @@ -1690,10 +1699,14 @@ TYPED_TEST(SlaveRecoveryTest, RemoveNonCheckpointingFramework) // Scheduler should receive the TASK_LOST updates. AWAIT_READY(status1); - ASSERT_EQ(TASK_LOST, status1.get().state()); + EXPECT_EQ(TASK_LOST, status1.get().state()); + EXPECT_EQ(TaskStatus::SOURCE_MASTER, status1.get().source()); + EXPECT_EQ(TaskStatus::REASON_SLAVE_DISCONNECTED, status1.get().reason()); AWAIT_READY(status2); - ASSERT_EQ(TASK_LOST, status2.get().state()); + EXPECT_EQ(TASK_LOST, status2.get().state()); + EXPECT_EQ(TaskStatus::SOURCE_MASTER, status2.get().source()); + EXPECT_EQ(TaskStatus::REASON_SLAVE_DISCONNECTED, status2.get().reason()); driver.stop(); driver.join(); @@ -1894,7 +1907,7 @@ TYPED_TEST(SlaveRecoveryTest, KillTaskWithHTTPExecutor) // Wait for TASK_KILLED update. AWAIT_READY(status); - ASSERT_EQ(TASK_KILLED, status.get().state()); + EXPECT_EQ(TASK_KILLED, status.get().state()); Clock::pause(); @@ -1907,7 +1920,7 @@ TYPED_TEST(SlaveRecoveryTest, KillTaskWithHTTPExecutor) // Make sure all slave resources are reoffered. AWAIT_READY(offers2); - ASSERT_EQ(Resources(offers1.get()[0].resources()), + EXPECT_EQ(Resources(offers1.get()[0].resources()), Resources(offers2.get()[0].resources())); Clock::resume(); @@ -2016,7 +2029,7 @@ TYPED_TEST(SlaveRecoveryTest, KillTask) // Wait for TASK_KILLED update. AWAIT_READY(status); - ASSERT_EQ(TASK_KILLED, status.get().state()); + EXPECT_EQ(TASK_KILLED, status.get().state()); Clock::pause(); @@ -2029,7 +2042,7 @@ TYPED_TEST(SlaveRecoveryTest, KillTask) // Make sure all slave resources are reoffered. AWAIT_READY(offers2); - ASSERT_EQ(Resources(offers1.get()[0].resources()), + EXPECT_EQ(Resources(offers1.get()[0].resources()), Resources(offers2.get()[0].resources())); Clock::resume(); @@ -2111,7 +2124,7 @@ TYPED_TEST(SlaveRecoveryTest, Reboot) Future<hashset<ContainerID> > containers = containerizer->containers(); AWAIT_READY(containers); - ASSERT_EQ(1u, containers.get().size()); + EXPECT_EQ(1u, containers.get().size()); ContainerID containerId = *containers.get().begin(); @@ -2164,7 +2177,7 @@ TYPED_TEST(SlaveRecoveryTest, Reboot) // Make sure all slave resources are reoffered. AWAIT_READY(offers2); - ASSERT_EQ(Resources(offers1.get()[0].resources()), + EXPECT_EQ(Resources(offers1.get()[0].resources()), Resources(offers2.get()[0].resources())); driver.stop(); @@ -2303,7 +2316,7 @@ TYPED_TEST(SlaveRecoveryTest, GCExecutor) // Make sure all slave resources are reoffered. AWAIT_READY(offers2); - ASSERT_EQ(Resources(offers1.get()[0].resources()), + EXPECT_EQ(Resources(offers1.get()[0].resources()), Resources(offers2.get()[0].resources())); Clock::resume(); @@ -2422,11 +2435,11 @@ TYPED_TEST(SlaveRecoveryTest, ShutdownSlave) EXPECT_NE(0u, offers3.get().size()); // Make sure all slave resources are reoffered. - ASSERT_EQ(Resources(offers1.get()[0].resources()), + EXPECT_EQ(Resources(offers1.get()[0].resources()), Resources(offers3.get()[0].resources())); // Ensure the slave id is different. - ASSERT_NE( + EXPECT_NE( offers1.get()[0].slave_id().value(), offers3.get()[0].slave_id().value()); driver.stop(); @@ -2485,7 +2498,7 @@ TYPED_TEST(SlaveRecoveryTest, ShutdownSlaveSIGUSR1) driver.launchTasks(offers.get()[0].id(), {task}); AWAIT_READY(status); - ASSERT_EQ(TASK_RUNNING, status.get().state()); + EXPECT_EQ(TASK_RUNNING, status.get().state()); Future<TaskStatus> status2; EXPECT_CALL(sched, statusUpdate(_, _)) @@ -2516,7 +2529,11 @@ TYPED_TEST(SlaveRecoveryTest, ShutdownSlaveSIGUSR1) // The master should send a TASK_LOST and slaveLost. AWAIT_READY(status2); - ASSERT_EQ(TASK_LOST, status2.get().state()); + + EXPECT_EQ(TASK_LOST, status2.get().state()); + EXPECT_EQ(TaskStatus::SOURCE_MASTER, status2.get().source()); + EXPECT_EQ(TaskStatus::REASON_SLAVE_REMOVED, status2.get().reason()); + AWAIT_READY(slaveLost); // Make sure the slave terminates. @@ -2620,7 +2637,10 @@ TYPED_TEST(SlaveRecoveryTest, RegisterDisconnectedSlave) // Scheduler should get a TASK_LOST message. AWAIT_READY(status2); - ASSERT_EQ(TASK_LOST, status2.get().state()); + + EXPECT_EQ(TASK_LOST, status2.get().state()); + EXPECT_EQ(TaskStatus::SOURCE_MASTER, status2.get().source()); + EXPECT_EQ(TaskStatus::REASON_SLAVE_REMOVED, status2.get().reason()); driver.stop(); driver.join(); @@ -2728,11 +2748,11 @@ TYPED_TEST(SlaveRecoveryTest, ReconcileKillTask) // Scheduler should get a TASK_KILLED message. AWAIT_READY(status); - ASSERT_EQ(TASK_KILLED, status.get().state()); + EXPECT_EQ(TASK_KILLED, status.get().state()); // Make sure all slave resources are reoffered. AWAIT_READY(offers2); - ASSERT_EQ(Resources(offers1.get()[0].resources()), + EXPECT_EQ(Resources(offers1.get()[0].resources()), Resources(offers2.get()[0].resources())); driver.stop(); @@ -2933,12 +2953,12 @@ TYPED_TEST(SlaveRecoveryTest, ReconcileTasksMissingFromSlave) slave::state::FrameworkState frameworkState = state.get().slave.get().frameworks.get(frameworkId.get()).get(); - ASSERT_EQ(1u, frameworkState.executors.size()); + EXPECT_EQ(1u, frameworkState.executors.size()); slave::state::ExecutorState executorState = frameworkState.executors.begin()->second; - ASSERT_EQ(1u, executorState.runs.size()); + EXPECT_EQ(1u, executorState.runs.size()); slave::state::RunState runState = executorState.runs.begin()->second; @@ -2983,7 +3003,10 @@ TYPED_TEST(SlaveRecoveryTest, ReconcileTasksMissingFromSlave) // Wait for TASK_LOST update. AWAIT_READY(status); - ASSERT_EQ(TASK_LOST, status.get().state()); + + EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TaskStatus::SOURCE_SLAVE, status.get().source()); + EXPECT_EQ(TaskStatus::REASON_RECONCILIATION, status.get().reason()); Clock::pause(); @@ -2996,7 +3019,7 @@ TYPED_TEST(SlaveRecoveryTest, ReconcileTasksMissingFromSlave) // Make sure all slave resources are reoffered. AWAIT_READY(offers2); - ASSERT_EQ(Resources(offers1.get()[0].resources()), + EXPECT_EQ(Resources(offers1.get()[0].resources()), Resources(offers2.get()[0].resources())); Clock::resume(); @@ -3137,7 +3160,7 @@ TYPED_TEST(SlaveRecoveryTest, SchedulerFailover) // Wait for TASK_KILLED update. AWAIT_READY(status); - ASSERT_EQ(TASK_KILLED, status.get().state()); + EXPECT_EQ(TASK_KILLED, status.get().state()); Clock::pause(); @@ -3150,7 +3173,7 @@ TYPED_TEST(SlaveRecoveryTest, SchedulerFailover) // Make sure all slave resources are reoffered. AWAIT_READY(offers2); - ASSERT_EQ(Resources(offers1.get()[0].resources()), + EXPECT_EQ(Resources(offers1.get()[0].resources()), Resources(offers2.get()[0].resources())); Clock::resume(); @@ -3215,7 +3238,7 @@ TYPED_TEST(SlaveRecoveryTest, PartitionedSlave) driver.start(); AWAIT_READY(offers); - ASSERT_NE(0u, offers.get().size()); + EXPECT_NE(0u, offers.get().size()); // Long running task. TaskInfo task = createTask(offers.get()[0], "sleep 1000"); @@ -3268,7 +3291,10 @@ TYPED_TEST(SlaveRecoveryTest, PartitionedSlave) // The master will have notified the framework of the lost task. AWAIT_READY(status); + EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TaskStatus::SOURCE_MASTER, status.get().source()); + EXPECT_EQ(TaskStatus::REASON_SLAVE_REMOVED, status.get().reason()); // Wait for the master to attempt to shut down the slave. AWAIT_READY(shutdownMessage); @@ -3430,11 +3456,11 @@ TYPED_TEST(SlaveRecoveryTest, MasterFailover) // Wait for TASK_KILLED update. AWAIT_READY(status); - ASSERT_EQ(TASK_KILLED, status.get().state()); + EXPECT_EQ(TASK_KILLED, status.get().state()); // Make sure all slave resources are reoffered. AWAIT_READY(offers2); - ASSERT_EQ(Resources(offers1.get()[0].resources()), + EXPECT_EQ(Resources(offers1.get()[0].resources()), Resources(offers2.get()[0].resources())); AWAIT_READY(executorTerminated); @@ -3597,14 +3623,14 @@ TYPED_TEST(SlaveRecoveryTest, MultipleFrameworks) // Wait for TASK_KILLED update. AWAIT_READY(status1); - ASSERT_EQ(TASK_KILLED, status1.get().state()); + EXPECT_EQ(TASK_KILLED, status1.get().state()); // Kill task 2. driver2.killTask(task2.task_id()); // Wait for TASK_KILLED update. AWAIT_READY(status2); - ASSERT_EQ(TASK_KILLED, status2.get().state()); + EXPECT_EQ(TASK_KILLED, status2.get().state()); AWAIT_READY(executorTerminated1); AWAIT_READY(executorTerminated2); @@ -3664,7 +3690,7 @@ TYPED_TEST(SlaveRecoveryTest, MultipleSlaves) ASSERT_SOME(slave1); AWAIT_READY(offers1); - ASSERT_EQ(1u, offers1.get().size()); + EXPECT_EQ(1u, offers1.get().size()); // Launch a long running task in the first slave. TaskInfo task1 = createTask(offers1.get()[0], "sleep 1000"); @@ -3705,7 +3731,7 @@ TYPED_TEST(SlaveRecoveryTest, MultipleSlaves) ASSERT_SOME(slave2); AWAIT_READY(offers2); - ASSERT_EQ(1u, offers2.get().size()); + EXPECT_EQ(1u, offers2.get().size()); // Launch a long running task in each slave. TaskInfo task2 = createTask(offers2.get()[0], "sleep 1000"); @@ -3783,10 +3809,10 @@ TYPED_TEST(SlaveRecoveryTest, MultipleSlaves) driver.killTask(task2.task_id()); AWAIT_READY(status1); - ASSERT_EQ(TASK_KILLED, status1.get().state()); + EXPECT_EQ(TASK_KILLED, status1.get().state()); AWAIT_READY(status2); - ASSERT_EQ(TASK_KILLED, status2.get().state()); + EXPECT_EQ(TASK_KILLED, status2.get().state()); AWAIT_READY(executorTerminated1); AWAIT_READY(executorTerminated2); @@ -3882,7 +3908,7 @@ TYPED_TEST(SlaveRecoveryTest, RestartBeforeContainerizerLaunch) // Scheduler should receive the TASK_FAILED update. AWAIT_READY(status); - ASSERT_EQ(TASK_FAILED, status->state()); + EXPECT_EQ(TASK_FAILED, status->state()); EXPECT_EQ(TaskStatus::SOURCE_SLAVE, status->source()); EXPECT_EQ(TaskStatus::REASON_EXECUTOR_TERMINATED, status->reason()); @@ -3970,7 +3996,7 @@ TEST_F(MesosContainerizerSlaveRecoveryTest, ResourceStatistics) Future<hashset<ContainerID> > containers = containerizer->containers(); AWAIT_READY(containers); - ASSERT_EQ(1u, containers.get().size()); + EXPECT_EQ(1u, containers.get().size()); ContainerID containerId = *(containers.get().begin()); @@ -4061,7 +4087,7 @@ TEST_F(MesosContainerizerSlaveRecoveryTest, CGROUPS_ROOT_PerfRollForward) Future<hashset<ContainerID>> containers = containerizer->containers(); AWAIT_READY(containers); - ASSERT_EQ(1u, containers.get().size()); + EXPECT_EQ(1u, containers.get().size()); ContainerID containerId1 = *(containers.get().begin()); @@ -4121,7 +4147,7 @@ TEST_F(MesosContainerizerSlaveRecoveryTest, CGROUPS_ROOT_PerfRollForward) containers = containerizer->containers(); AWAIT_READY(containers); - ASSERT_EQ(2u, containers.get().size()); + EXPECT_EQ(2u, containers.get().size()); EXPECT_TRUE(containers.get().contains(containerId1)); ContainerID containerId2; @@ -4208,7 +4234,7 @@ TEST_F(MesosContainerizerSlaveRecoveryTest, CGROUPS_ROOT_PidNamespaceForward) Future<hashset<ContainerID> > containers = containerizer->containers(); AWAIT_READY(containers); - ASSERT_EQ(1u, containers.get().size()); + EXPECT_EQ(1u, containers.get().size()); ContainerID containerId = *(containers.get().begin()); @@ -4313,7 +4339,7 @@ TEST_F(MesosContainerizerSlaveRecoveryTest, CGROUPS_ROOT_PidNamespaceBackward) Future<hashset<ContainerID> > containers = containerizer->containers(); AWAIT_READY(containers); - ASSERT_EQ(1u, containers.get().size()); + EXPECT_EQ(1u, containers.get().size()); ContainerID containerId = *(containers.get().begin());