FUTURE_PROTOBUF(SlaveReregisteredMessage(), _, _); Future<ReregisterSlaveMessage> reregisterSlaveMessage = FUTURE_PROTOBUF(ReregisterSlaveMessage(), _, _); // Simulate a spurious master change event (e.g., due to ZooKeeper // expiration) at the slave to force re-registration. detector.appoint(master.get()->pid); // Expect to receive the 'ReregisterSlaveMessage' containing the // active frameworks. AWAIT_READY(reregisterSlaveMessage); // Both tasks should be present; the command executor task shouldn't have an // executor ID, but the default executor task should have one. EXPECT_EQ(2, reregisterSlaveMessage->tasks().size()); foreach (const Task& task, reregisterSlaveMessage->tasks()) { if (task.task_id() == commandExecutorTask.task_id()) { EXPECT_FALSE(task.has_executor_id()) << "The command executor ID is present, but it" << " shouldn't be sent to the master"; } else { EXPECT_TRUE(task.has_executor_id()) << "The default executor ID is missing"; } } AWAIT_READY(slaveReregisteredMessage); // Check the response of the master state endpoint. Future<process::http::Response> response = process::http::get(