This is an automated email from the ASF dual-hosted git repository. chhsiao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mesos.git
commit 678fa8b44bc9c09f5f9908a3a4511f7195150d7b Author: Chun-Hung Hsiao <[email protected]> AuthorDate: Tue Sep 18 21:40:35 2018 -0700 Tested container cleanup in `AgentResourceProviderConfigApiTest.Remove`. Review: https://reviews.apache.org/r/68762 --- .../agent_resource_provider_config_api_tests.cpp | 29 +++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/tests/agent_resource_provider_config_api_tests.cpp b/src/tests/agent_resource_provider_config_api_tests.cpp index 891678f..15c83b3 100644 --- a/src/tests/agent_resource_provider_config_api_tests.cpp +++ b/src/tests/agent_resource_provider_config_api_tests.cpp @@ -37,6 +37,10 @@ #include "slave/slave.hpp" +#include "slave/containerizer/fetcher.hpp" + +#include "slave/containerizer/mesos/containerizer.hpp" + #include "tests/flags.hpp" #include "tests/mesos.hpp" @@ -867,10 +871,21 @@ TEST_P(AgentResourceProviderConfigApiTest, Remove) ResourceProviderInfo info = createResourceProviderInfo("volume1:4GB"); ASSERT_SOME(os::write(configPath, stringify(JSON::protobuf(info)))); + slave::Flags slaveFlags = CreateSlaveFlags(); + + slave::Fetcher fetcher(slaveFlags); + + Try<slave::MesosContainerizer*> _containerizer = + slave::MesosContainerizer::create(slaveFlags, false, &fetcher); + ASSERT_SOME(_containerizer); + + Owned<slave::MesosContainerizer> containerizer(_containerizer.get()); + Future<SlaveRegisteredMessage> slaveRegisteredMessage = FUTURE_PROTOBUF(SlaveRegisteredMessage(), _, _); - Try<Owned<cluster::Slave>> slave = StartSlave(detector.get()); + Try<Owned<cluster::Slave>> slave = + StartSlave(detector.get(), containerizer.get(), slaveFlags); ASSERT_SOME(slave); AWAIT_READY(slaveRegisteredMessage); @@ -907,6 +922,15 @@ TEST_P(AgentResourceProviderConfigApiTest, Remove) AWAIT_READY(oldOffers); ASSERT_FALSE(oldOffers->empty()); + Future<hashset<ContainerID>> pluginContainers = containerizer->containers(); + + // Check that there is one plugin container running. + AWAIT_READY(pluginContainers); + ASSERT_EQ(1u, pluginContainers->size()); + + Future<Option<mesos::slave::ContainerTermination>> pluginTermination = + containerizer->wait(*pluginContainers->begin()); + Future<OfferID> rescinded; EXPECT_CALL(sched, offerRescinded(&driver, oldOffers->at(0).id())) @@ -922,6 +946,9 @@ TEST_P(AgentResourceProviderConfigApiTest, Remove) // Wait for the old offer to be rescinded. AWAIT_READY(rescinded); + + // Check that the plugin container has been destroyed. + AWAIT_READY(pluginTermination); }
