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");