You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by vi...@apache.org on 2016/05/12 19:15:08 UTC
[2/6] mesos git commit: Added tests for flag aliases.
Added tests for flag aliases.
Review: https://reviews.apache.org/r/46622
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/6d8638b0
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/6d8638b0
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/6d8638b0
Branch: refs/heads/master
Commit: 6d8638b071f0fb1426810dff99093859c54c576b
Parents: 01d4cae
Author: Vinod Kone <vi...@gmail.com>
Authored: Sun Apr 24 15:12:55 2016 -0700
Committer: Vinod Kone <vi...@gmail.com>
Committed: Thu May 12 12:14:54 2016 -0700
----------------------------------------------------------------------
3rdparty/stout/tests/flags_tests.cpp | 147 ++++++++++++++++++++++++++++++
1 file changed, 147 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/6d8638b0/3rdparty/stout/tests/flags_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/tests/flags_tests.cpp b/3rdparty/stout/tests/flags_tests.cpp
index 66e16ab..a2880a0 100644
--- a/3rdparty/stout/tests/flags_tests.cpp
+++ b/3rdparty/stout/tests/flags_tests.cpp
@@ -156,6 +156,51 @@ TEST(FlagsTest, Add)
}
+TEST(FlagsTest, Alias)
+{
+ TestFlags flags;
+
+ Option<string> name6;
+
+ flags.add(&name6,
+ "name6",
+ Some("alias6"),
+ "Also set name6");
+
+ bool name7;
+
+ flags.add(&name7,
+ "name7",
+ Some("alias7"),
+ "Also set name7",
+ true);
+
+ string name8;
+
+ flags.add(&name8,
+ "name8",
+ Some("alias8"),
+ "Also set name8",
+ "value8");
+
+ // Load with alias names.
+ const map<string, Option<string> > values = {
+ {"alias6", Some("foo")},
+ {"no-alias7", None()},
+ {"alias8", Some("bar")}
+ };
+
+ flags.load(values);
+
+ ASSERT_SOME(name6);
+ EXPECT_EQ("foo", name6.get());
+
+ EXPECT_FALSE(name7);
+
+ EXPECT_EQ("bar", name8);
+}
+
+
TEST(FlagsTest, Flags)
{
TestFlags flags;
@@ -399,6 +444,42 @@ TEST(FlagsTest, Stringification)
}
+TEST(FlagsTest, EffectiveName)
+{
+ TestFlags flags;
+
+ Option<string> name6;
+
+ flags.add(&name6,
+ "name6",
+ Some("alias6"),
+ "Also set name6");
+
+ string name7;
+
+ flags.add(&name7,
+ "name7",
+ Some("alias7"),
+ "Also set name7",
+ "value7");
+
+ // Only load "name6" flag explicitly.
+ const map<string, Option<string> > values = {
+ {"alias6", Some("value6")}
+ };
+
+ flags.load(values);
+
+ foreachvalue (const Flag& flag, flags) {
+ if (flag.name == "name6") {
+ EXPECT_EQ("alias6", flag.effective_name().value);
+ } else if (flag.name == "name7") {
+ EXPECT_EQ("name7", flag.effective_name().value);
+ }
+ }
+}
+
+
TEST(FlagsTest, DuplicatesFromEnvironment)
{
TestFlags flags;
@@ -437,6 +518,29 @@ TEST(FlagsTest, DuplicatesFromCommandLine)
}
+TEST(FlagsTest, AliasDuplicateFromCommandLine)
+{
+ TestFlags flags;
+
+ Option<string> name6;
+
+ flags.add(&name6,
+ "name6",
+ Some("alias6"),
+ "Also set name6");
+
+ const char* argv[] = {
+ "/path/to/program",
+ "--name6=billy joel",
+ "--alias6=ben folds"
+ };
+
+ // Loading the same flag with the name and alias should be an error.
+ Try<Nothing> load = flags.load("FLAGSTEST_", arraySize(argv), argv);
+ EXPECT_ERROR(load);
+}
+
+
TEST(FlagsTest, Errors)
{
TestFlags flags;
@@ -557,6 +661,49 @@ TEST(FlagsTest, Validate)
}
+TEST(FlagsTest, Usage)
+{
+ TestFlags flags;
+
+ Option<string> name6;
+
+ flags.add(&name6,
+ "z6",
+ Some("a6"),
+ "Also set name6");
+
+ bool name7;
+
+ flags.add(&name7,
+ "z7",
+ Some("a7"),
+ "Also set name7",
+ true);
+
+ string name8;
+
+ flags.add(&name8,
+ "z8",
+ Some("a8"),
+ "Also set name8",
+ "value8");
+
+ EXPECT_EQ(
+ "Usage: [options]\n"
+ "\n"
+ " --[no-]help Prints this help message (default: false)\n"
+ " --name1=VALUE Set name1 (default: ben folds)\n"
+ " --name2=VALUE Set name2 (default: 42)\n"
+ " --[no-]name3 Set name3 (default: false)\n"
+ " --[no-]name4 Set name4\n"
+ " --[no-]name5 Set name5\n"
+ " --z6=VALUE, --a6=VALUE Also set name6\n"
+ " --[no-]z7, --[no-]a7 Also set name7 (default: true)\n"
+ " --z8=VALUE, --a8=VALUE Also set name8 (default: value8)\n",
+ flags.usage());
+}
+
+
TEST(FlagsTest, UsageMessage)
{
TestFlags flags;