You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by tn...@apache.org on 2015/12/21 10:43:12 UTC

[2/2] mesos git commit: Added test case for Docker Image Create.

Added test case for Docker Image Create.

Review: https://reviews.apache.org/r/41589/


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/3c95c9b9
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/3c95c9b9
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/3c95c9b9

Branch: refs/heads/master
Commit: 3c95c9b9cffd2301d570e87ea7483b0c577a4007
Parents: b0e7cb1
Author: Gilbert Song <so...@gmail.com>
Authored: Mon Dec 21 01:27:19 2015 -0800
Committer: Timothy Chen <tn...@apache.org>
Committed: Mon Dec 21 01:27:19 2015 -0800

----------------------------------------------------------------------
 src/tests/containerizer/docker_tests.cpp | 112 ++++++++++++++++++++++++++
 1 file changed, 112 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/3c95c9b9/src/tests/containerizer/docker_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/docker_tests.cpp b/src/tests/containerizer/docker_tests.cpp
index d9e1345..83eceac 100644
--- a/src/tests/containerizer/docker_tests.cpp
+++ b/src/tests/containerizer/docker_tests.cpp
@@ -455,6 +455,118 @@ TEST_F(DockerTest, ROOT_DOCKER_MountAbsolute)
 }
 
 
+class DockerImageTest : public MesosTest {};
+
+// This test verifies that docker image constructor is able to read
+// entrypoint and environment from a docker inspect JSON object.
+TEST_F(DockerImageTest, ParseInspectonImage)
+{
+  JSON::Value inspect = JSON::parse(
+    "{"
+    "    \"Id\": "
+    "\"0a8ee093d995e48aa8af626b8a4c48fe3949e474b0ccca9be9d5cf08abd9eda1\","
+    "    \"Parent\": "
+    "\"6fbfa9a156a7655f1bbc2b3ca3624850d373fa403555ae42ed05fe5b478588fa\","
+    "    \"Comment\": \"\","
+    "    \"Created\": \"2015-10-01T13:24:42.549270714Z\","
+    "    \"Container\": "
+    "\"d87a718e07e151623b0310d82b27d2f0acdb1376755ce4aea7a26313cdab379a\","
+    "    \"ContainerConfig\": {"
+    "        \"Hostname\": \"7b840bf4fc5e\","
+    "        \"Domainname\": \"\","
+    "        \"User\": \"\","
+    "        \"AttachStdin\": false,"
+    "        \"AttachStdout\": false,"
+    "        \"AttachStderr\": false,"
+    "        \"PortSpecs\": null,"
+    "        \"ExposedPorts\": null,"
+    "        \"Tty\": false,"
+    "        \"OpenStdin\": false,"
+    "        \"StdinOnce\": false,"
+    "        \"Env\": ["
+    "            \"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:"
+    "/sbin:/bin\","
+    "            \"LANG=C.UTF-8\","
+    "            \"JAVA_VERSION=8u66\","
+    "            \"JAVA_DEBIAN_VERSION=8u66-b01-1~bpo8+1\","
+    "            \"CA_CERTIFICATES_JAVA_VERSION=20140324\""
+    "        ],"
+    "        \"Cmd\": ["
+    "            \"/bin/sh\","
+    "            \"-c\","
+    "            \"#(nop) ENTRYPOINT \\u0026{[\\\"./bin/start\\\"]}\""
+    "        ],"
+    "        \"Image\": "
+    "\"6fbfa9a156a7655f1bbc2b3ca3624850d373fa403555ae42ed05fe5b478588fa\","
+    "        \"Volumes\": null,"
+    "        \"VolumeDriver\": \"\","
+    "        \"WorkingDir\": \"/marathon\","
+    "        \"Entrypoint\": ["
+    "            \"./bin/start\""
+    "        ],"
+    "        \"NetworkDisabled\": false,"
+    "        \"MacAddress\": \"\","
+    "        \"OnBuild\": [],"
+    "        \"Labels\": {}"
+    "    },"
+    "    \"DockerVersion\": \"1.8.3-rc1\","
+    "    \"Author\": \"\","
+    "    \"Config\": {"
+    "        \"Hostname\": \"7b840bf4fc5e\","
+    "        \"Domainname\": \"\","
+    "        \"User\": \"\","
+    "        \"AttachStdin\": false,"
+    "        \"AttachStdout\": false,"
+    "        \"AttachStderr\": false,"
+    "        \"PortSpecs\": null,"
+    "        \"ExposedPorts\": null,"
+    "        \"Tty\": false,"
+    "        \"OpenStdin\": false,"
+    "        \"StdinOnce\": false,"
+    "        \"Env\": ["
+    "            \"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:"
+    "/sbin:/bin\","
+    "            \"LANG=C.UTF-8\","
+    "            \"JAVA_VERSION=8u66\","
+    "            \"JAVA_DEBIAN_VERSION=8u66-b01-1~bpo8+1\","
+    "            \"CA_CERTIFICATES_JAVA_VERSION=20140324\""
+    "        ],"
+    "        \"Cmd\": null,"
+    "        \"Image\": "
+    "\"6fbfa9a156a7655f1bbc2b3ca3624850d373fa403555ae42ed05fe5b478588fa\","
+    "        \"Volumes\": null,"
+    "        \"VolumeDriver\": \"\","
+    "        \"WorkingDir\": \"/marathon\","
+    "        \"Entrypoint\": ["
+    "            \"./bin/start\""
+    "        ],"
+    "        \"NetworkDisabled\": false,"
+    "        \"MacAddress\": \"\","
+    "        \"OnBuild\": [],"
+    "        \"Labels\": {}"
+    "    },"
+    "    \"Architecture\": \"amd64\","
+    "    \"Os\": \"linux\","
+    "    \"Size\": 0,"
+    "    \"VirtualSize\": 977664708"
+    "}").get();
+
+  Try<JSON::Object> json = JSON::parse<JSON::Object>(stringify(inspect));
+  ASSERT_SOME(json);
+
+  Try<Docker::Image> image = Docker::Image::create(json.get());
+  ASSERT_SOME(image);
+
+  EXPECT_EQ("./bin/start", image.get().entrypoint.get().front());
+  EXPECT_EQ("C.UTF-8", image.get().environment.get().at("LANG"));
+  EXPECT_EQ("8u66", image.get().environment.get().at("JAVA_VERSION"));
+  EXPECT_EQ("8u66-b01-1~bpo8+1",
+            image.get().environment.get().at("JAVA_DEBIAN_VERSION"));
+  EXPECT_EQ("20140324",
+            image.get().environment.get().at("CA_CERTIFICATES_JAVA_VERSION"));
+}
+
+
 } // namespace tests {
 } // namespace internal {
 } // namespace mesos {