You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2014/05/14 00:11:15 UTC

[2/2] git commit: Introduced '--' to flags parsing.

Introduced '--' to flags parsing.

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


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

Branch: refs/heads/master
Commit: f797836cf4c5214412c81c11692b039d2b258906
Parents: aa56a2b
Author: Benjamin Hindman <be...@gmail.com>
Authored: Tue May 13 09:34:14 2014 -0700
Committer: Benjamin Hindman <be...@gmail.com>
Committed: Tue May 13 15:10:30 2014 -0700

----------------------------------------------------------------------
 .../stout/include/stout/flags/flags.hpp         |  6 ++++
 .../3rdparty/stout/tests/flags_tests.cpp        | 30 ++++++++++++++++++++
 2 files changed, 36 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/f797836c/3rdparty/libprocess/3rdparty/stout/include/stout/flags/flags.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/3rdparty/stout/include/stout/flags/flags.hpp b/3rdparty/libprocess/3rdparty/stout/include/stout/flags/flags.hpp
index 70bd59c..e8415a9 100644
--- a/3rdparty/libprocess/3rdparty/stout/include/stout/flags/flags.hpp
+++ b/3rdparty/libprocess/3rdparty/stout/include/stout/flags/flags.hpp
@@ -336,6 +336,12 @@ inline Try<Nothing> FlagsBase::load(
   for (int i = 1; i < argc; i++) {
     const std::string arg(strings::trim(argv[i]));
 
+    // Stop parsing flags after '--' is encountered.
+    if (arg == "--") {
+      break;
+    }
+
+    // Skip anything that doesn't look like a flag.
     if (arg.find("--") != 0) {
       continue;
     }

http://git-wip-us.apache.org/repos/asf/mesos/blob/f797836c/3rdparty/libprocess/3rdparty/stout/tests/flags_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/3rdparty/stout/tests/flags_tests.cpp b/3rdparty/libprocess/3rdparty/stout/tests/flags_tests.cpp
index 9d48c16..146b277 100644
--- a/3rdparty/libprocess/3rdparty/stout/tests/flags_tests.cpp
+++ b/3rdparty/libprocess/3rdparty/stout/tests/flags_tests.cpp
@@ -228,6 +228,36 @@ TEST(FlagsTest, LoadFromCommandLineWithNonFlags)
 }
 
 
+TEST(FlagsTest, LoadFromCommandLineWithDashDash)
+{
+  TestFlags flags;
+
+  int argc = 11;
+  char* argv[argc];
+
+  argv[0] = (char*) "/path/to/program";
+  argv[1] = (char*) "more";
+  argv[2] = (char*) "--name1=billy joel";
+  argv[3] = (char*) "stuff";
+  argv[4] = (char*) "at";
+  argv[5] = (char*) "--name2=43";
+  argv[6] = (char*) "--no-name3";
+  argv[7] = (char*) "--";
+  argv[8] = (char*) "--no-name4";
+  argv[9] = (char*) "--name5";
+  argv[10] = (char*) "the";
+
+  Try<Nothing> load = flags.load("FLAGSTEST_", argc, argv);
+  EXPECT_SOME(load);
+
+  EXPECT_EQ("billy joel", flags.name1);
+  EXPECT_EQ(43, flags.name2);
+  EXPECT_FALSE(flags.name3);
+  ASSERT_NONE(flags.name4);
+  ASSERT_NONE(flags.name5);
+}
+
+
 TEST(FlagsTest, Stringification)
 {
   TestFlags flags;