You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2015/12/18 23:40:23 UTC
[9/9] mesos git commit: Added test case for docker v1 manifest
serialization.
Added test case for docker v1 manifest serialization.
Review: https://reviews.apache.org/r/41490/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/208d7031
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/208d7031
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/208d7031
Branch: refs/heads/master
Commit: 208d7031be7faf450ffa98dab05c8d7efabd95ef
Parents: a154120
Author: Gilbert Song <so...@gmail.com>
Authored: Fri Dec 18 14:13:50 2015 -0800
Committer: Jie Yu <yu...@gmail.com>
Committed: Fri Dec 18 14:30:00 2015 -0800
----------------------------------------------------------------------
.../containerizer/provisioner_docker_tests.cpp | 128 +++++++++++++++++++
1 file changed, 128 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/208d7031/src/tests/containerizer/provisioner_docker_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/provisioner_docker_tests.cpp b/src/tests/containerizer/provisioner_docker_tests.cpp
index 8a83df5..7c1197e 100644
--- a/src/tests/containerizer/provisioner_docker_tests.cpp
+++ b/src/tests/containerizer/provisioner_docker_tests.cpp
@@ -300,6 +300,134 @@ TEST_F(RegistryTokenTest, NotBeforeInFuture)
class DockerSpecTest : public ::testing::Test {};
+
+TEST_F(DockerSpecTest, SerializeV1DockerManifest)
+{
+ JSON::Value manifestJson = JSON::parse(
+ "{"
+ " \"container\": "
+ "\"7f652467f9e6d1b3bf51172868b9b0c2fa1c711b112f4e987029b1624dd6295f\","
+ " \"parent\": "
+ "\"cfa753dfea5e68a24366dfba16e6edf573daa447abf65bc11619c1a98a3aff54\","
+ " \"created\": \"2015-09-21T20:15:47.866196515Z\","
+ " \"config\": {"
+ " \"Hostname\": \"5f8e0e129ff1\","
+ " \"Entrypoint\": null,"
+ " \"Env\": null,"
+ " \"OnBuild\": null,"
+ " \"OpenStdin\": false,"
+ " \"MacAddress\": \"\","
+ " \"User\": \"\","
+ " \"VolumeDriver\": \"\","
+ " \"AttachStderr\": false,"
+ " \"AttachStdout\": false,"
+ " \"PublishService\": \"\","
+ " \"NetworkDisabled\": false,"
+ " \"StdinOnce\": false,"
+ " \"Cmd\": ["
+ " \"sh\""
+ " ],"
+ " \"WorkingDir\": \"\","
+ " \"AttachStdin\": false,"
+ " \"Volumes\": null,"
+ " \"Tty\": false,"
+ " \"Domainname\": \"\","
+ " \"Image\": "
+ "\"cfa753dfea5e68a24366dfba16e6edf573daa447abf65bc11619c1a98a3aff54\","
+ " \"Labels\": null,"
+ " \"ExposedPorts\": null"
+ " },"
+ " \"container_config\": {"
+ " \"Hostname\": \"5f8e0e129ff1\","
+ " \"Entrypoint\": ["
+ " \"./bin/start\""
+ " ],"
+ " \"Env\": ["
+ " \"LANG=C.UTF-8\","
+ " \"JAVA_VERSION=8u66\","
+ " \"JAVA_DEBIAN_VERSION=8u66-b01-1~bpo8+1\","
+ " \"CA_CERTIFICATES_JAVA_VERSION=20140324\""
+ " ],"
+ " \"OnBuild\": null,"
+ " \"OpenStdin\": false,"
+ " \"MacAddress\": \"\","
+ " \"User\": \"\","
+ " \"VolumeDriver\": \"\","
+ " \"AttachStderr\": false,"
+ " \"AttachStdout\": false,"
+ " \"PublishService\": \"\","
+ " \"NetworkDisabled\": false,"
+ " \"StdinOnce\": false,"
+ " \"Cmd\": ["
+ " \"/bin/sh\","
+ " \"-c\","
+ " \"#(nop) CMD [\\\"sh\\\"]\""
+ " ],"
+ " \"WorkingDir\": \"/marathon\","
+ " \"AttachStdin\": false,"
+ " \"Volumes\": null,"
+ " \"Tty\": false,"
+ " \"Domainname\": \"\","
+ " \"Image\": "
+ "\"cfa753dfea5e68a24366dfba16e6edf573daa447abf65bc11619c1a98a3aff54\","
+ " \"Labels\": null,"
+ " \"ExposedPorts\": null"
+ " },"
+ " \"architecture\": \"amd64\","
+ " \"docker_version\": \"1.8.2\","
+ " \"os\": \"linux\","
+ " \"id\": "
+ "\"d7057cb020844f245031d27b76cb18af05db1cc3a96a29fa7777af75f5ac91a3\","
+ " \"Size\": 0"
+ "}").get();
+
+ Try<JSON::Object> json = JSON::parse<JSON::Object>(stringify(manifestJson));
+ ASSERT_SOME(json);
+
+ Try<slave::docker::v1::ImageManifest> manifest =
+ spec::v1::parse(json.get());
+
+ ASSERT_SOME(manifest);
+
+ EXPECT_EQ(
+ "7f652467f9e6d1b3bf51172868b9b0c2fa1c711b112f4e987029b1624dd6295f",
+ manifest.get().container());
+ EXPECT_EQ(
+ "cfa753dfea5e68a24366dfba16e6edf573daa447abf65bc11619c1a98a3aff54",
+ manifest.get().parent());
+
+ EXPECT_EQ(
+ "./bin/start",
+ manifest.get().container_config().entrypoint(0));
+
+ EXPECT_EQ(
+ "LANG=C.UTF-8",
+ manifest.get().container_config().env(0));
+ EXPECT_EQ(
+ "JAVA_VERSION=8u66",
+ manifest.get().container_config().env(1));
+ EXPECT_EQ(
+ "JAVA_DEBIAN_VERSION=8u66-b01-1~bpo8+1",
+ manifest.get().container_config().env(2));
+ EXPECT_EQ(
+ "CA_CERTIFICATES_JAVA_VERSION=20140324",
+ manifest.get().container_config().env(3));
+
+ EXPECT_EQ("/bin/sh", manifest.get().container_config().cmd(0));
+ EXPECT_EQ("-c", manifest.get().container_config().cmd(1));
+ EXPECT_EQ(
+ "#(nop) CMD [\"sh\"]",
+ manifest.get().container_config().cmd(2));
+
+ EXPECT_EQ("sh", manifest.get().config().cmd(0));
+
+ EXPECT_EQ("1.8.2", manifest.get().docker_version());
+ EXPECT_EQ("amd64", manifest.get().architecture());
+ EXPECT_EQ("linux", manifest.get().os());
+ EXPECT_EQ(0u, manifest.get().size());
+}
+
+
TEST_F(DockerSpecTest, SerializeV2DockerManifest)
{
JSON::Value manifestJson = JSON::parse(