You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by jo...@apache.org on 2016/01/24 02:12:42 UTC

[06/11] mesos git commit: Multiple Disk: Added Resource arithmetic tests for type 'PATH'.

Multiple Disk: Added Resource arithmetic tests for type 'PATH'.

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


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

Branch: refs/heads/master
Commit: 7f4b379f9cd891c76d0c7eadbb1fe131624a85e2
Parents: 0aef525
Author: Joris Van Remoortere <jo...@gmail.com>
Authored: Mon Jan 18 20:47:23 2016 -0500
Committer: Joris Van Remoortere <jo...@gmail.com>
Committed: Sat Jan 23 17:11:42 2016 -0800

----------------------------------------------------------------------
 src/tests/mesos.hpp           |  7 ++-
 src/tests/resources_tests.cpp | 94 +++++++++++++++++++++++++++++++++++++-
 2 files changed, 98 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/7f4b379f/src/tests/mesos.hpp
----------------------------------------------------------------------
diff --git a/src/tests/mesos.hpp b/src/tests/mesos.hpp
index ce8bc9c..38d16f1 100644
--- a/src/tests/mesos.hpp
+++ b/src/tests/mesos.hpp
@@ -495,7 +495,8 @@ inline Resource::DiskInfo createDiskInfo(
     const Option<std::string>& persistenceId,
     const Option<std::string>& containerPath,
     const Option<Volume::Mode>& mode = None(),
-    const Option<std::string>& hostPath = None())
+    const Option<std::string>& hostPath = None(),
+    const Option<Resource::DiskInfo::Source>& source = None())
 {
   Resource::DiskInfo info;
 
@@ -515,6 +516,10 @@ inline Resource::DiskInfo createDiskInfo(
     info.mutable_volume()->CopyFrom(volume);
   }
 
+  if (source.isSome()) {
+    info.mutable_source()->CopyFrom(source.get());
+  }
+
   return info;
 }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/7f4b379f/src/tests/resources_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/resources_tests.cpp b/src/tests/resources_tests.cpp
index b42610f..270f424 100644
--- a/src/tests/resources_tests.cpp
+++ b/src/tests/resources_tests.cpp
@@ -1668,17 +1668,30 @@ TEST(ReservedResourcesTest, Contains)
 }
 
 
+// Helper for creating a disk source with type `PATH`.
+static Resource::DiskInfo::Source createDiskSourcePath(const string& root)
+{
+  Resource::DiskInfo::Source source;
+
+  source.set_type(Resource::DiskInfo::Source::PATH);
+  source.mutable_path()->set_root(root);
+
+  return source;
+}
+
+
 // Helper for creating a disk resource.
 static Resource createDiskResource(
     const string& value,
     const string& role,
     const Option<string>& persistenceID,
-    const Option<string>& containerPath)
+    const Option<string>& containerPath,
+    const Option<Resource::DiskInfo::Source>& source = None())
 {
   Resource resource = Resources::parse("disk", value, role).get();
 
   resource.mutable_disk()->CopyFrom(
-      createDiskInfo(persistenceID, containerPath));
+      createDiskInfo(persistenceID, containerPath, None(), None(), source));
 
   return resource;
 }
@@ -1700,6 +1713,14 @@ TEST(DiskResourcesTest, Validation)
 
   EXPECT_NONE(
       Resources::validate(createDiskResource("10", "*", None(), "path")));
+
+  EXPECT_NONE(
+      Resources::validate(createDiskResource(
+          "10",
+          "role",
+          "1",
+          "path",
+          createDiskSourcePath("mnt"))));
 }
 
 
@@ -1722,6 +1743,36 @@ TEST(DiskResourcesTest, Equals)
 }
 
 
+TEST(DiskResourcesTest, DiskSourceEquals)
+{
+  Resource::DiskInfo::Source s1 = createDiskSourcePath("mnt");
+  Resource::DiskInfo::Source s2 = createDiskSourcePath("mnt2");
+
+  Resources r1 = createDiskResource("10", "*", None(), None(), s1);
+  Resources r2 = createDiskResource("10", "*", None(), "path1", s1);
+  Resources r3 = createDiskResource("10", "*", None(), "path2", s1);
+  Resources r4 = createDiskResource("10", "role", None(), "path2", s1);
+  Resources r5 = createDiskResource("10", "role", "1", "path1", s1);
+  Resources r6 = createDiskResource("10", "role", "1", "path2", s1);
+  Resources r7 = createDiskResource("10", "role", "2", "path2", s1);
+
+  EXPECT_EQ(r1, r2);
+  EXPECT_EQ(r2, r3);
+  EXPECT_EQ(r5, r6);
+
+  EXPECT_NE(r6, r7);
+  EXPECT_NE(r4, r7);
+
+  Resources r8 = createDiskResource("10", "*", None(), None(), s2);
+  Resources r9 = createDiskResource("10", "*", None(), "path1", s2);
+
+  EXPECT_EQ(r8, r9);
+
+  EXPECT_NE(r8, r1);
+  EXPECT_NE(r9, r2);
+}
+
+
 TEST(DiskResourcesTest, Addition)
 {
   Resources r1 = createDiskResource("10", "role", None(), "path");
@@ -1743,6 +1794,25 @@ TEST(DiskResourcesTest, Addition)
 }
 
 
+TEST(DiskResourcesTest, DiskSourceAddition)
+{
+  Resource::DiskInfo::Source s1 = createDiskSourcePath("mnt");
+  Resource::DiskInfo::Source s2 = createDiskSourcePath("mnt2");
+
+  Resources r1 = createDiskResource("10", "role", None(), None(), s1);
+  Resources r2 = createDiskResource("20", "role", None(), None(), s2);
+  Resources r3 = createDiskResource("10", "role", None(), None(), s2);
+  Resources r4 = createDiskResource("20", "role", None(), None(), s1);
+
+  EXPECT_NE(r2, r1 + r1);
+  EXPECT_NE(r2, r1 + r3);
+
+  EXPECT_EQ(r4, r1 + r1);
+
+  EXPECT_TRUE(r4.contains(r1));
+}
+
+
 TEST(DiskResourcesTest, Subtraction)
 {
   Resources r1 = createDiskResource("10", "role", None(), "path");
@@ -1760,6 +1830,26 @@ TEST(DiskResourcesTest, Subtraction)
 }
 
 
+TEST(DiskResourcesTest, DiskSourceSubtraction)
+{
+  Resource::DiskInfo::Source s1 = createDiskSourcePath("mnt");
+  Resource::DiskInfo::Source s2 = createDiskSourcePath("mnt2");
+
+  Resources r1 = createDiskResource("10", "role", None(), None(), s1);
+  Resources r2 = createDiskResource("20", "role", None(), None(), s2);
+  Resources r3 = createDiskResource("10", "role", None(), None(), s2);
+  Resources r4 = createDiskResource("20", "role", None(), None(), s1);
+
+  EXPECT_TRUE((r1 - r1).empty());
+  EXPECT_TRUE((r4 - r1 - r1).empty());
+
+  EXPECT_FALSE((r3 - r1).empty());
+
+  EXPECT_EQ(r3, r3 - r1);
+  EXPECT_EQ(r1, r4 - r1);
+}
+
+
 TEST(DiskResourcesTest, Contains)
 {
   Resources r1 = createDiskResource("10", "role", "1", "path");