You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2016/12/03 01:58:28 UTC
mesos git commit: Added a test for FrameworkInfo role(s) validation.
Repository: mesos
Updated Branches:
refs/heads/master c18f4a93a -> 50da24ed9
Added a test for FrameworkInfo role(s) validation.
Review: https://reviews.apache.org/r/54300/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/50da24ed
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/50da24ed
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/50da24ed
Branch: refs/heads/master
Commit: 50da24ed9c338bba3c13fd87b642fb8736aec199
Parents: c18f4a9
Author: Jay Guo <gu...@cn.ibm.com>
Authored: Fri Dec 2 17:50:44 2016 -0800
Committer: Benjamin Mahler <bm...@apache.org>
Committed: Fri Dec 2 17:58:16 2016 -0800
----------------------------------------------------------------------
src/tests/master_validation_tests.cpp | 99 ++++++++++++++++++++++++++++++
1 file changed, 99 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/50da24ed/src/tests/master_validation_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_validation_tests.cpp b/src/tests/master_validation_tests.cpp
index 5c44967..49ed6cc 100644
--- a/src/tests/master_validation_tests.cpp
+++ b/src/tests/master_validation_tests.cpp
@@ -2359,6 +2359,105 @@ TEST_F(TaskGroupValidationTest, TaskUsesDifferentExecutor)
driver.join();
}
+
+class FrameworkInfoValidationTest : public MesosTest {};
+
+
+// This tests the validateRoles function of FrameworkInfo.
+TEST_F(FrameworkInfoValidationTest, ValidateRoles)
+{
+ // Not MULTI_ROLE, no 'role' (default to "*"), no 'roles'.
+ {
+ FrameworkInfo frameworkInfo;
+ EXPECT_NONE(::framework::internal::validateRoles(frameworkInfo));
+ }
+
+ // Not MULTI_ROLE, no 'role' (default to "*"), has 'roles'.
+ {
+ FrameworkInfo frameworkInfo;
+ frameworkInfo.add_roles("bar");
+ frameworkInfo.add_roles("qux");
+ EXPECT_SOME(::framework::internal::validateRoles(frameworkInfo));
+ }
+
+ // Not MULTI_ROLE, has 'role', no 'roles'.
+ {
+ FrameworkInfo frameworkInfo;
+ frameworkInfo.set_role("foo");
+ EXPECT_NONE(::framework::internal::validateRoles(frameworkInfo));
+ }
+
+ // Not MULTI_ROLE, has 'role', has 'roles'.
+ {
+ FrameworkInfo frameworkInfo;
+ frameworkInfo.add_roles("bar");
+ frameworkInfo.add_roles("qux");
+ frameworkInfo.set_role("foo");
+ EXPECT_SOME(::framework::internal::validateRoles(frameworkInfo));
+ }
+
+ // Is MULTI_ROLE, no 'role', no 'roles'.
+ {
+ FrameworkInfo frameworkInfo;
+ frameworkInfo.add_capabilities()->set_type(
+ FrameworkInfo::Capability::MULTI_ROLE);
+ EXPECT_NONE(::framework::internal::validateRoles(frameworkInfo));
+ }
+
+ // Is MULTI_ROLE, no 'role', has 'roles'.
+ {
+ FrameworkInfo frameworkInfo;
+ frameworkInfo.add_capabilities()->set_type(
+ FrameworkInfo::Capability::MULTI_ROLE);
+ frameworkInfo.add_roles("bar");
+ frameworkInfo.add_roles("qux");
+ EXPECT_NONE(::framework::internal::validateRoles(frameworkInfo));
+ }
+
+ // Is MULTI_ROLE, has 'role', no 'roles'.
+ {
+ FrameworkInfo frameworkInfo;
+ frameworkInfo.set_role("foo");
+ frameworkInfo.add_capabilities()->set_type(
+ FrameworkInfo::Capability::MULTI_ROLE);
+ // 'Role' is set, but MULTI_ROLE capability is also enabled.
+ EXPECT_SOME(::framework::internal::validateRoles(frameworkInfo));
+ }
+
+ // Is MULTI_ROLE, has 'role', has 'roles'.
+ {
+ FrameworkInfo frameworkInfo;
+ frameworkInfo.set_role("foo");
+ frameworkInfo.add_capabilities()->set_type(
+ FrameworkInfo::Capability::MULTI_ROLE);
+ frameworkInfo.add_roles("bar");
+ frameworkInfo.add_roles("qux");
+ // All 'role', 'roles' and MULTI_ROLE are set.
+ EXPECT_SOME(::framework::internal::validateRoles(frameworkInfo));
+ }
+
+ // Duplicate items in 'roles'.
+ {
+ FrameworkInfo frameworkInfo;
+ frameworkInfo.add_capabilities()->set_type(
+ FrameworkInfo::Capability::MULTI_ROLE);
+ frameworkInfo.add_roles("bar");
+ frameworkInfo.add_roles("qux");
+ frameworkInfo.add_roles("bar");
+ EXPECT_SOME(::framework::internal::validateRoles(frameworkInfo));
+ }
+
+ // Check invalid character in 'roles'.
+ {
+ FrameworkInfo frameworkInfo;
+ frameworkInfo.add_roles("bar");
+ frameworkInfo.add_roles("/x");
+ frameworkInfo.add_capabilities()->set_type(
+ FrameworkInfo::Capability::MULTI_ROLE);
+ EXPECT_SOME(::framework::internal::validateRoles(frameworkInfo));
+ }
+}
+
} // namespace tests {
} // namespace internal {
} // namespace mesos {