This is an automated email from the ASF dual-hosted git repository.

gilbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git

commit 5032ea381dd2d532d781ba1d2c9fd3a600e7883a
Author: Qian Zhang <[email protected]>
AuthorDate: Fri Jul 19 15:06:06 2019 -0700

    Added a test `ROOT_NonePrivateIPCModeWithShmSize`.
    
    Review: https://reviews.apache.org/r/71121/
---
 src/tests/containerizer/isolator_tests.cpp | 49 ++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/src/tests/containerizer/isolator_tests.cpp 
b/src/tests/containerizer/isolator_tests.cpp
index 3d79f23..0cbe0fe 100644
--- a/src/tests/containerizer/isolator_tests.cpp
+++ b/src/tests/containerizer/isolator_tests.cpp
@@ -1072,6 +1072,55 @@ TEST_F(NamespacesIsolatorTest, 
ROOT_DisallowShareAgentIPCNamespace)
 
   AWAIT_FAILED(launch);
 }
+
+
+// This test verifies that we do not support specifying container's
+// /dev/shm size when its IPC mode is not `PRIVATE`.
+TEST_F(NamespacesIsolatorTest, ROOT_NonePrivateIPCModeWithShmSize)
+{
+  Try<Owned<MesosContainerizer>> containerizer =
+    createContainerizer("filesystem/linux,namespaces/ipc");
+
+  ASSERT_SOME(containerizer);
+
+  // Launch a container with a specified /dev/shm size but without
+  // specifying IPC mode.
+  ContainerID containerId1;
+  containerId1.set_value(id::UUID::random().toString());
+
+  mesos::slave::ContainerConfig containerConfig = createContainerConfig(
+      None(),
+      createExecutorInfo("executor", "sleep 1000"),
+      directory);
+
+  ContainerInfo* container = containerConfig.mutable_container_info();
+  container->set_type(ContainerInfo::MESOS);
+  container->mutable_linux_info()->set_shm_size(128);
+
+  process::Future<Containerizer::LaunchResult> launch =
+    containerizer.get()->launch(
+        containerId1,
+        containerConfig,
+        std::map<string, string>(),
+        None());
+
+  AWAIT_FAILED(launch);
+
+  // Launch another container with a specified /dev/shm size and `SHARE_PARENT`
+  // IPC mode.
+  ContainerID containerId2;
+  containerId2.set_value(id::UUID::random().toString());
+
+  container->mutable_linux_info()->set_ipc_mode(LinuxInfo::SHARE_PARENT);
+
+  launch = containerizer.get()->launch(
+      containerId2,
+      containerConfig,
+      std::map<string, string>(),
+      None());
+
+  AWAIT_FAILED(launch);
+}
 #endif // __linux__
 
 } // namespace tests {

Reply via email to