Repository: mesos
Updated Branches:
  refs/heads/master b0beb5b4a -> 299b082f9


Fixed const'ness of flags::load.

Replacing argument arrays with static initializers in tests.
Making the argument 'argv' const in load method to reflect the
semantics.

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


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

Branch: refs/heads/master
Commit: 299b082f9d04060bdd93e2c179c046764dc857a1
Parents: b0beb5b
Author: Jojy Varghese <[email protected]>
Authored: Sat Jun 27 01:56:42 2015 +0200
Committer: Till Toenshoff <[email protected]>
Committed: Sat Jun 27 02:39:13 2015 +0200

----------------------------------------------------------------------
 .../stout/include/stout/flags/flags.hpp         |   4 +-
 .../3rdparty/stout/include/stout/utils.hpp      |   7 +
 .../3rdparty/stout/tests/flags_tests.cpp        | 196 +++++++++----------
 3 files changed, 105 insertions(+), 102 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/299b082f/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 3bb114b..ae54566 100644
--- a/3rdparty/libprocess/3rdparty/stout/include/stout/flags/flags.hpp
+++ b/3rdparty/libprocess/3rdparty/stout/include/stout/flags/flags.hpp
@@ -59,7 +59,7 @@ public:
   virtual Try<Nothing> load(
       const Option<std::string>& prefix,
       int argc,
-      char** argv,
+      const char* const* argv,
       bool unknowns = false,
       bool duplicates = false);
 
@@ -551,7 +551,7 @@ inline Try<Nothing> FlagsBase::load(const std::string& 
prefix)
 inline Try<Nothing> FlagsBase::load(
     const Option<std::string>& prefix,
     int argc,
-    char** argv,
+    const char* const *argv,
     bool unknowns,
     bool duplicates)
 {

http://git-wip-us.apache.org/repos/asf/mesos/blob/299b082f/3rdparty/libprocess/3rdparty/stout/include/stout/utils.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/3rdparty/stout/include/stout/utils.hpp 
b/3rdparty/libprocess/3rdparty/stout/include/stout/utils.hpp
index dfcd62a..faca859 100644
--- a/3rdparty/libprocess/3rdparty/stout/include/stout/utils.hpp
+++ b/3rdparty/libprocess/3rdparty/stout/include/stout/utils.hpp
@@ -21,6 +21,13 @@ namespace utils {
 template <typename T>
 T copy(const T& t) { return t; }
 
+
+template <typename T, size_t N>
+static constexpr size_t arraySize(T(&)[N])
+{
+  return N;
+}
+
 } // namespace utils {
 
 #endif // __STOUT_UTILS_HPP__

http://git-wip-us.apache.org/repos/asf/mesos/blob/299b082f/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 c2f6c22..2a6f67b 100644
--- a/3rdparty/libprocess/3rdparty/stout/tests/flags_tests.cpp
+++ b/3rdparty/libprocess/3rdparty/stout/tests/flags_tests.cpp
@@ -14,6 +14,7 @@
 #include <stout/os.hpp>
 #include <stout/path.hpp>
 #include <stout/some.hpp>
+#include <stout/utils.hpp>
 
 #include <stout/tests/utils.hpp>
 
@@ -24,6 +25,7 @@ using std::endl;
 using std::string;
 using std::map;
 
+using utils::arraySize;
 
 // Just used to test that the default implementation
 // of --help and 'usage()' works as intended.
@@ -71,13 +73,13 @@ TEST(FlagsTest, Load)
 {
   TestFlags flags;
 
-  map<string, Option<string> > values;
-
-  values["name1"] = Some("billy joel");
-  values["name2"] = Some("43");
-  values["name3"] = Some("false");
-  values["no-name4"] = None();
-  values["name5"] = None();
+  const map<string, Option<string> > values = {
+    {"name1", Some("billy joel")},
+    {"name2", Some("43")},
+    {"name3", Some("false")},
+    {"no-name4", None()},
+    {"name5", None()}
+  };
 
   flags.load(values);
 
@@ -114,10 +116,10 @@ TEST(FlagsTest, Add)
             "name8",
             "Also set name8");
 
-  map<string, Option<string> > values;
-
-  values["name6"] = Some("ben folds");
-  values["no-name7"] = None();
+  const map<string, Option<string> > values = {
+    {"name6", Some("ben folds")},
+    {"no-name7", None()}
+  };
 
   flags.load(values);
 
@@ -134,13 +136,13 @@ TEST(FlagsTest, Flags)
 {
   TestFlags flags;
 
-  map<string, Option<string> > values;
-
-  values["name1"] = Some("billy joel");
-  values["name2"] = Some("43");
-  values["name3"] = Some("false");
-  values["no-name4"] = None();
-  values["name5"] = None();
+  const map<string, Option<string> > values = {
+    {"name1", Some("billy joel")},
+    {"name2", Some("43")},
+    {"name3", Some("false")},
+    {"no-name4", None()},
+    {"name5", None()}
+  };
 
   flags.load(values);
 
@@ -187,17 +189,16 @@ TEST(FlagsTest, LoadFromCommandLine)
 {
   TestFlags flags;
 
-  int argc = 6;
-  char* argv[argc];
-
-  argv[0] = (char*) "/path/to/program";
-  argv[1] = (char*) "--name1=billy joel";
-  argv[2] = (char*) "--name2=43";
-  argv[3] = (char*) "--no-name3";
-  argv[4] = (char*) "--no-name4";
-  argv[5] = (char*) "--name5";
+  const char* argv[] = {
+    "/path/to/program",
+    "--name1=billy joel",
+    "--name2=43",
+    "--no-name3",
+    "--no-name4",
+    "--name5"
+  };
 
-  Try<Nothing> load = flags.load("FLAGSTEST_", argc, argv);
+  Try<Nothing> load = flags.load("FLAGSTEST_", arraySize(argv), argv);
   EXPECT_SOME(load);
 
   EXPECT_EQ("billy joel", flags.name1);
@@ -214,22 +215,21 @@ TEST(FlagsTest, LoadFromCommandLineWithNonFlags)
 {
   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*) "--no-name4";
-  argv[8] = (char*) "--name5";
-  argv[9] = (char*) "the";
-  argv[10] = (char*) "end";
+  const char* argv[] = {
+    "/path/to/program",
+    "more",
+    "--name1=billy joel",
+    "stuff",
+    "at",
+    "--name2=43",
+    "--no-name3",
+    "--no-name4",
+    "--name5",
+    "the",
+    "end"
+  };
 
-  Try<Nothing> load = flags.load("FLAGSTEST_", argc, argv);
+  Try<Nothing> load = flags.load("FLAGSTEST_", arraySize(argv), argv);
   EXPECT_SOME(load);
 
   EXPECT_EQ("billy joel", flags.name1);
@@ -246,22 +246,21 @@ 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";
+  const char* argv[] = {
+    "/path/to/program",
+    "more",
+    "--name1=billy joel",
+    "stuff",
+    "at",
+    "--name2=43",
+    "--no-name3",
+    "--",
+    "--no-name4",
+    "--name5",
+    "the"
+  };
 
-  Try<Nothing> load = flags.load("FLAGSTEST_", argc, argv);
+  Try<Nothing> load = flags.load("FLAGSTEST_", arraySize(argv), argv);
   EXPECT_SOME(load);
 
   EXPECT_EQ("billy joel", flags.name1);
@@ -276,20 +275,20 @@ TEST(FlagsTest, LoadFromCommandLineAndUpdateArgcArgv)
 {
   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";
+  char* argv[] = {
+    (char*)"/path/to/program",
+    (char*)"more",
+    (char*)"--name1=billy joel",
+    (char*)"stuff",
+    (char*)"at",
+    (char*)"--name2=43",
+    (char*)"--no-name3",
+    (char*)"--",
+    (char*)"--no-name4",
+    (char*)"--name5",
+    (char*)"the"
+  };
+  int argc = arraySize(argv);
 
   // Need a temporary since some compilers want to treat the type of
   // 'argv' as 'char *(*)[argc]' since the size of the array is known.
@@ -339,11 +338,11 @@ TEST(FlagsTest, Stringification)
             "name8",
             "Optional name8");
 
-  map<string, Option<string> > values;
-
-  values["name2"] = Some("43");
-  values["no-name4"] = None();
-  values["name5"] = None();
+  const map<string, Option<string> > values = {
+    {"name2", Some("43")},
+    {"no-name4", None()},
+    {"name5", None()}
+  };
 
   flags.load(values);
 
@@ -382,13 +381,12 @@ TEST(FlagsTest, DuplicatesFromEnvironment)
 
   os::setenv("FLAGSTEST_name1", "ben folds");
 
-  int argc = 2;
-  char* argv[argc];
-
-  argv[0] = (char*) "/path/to/program";
-  argv[1] = (char*) "--name1=billy joel";
+  const char* argv[] = {
+    "/path/to/program",
+    "--name1=billy joel"
+  };
 
-  Try<Nothing> load = flags.load("FLAGSTEST_", argc, argv);
+  Try<Nothing> load = flags.load("FLAGSTEST_", arraySize(argv), argv);
   EXPECT_ERROR(load);
 
   EXPECT_EQ("Duplicate flag 'name1' on command line", load.error());
@@ -401,14 +399,13 @@ TEST(FlagsTest, DuplicatesFromCommandLine)
 {
   TestFlags flags;
 
-  int argc = 3;
-  char* argv[argc];
-
-  argv[0] = (char*) "/path/to/program";
-  argv[1] = (char*) "--name1=billy joel";
-  argv[2] = (char*) "--name1=ben folds";
+  const char* argv[] = {
+    "/path/to/program",
+    "--name1=billy joel",
+    "--name1=ben folds"
+  };
 
-  Try<Nothing> load = flags.load("FLAGSTEST_", argc, argv);
+  Try<Nothing> load = flags.load("FLAGSTEST_", arraySize(argv), argv);
   EXPECT_ERROR(load);
 
   EXPECT_EQ("Duplicate flag 'name1' on command line", load.error());
@@ -511,13 +508,12 @@ TEST(FlagsTest, Validate)
 
   ValidatingTestFlags flags;
 
-  int argc = 2;
-  char* argv[argc];
-
-  argv[0] = (char*) "/path/to/program";
-  argv[1] = (char*) "--duration=2hrs";
+  const char* argv[] = {
+    "/path/to/program",
+    "--duration=2hrs"
+  };
 
-  Try<Nothing> load = flags.load("FLAGSTEST_", argc, argv);
+  Try<Nothing> load = flags.load("FLAGSTEST_", arraySize(argv), argv);
   EXPECT_ERROR(load);
 
   EXPECT_EQ("Expected --duration to be less than 1 hour", load.error());
@@ -615,10 +611,10 @@ TEST(FlagsTest, Duration)
             "name7",
             "Also some amount of time");
 
-  map<string, Option<string> > values;
-
-  values["name6"] = Some("2mins");
-  values["name7"] = Some("3hrs");
+  const map<string, Option<string> > values = {
+    {"name6", Some("2mins")},
+    {"name7", Some("3hrs")}
+  };
 
   ASSERT_SOME(flags.load(values));
 

Reply via email to