summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBilly Donahue <billy.donahue@mongodb.com>2020-06-03 13:51:01 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-06-11 01:11:50 +0000
commitc08a726e61157ae501c28cf7e222e16d49954fbf (patch)
tree50e0cdc58f93a42dcba3a594051f9def44c457b8 /src
parentf664f948ad0876f0537958cb5ab29a857f1e4924 (diff)
downloadmongo-c08a726e61157ae501c28cf7e222e16d49954fbf.tar.gz
SERVER-48367 Remove all _envp usage
Diffstat (limited to 'src')
-rw-r--r--src/mongo/base/initializer.cpp36
-rw-r--r--src/mongo/base/initializer.h16
-rw-r--r--src/mongo/base/initializer_context.h17
-rw-r--r--src/mongo/base/initializer_test.cpp24
-rw-r--r--src/mongo/client/sdam/json_test_arg_parser.cpp2
-rw-r--r--src/mongo/db/mongod.cpp11
-rw-r--r--src/mongo/db/mongod_main.cpp4
-rw-r--r--src/mongo/db/mongod_main.h2
-rw-r--r--src/mongo/db/server_options_test.cpp72
-rw-r--r--src/mongo/db/traffic_reader_main.cpp4
-rw-r--r--src/mongo/dbtests/dbtests.cpp15
-rw-r--r--src/mongo/embedded/embedded.cpp9
-rw-r--r--src/mongo/embedded/embedded_options_helpers.cpp11
-rw-r--r--src/mongo/embedded/embedded_options_parser_init.cpp3
-rw-r--r--src/mongo/embedded/mongo_embedded/mongo_embedded_test.cpp6
-rw-r--r--src/mongo/embedded/mongoc_embedded/mongoc_embedded_test.cpp6
-rw-r--r--src/mongo/embedded/stitch_support/stitch_support.cpp3
-rw-r--r--src/mongo/embedded/stitch_support/stitch_support_test.cpp3
-rw-r--r--src/mongo/idl/config_option_test.cpp10
-rw-r--r--src/mongo/s/mongos.cpp9
-rw-r--r--src/mongo/s/mongos_main.cpp4
-rw-r--r--src/mongo/s/mongos_main.h2
-rw-r--r--src/mongo/shell/mongo.cpp9
-rw-r--r--src/mongo/shell/mongo_main.cpp4
-rw-r--r--src/mongo/shell/mongo_main.h2
-rw-r--r--src/mongo/tools/bridge.cpp15
-rw-r--r--src/mongo/unittest/benchmark_main.cpp4
-rw-r--r--src/mongo/unittest/integration_test_main.cpp4
-rw-r--r--src/mongo/unittest/unittest_main.cpp10
-rw-r--r--src/mongo/util/net/ssl_options_test.cpp33
-rw-r--r--src/mongo/util/options_parser/options_parser.cpp9
-rw-r--r--src/mongo/util/options_parser/options_parser.h10
-rw-r--r--src/mongo/util/options_parser/options_parser_init.cpp2
-rw-r--r--src/mongo/util/options_parser/options_parser_test.cpp633
-rw-r--r--src/mongo/util/text.cpp64
-rw-r--r--src/mongo/util/text.h19
36 files changed, 407 insertions, 680 deletions
diff --git a/src/mongo/base/initializer.cpp b/src/mongo/base/initializer.cpp
index 6cff1611be0..89799707ce9 100644
--- a/src/mongo/base/initializer.cpp
+++ b/src/mongo/base/initializer.cpp
@@ -42,11 +42,7 @@
namespace mongo {
-Initializer::Initializer() {}
-Initializer::~Initializer() {}
-
-Status Initializer::executeInitializers(const InitializerContext::ArgumentVector& args,
- const InitializerContext::EnvironmentMap& env) {
+Status Initializer::executeInitializers(const std::vector<std::string>& args) {
auto oldState = std::exchange(_lifecycleState, State::kInitializing);
invariant(oldState == State::kUninitialized, "invalid initializer state transition");
@@ -57,7 +53,7 @@ Status Initializer::executeInitializers(const InitializerContext::ArgumentVector
}
_graph.freeze();
- InitializerContext context(args, env);
+ InitializerContext context(args);
for (const auto& nodeName : _sortedNodes) {
InitializerDependencyNode* node = _graph.getInitializerNode(nodeName);
@@ -119,36 +115,16 @@ Status Initializer::executeDeinitializers() {
return Status::OK();
}
-Status runGlobalInitializers(const InitializerContext::ArgumentVector& args,
- const InitializerContext::EnvironmentMap& env) {
- return getGlobalInitializer().executeInitializers(args, env);
-}
-
-Status runGlobalInitializers(int argc, const char* const* argv, const char* const* envp) {
- InitializerContext::ArgumentVector args(argc);
- std::copy(argv, argv + argc, args.begin());
-
- InitializerContext::EnvironmentMap env;
-
- if (envp) {
- for (; *envp; ++envp) {
- const char* firstEqualSign = strchr(*envp, '=');
- if (!firstEqualSign) {
- return Status(ErrorCodes::BadValue, "malformed environment block");
- }
- env[std::string(*envp, firstEqualSign)] = std::string(firstEqualSign + 1);
- }
- }
-
- return runGlobalInitializers(args, env);
+Status runGlobalInitializers(const std::vector<std::string>& argv) {
+ return getGlobalInitializer().executeInitializers(argv);
}
Status runGlobalDeinitializers() {
return getGlobalInitializer().executeDeinitializers();
}
-void runGlobalInitializersOrDie(int argc, const char* const* argv, const char* const* envp) {
- Status status = runGlobalInitializers(argc, argv, envp);
+void runGlobalInitializersOrDie(const std::vector<std::string>& argv) {
+ Status status = runGlobalInitializers(argv);
if (!status.isOK()) {
std::cerr << "Failed global initialization: " << status << std::endl;
quickExit(1);
diff --git a/src/mongo/base/initializer.h b/src/mongo/base/initializer.h
index 91b4c5e8183..131e3144477 100644
--- a/src/mongo/base/initializer.h
+++ b/src/mongo/base/initializer.h
@@ -47,13 +47,7 @@ namespace mongo {
* execute in an order that respects the programmer-established prerequistes.
*/
class Initializer {
- Initializer(const Initializer&) = delete;
- Initializer& operator=(const Initializer&) = delete;
-
public:
- Initializer();
- ~Initializer();
-
/**
* Get the initializer dependency graph, presumably for the purpose of adding more nodes.
*/
@@ -67,8 +61,7 @@ public:
* Returns Status::OK on success. All other returns constitute initialization failures,
* and the thing being initialized should be considered dead in the water.
*/
- Status executeInitializers(const InitializerContext::ArgumentVector& args,
- const InitializerContext::EnvironmentMap& env);
+ Status executeInitializers(const std::vector<std::string>& args);
Status executeDeinitializers();
@@ -94,16 +87,13 @@ private:
* This means that the few initializers that might want to terminate the program by failing
* should probably arrange to terminate the process themselves.
*/
-Status runGlobalInitializers(const InitializerContext::ArgumentVector& args,
- const InitializerContext::EnvironmentMap& env);
-
-Status runGlobalInitializers(int argc, const char* const* argv, const char* const* envp);
+Status runGlobalInitializers(const std::vector<std::string>& argv);
/**
* Same as runGlobalInitializers(), except prints a brief message to std::cerr
* and terminates the process on failure.
*/
-void runGlobalInitializersOrDie(int argc, const char* const* argv, const char* const* envp);
+void runGlobalInitializersOrDie(const std::vector<std::string>& argv);
/**
* Run the global deinitializers. They will execute in reverse order from initialization.
diff --git a/src/mongo/base/initializer_context.h b/src/mongo/base/initializer_context.h
index 12a6fd23f3a..9ba23d69441 100644
--- a/src/mongo/base/initializer_context.h
+++ b/src/mongo/base/initializer_context.h
@@ -42,26 +42,15 @@ namespace mongo {
* See mongo/base/initializer.h and mongo/base/initializer_dependency_graph.h for more details.
*/
class InitializerContext {
- InitializerContext(const InitializerContext&) = delete;
- InitializerContext& operator=(const InitializerContext&) = delete;
-
public:
- typedef std::vector<std::string> ArgumentVector;
- typedef std::map<std::string, std::string> EnvironmentMap;
-
- InitializerContext(const ArgumentVector& args, const EnvironmentMap& env)
- : _args(args), _env(env) {}
+ explicit InitializerContext(std::vector<std::string> args) : _args(std::move(args)) {}
- const ArgumentVector& args() const {
+ const std::vector<std::string>& args() const {
return _args;
}
- const EnvironmentMap& env() const {
- return _env;
- }
private:
- ArgumentVector _args;
- EnvironmentMap _env;
+ std::vector<std::string> _args;
};
} // namespace mongo
diff --git a/src/mongo/base/initializer_test.cpp b/src/mongo/base/initializer_test.cpp
index 86f281cc666..3598e26694f 100644
--- a/src/mongo/base/initializer_test.cpp
+++ b/src/mongo/base/initializer_test.cpp
@@ -298,8 +298,7 @@ TEST(InitializerTest, SuccessfulInitializationAndDeinitialization) {
constructNormalDependencyGraph(&initializer);
clearCounts();
- ASSERT_OK(initializer.executeInitializers(InitializerContext::ArgumentVector(),
- InitializerContext::EnvironmentMap()));
+ ASSERT_OK(initializer.executeInitializers({}));
for (int i = 0; i < 9; ++i)
ASSERT_EQUALS(INITIALIZED, globalStates[i]);
@@ -333,9 +332,7 @@ TEST(InitializerTest, Init5Misimplemented) {
deinitNoop);
clearCounts();
- ASSERT_EQUALS(ErrorCodes::UnknownError,
- initializer.executeInitializers(InitializerContext::ArgumentVector(),
- InitializerContext::EnvironmentMap()));
+ ASSERT_EQUALS(ErrorCodes::UnknownError, initializer.executeInitializers({}));
ASSERT_EQUALS(INITIALIZED, globalStates[0]);
ASSERT_EQUALS(INITIALIZED, globalStates[1]);
@@ -371,8 +368,7 @@ TEST(InitializerTest, Deinit2Misimplemented) {
deinit8);
clearCounts();
- ASSERT_OK(initializer.executeInitializers(InitializerContext::ArgumentVector(),
- InitializerContext::EnvironmentMap()));
+ ASSERT_OK(initializer.executeInitializers({}));
for (int i = 0; i < 9; ++i)
ASSERT_EQUALS(INITIALIZED, globalStates[i]);
@@ -395,8 +391,7 @@ DEATH_TEST(InitializerTest, CannotAddInitializerAfterInitializing, "!frozen()")
constructNormalDependencyGraph(&initializer);
clearCounts();
- ASSERT_OK(initializer.executeInitializers(InitializerContext::ArgumentVector(),
- InitializerContext::EnvironmentMap()));
+ ASSERT_OK(initializer.executeInitializers({}));
for (int i = 0; i < 9; ++i)
ASSERT_EQUALS(INITIALIZED, globalStates[i]);
@@ -414,16 +409,12 @@ DEATH_TEST(InitializerTest, CannotDoubleInitialize, "invalid initializer state t
constructNormalDependencyGraph(&initializer);
clearCounts();
- ASSERT_OK(initializer.executeInitializers(InitializerContext::ArgumentVector(),
- InitializerContext::EnvironmentMap()));
+ ASSERT_OK(initializer.executeInitializers({}));
for (int i = 0; i < 9; ++i)
ASSERT_EQUALS(INITIALIZED, globalStates[i]);
- initializer
- .executeInitializers(InitializerContext::ArgumentVector(),
- InitializerContext::EnvironmentMap())
- .ignore();
+ initializer.executeInitializers({}).ignore();
}
DEATH_TEST(InitializerTest,
@@ -441,8 +432,7 @@ DEATH_TEST(InitializerTest, CannotDoubleDeinitialize, "invalid initializer state
constructNormalDependencyGraph(&initializer);
clearCounts();
- ASSERT_OK(initializer.executeInitializers(InitializerContext::ArgumentVector(),
- InitializerContext::EnvironmentMap()));
+ ASSERT_OK(initializer.executeInitializers({}));
for (int i = 0; i < 9; ++i)
ASSERT_EQUALS(INITIALIZED, globalStates[i]);
diff --git a/src/mongo/client/sdam/json_test_arg_parser.cpp b/src/mongo/client/sdam/json_test_arg_parser.cpp
index 51f995c133a..8a27e328114 100644
--- a/src/mongo/client/sdam/json_test_arg_parser.cpp
+++ b/src/mongo/client/sdam/json_test_arg_parser.cpp
@@ -51,7 +51,7 @@ ArgParser::ArgParser(int argc, char* argv[]) {
MONGO_UNREACHABLE;
}
- ret = parser.run(options, toStringVector(argc, argv), {}, &environment);
+ ret = parser.run(options, toStringVector(argc, argv), &environment);
if (argc <= 1 || !ret.isOK() || environment.count("help")) {
if (!ret.isOK()) {
std::cerr << "An error occurred: " << ret.toString() << std::endl;
diff --git a/src/mongo/db/mongod.cpp b/src/mongo/db/mongod.cpp
index 3fd8f53c106..d16cb1954f3 100644
--- a/src/mongo/db/mongod.cpp
+++ b/src/mongo/db/mongod.cpp
@@ -39,14 +39,11 @@
// WindowsCommandLine object converts these wide character strings to a UTF-8 coded equivalent
// and makes them available through the argv() and envp() members. This enables mongoDbMain()
// to process UTF-8 encoded arguments and environment variables without regard to platform.
-int wmain(int argc, wchar_t* argvW[], wchar_t* envpW[]) {
- mongo::WindowsCommandLine wcl(argc, argvW, envpW);
- int exitCode = mongo::mongod_main(argc, wcl.argv(), wcl.envp());
- mongo::quickExit(exitCode);
+int wmain(int argc, wchar_t* argvW[]) {
+ mongo::quickExit(mongo::mongod_main(argc, mongo::WindowsCommandLine(argc, argvW).argv()));
}
#else
-int main(int argc, char* argv[], char** envp) {
- int exitCode = mongo::mongod_main(argc, argv, envp);
- mongo::quickExit(exitCode);
+int main(int argc, char* argv[]) {
+ mongo::quickExit(mongo::mongod_main(argc, argv));
}
#endif
diff --git a/src/mongo/db/mongod_main.cpp b/src/mongo/db/mongod_main.cpp
index 00ec1ec3814..4d093d7824a 100644
--- a/src/mongo/db/mongod_main.cpp
+++ b/src/mongo/db/mongod_main.cpp
@@ -1321,7 +1321,7 @@ void shutdownTask(const ShutdownTaskArgs& shutdownArgs) {
} // namespace
-int mongod_main(int argc, char* argv[], char** envp) {
+int mongod_main(int argc, char* argv[]) {
ThreadSafetyContext::getThreadSafetyContext()->forbidMultiThreading();
registerShutdownTask(shutdownTask);
@@ -1330,7 +1330,7 @@ int mongod_main(int argc, char* argv[], char** envp) {
srand(static_cast<unsigned>(curTimeMicros64()));
- Status status = mongo::runGlobalInitializers(argc, argv, envp);
+ Status status = mongo::runGlobalInitializers(std::vector<std::string>(argv, argv + argc));
if (!status.isOK()) {
LOGV2_FATAL_OPTIONS(
20574,
diff --git a/src/mongo/db/mongod_main.h b/src/mongo/db/mongod_main.h
index 0e5a8e06383..0ff4bce69e5 100644
--- a/src/mongo/db/mongod_main.h
+++ b/src/mongo/db/mongod_main.h
@@ -29,6 +29,6 @@
namespace mongo {
-int mongod_main(int argc, char* argv[], char** envp);
+int mongod_main(int argc, char* argv[]);
} // namespace mongo
diff --git a/src/mongo/db/server_options_test.cpp b/src/mongo/db/server_options_test.cpp
index 81d1b975f35..26510278e08 100644
--- a/src/mongo/db/server_options_test.cpp
+++ b/src/mongo/db/server_options_test.cpp
@@ -116,9 +116,8 @@ TEST_F(Verbosity, Default) {
std::vector<std::string> argv;
argv.push_back("binaryname");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_OK(::mongo::validateServerOptions(environment));
ASSERT_OK(::mongo::canonicalizeServerOptions(&environment));
@@ -139,9 +138,8 @@ TEST_F(Verbosity, CommandLineImplicit) {
std::vector<std::string> argv;
argv.push_back("binaryname");
argv.push_back("--verbose");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_OK(::mongo::validateServerOptions(environment));
ASSERT_OK(::mongo::canonicalizeServerOptions(&environment));
@@ -163,9 +161,8 @@ TEST_F(Verbosity, CommandLineString) {
argv.push_back("binaryname");
argv.push_back("--verbose");
argv.push_back("vvvv");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_OK(::mongo::validateServerOptions(environment));
ASSERT_OK(::mongo::canonicalizeServerOptions(&environment));
@@ -187,9 +184,8 @@ TEST_F(Verbosity, CommandLineStringDisguisedLongForm) {
argv.push_back("binaryname");
argv.push_back("-verbose");
argv.push_back("vvvv");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_OK(::mongo::validateServerOptions(environment));
ASSERT_OK(::mongo::canonicalizeServerOptions(&environment));
@@ -211,9 +207,8 @@ TEST_F(Verbosity, CommandLineEmptyString) {
argv.push_back("binaryname");
argv.push_back("--verbose");
argv.push_back("");
- std::map<std::string, std::string> env_map;
- ASSERT_NOT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(options, argv, &environment));
}
TEST_F(Verbosity, CommandLineBadString) {
@@ -227,9 +222,8 @@ TEST_F(Verbosity, CommandLineBadString) {
argv.push_back("binaryname");
argv.push_back("--verbose");
argv.push_back("beloud");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_NOT_OK(::mongo::validateServerOptions(environment));
}
@@ -244,9 +238,8 @@ TEST_F(Verbosity, CommandLineBadStringOnlyDash) {
std::vector<std::string> argv;
argv.push_back("binaryname");
argv.push_back("-");
- std::map<std::string, std::string> env_map;
- ASSERT_NOT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(options, argv, &environment));
}
TEST_F(Verbosity, CommandLineBadStringOnlyTwoDashes) {
@@ -259,9 +252,8 @@ TEST_F(Verbosity, CommandLineBadStringOnlyTwoDashes) {
std::vector<std::string> argv;
argv.push_back("binaryname");
argv.push_back("--");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
}
TEST_F(Verbosity, INIConfigString) {
@@ -275,11 +267,10 @@ TEST_F(Verbosity, INIConfigString) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.ini");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.ini", "verbose=vvvv");
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_OK(::mongo::validateServerOptions(environment));
ASSERT_OK(::mongo::canonicalizeServerOptions(&environment));
@@ -301,11 +292,10 @@ TEST_F(Verbosity, INIConfigBadString) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.ini");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.ini", "verbose=beloud");
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_NOT_OK(::mongo::validateServerOptions(environment));
}
@@ -321,11 +311,10 @@ TEST_F(Verbosity, INIConfigEmptyString) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.ini");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.ini", "verbose=");
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_OK(::mongo::validateServerOptions(environment));
ASSERT_OK(::mongo::canonicalizeServerOptions(&environment));
@@ -347,11 +336,10 @@ TEST_F(Verbosity, JSONConfigString) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", "{ \"systemLog.verbosity\" : 4 }");
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_OK(::mongo::validateServerOptions(environment));
ASSERT_OK(::mongo::canonicalizeServerOptions(&environment));
@@ -375,11 +363,10 @@ TEST_F(Verbosity, MultipleSourcesMultipleOptions) {
argv.push_back("config.json");
argv.push_back("--verbose");
argv.push_back("vvv");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", "{ \"systemLog.verbosity\" : 4 }");
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_OK(::mongo::validateServerOptions(environment));
ASSERT_OK(::mongo::canonicalizeServerOptions(&environment));
@@ -405,7 +392,6 @@ TEST_F(Verbosity, YAMLConfigStringLogComponent) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml",
"systemLog:\n"
@@ -418,7 +404,7 @@ TEST_F(Verbosity, YAMLConfigStringLogComponent) {
" journal:\n"
" verbosity: 2\n");
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_OK(::mongo::validateServerOptions(environment));
ASSERT_OK(::mongo::canonicalizeServerOptions(&environment));
@@ -515,9 +501,8 @@ TEST(SetupOptions, SlowMsCommandLineParamParsesSuccessfully) {
argv.push_back("binaryname");
argv.push_back("--slowms");
argv.push_back("300");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_OK(::mongo::validateServerOptions(environment));
ASSERT_OK(::mongo::canonicalizeServerOptions(&environment));
@@ -539,11 +524,10 @@ TEST(SetupOptions, SlowMsParamInitializedSuccessfullyFromINIConfigFile) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.ini");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.ini", "slowms=300");
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_OK(::mongo::validateServerOptions(environment));
ASSERT_OK(::mongo::canonicalizeServerOptions(&environment));
@@ -565,13 +549,12 @@ TEST(SetupOptions, SlowMsParamInitializedSuccessfullyFromYAMLConfigFile) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml",
"operationProfiling:\n"
" slowOpThresholdMs: 300\n");
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_OK(::mongo::validateServerOptions(environment));
ASSERT_OK(::mongo::canonicalizeServerOptions(&environment));
@@ -592,9 +575,8 @@ TEST(SetupOptions, NonNumericSlowMsCommandLineOptionFailsToParse) {
argv.push_back("binaryname");
argv.push_back("--slowms");
argv.push_back("invalid");
- std::map<std::string, std::string> env_map;
- ASSERT_NOT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(options, argv, &environment));
}
TEST(SetupOptions, NonNumericSlowMsYAMLConfigOptionFailsToParse) {
@@ -608,13 +590,12 @@ TEST(SetupOptions, NonNumericSlowMsYAMLConfigOptionFailsToParse) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml",
"operationProfiling:\n"
" slowOpThresholdMs: invalid\n");
- ASSERT_NOT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(options, argv, &environment));
}
TEST(SetupOptions, SampleRateCommandLineParamParsesSuccessfully) {
@@ -628,9 +609,8 @@ TEST(SetupOptions, SampleRateCommandLineParamParsesSuccessfully) {
argv.push_back("binaryname");
argv.push_back("--slowOpSampleRate");
argv.push_back("0.5");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_OK(::mongo::validateServerOptions(environment));
ASSERT_OK(::mongo::canonicalizeServerOptions(&environment));
@@ -652,11 +632,10 @@ TEST(SetupOptions, SampleRateParamInitializedSuccessfullyFromINIConfigFile) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.ini");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.ini", "slowOpSampleRate=0.5");
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_OK(::mongo::validateServerOptions(environment));
ASSERT_OK(::mongo::canonicalizeServerOptions(&environment));
@@ -678,13 +657,12 @@ TEST(SetupOptions, SampleRateParamInitializedSuccessfullyFromYAMLConfigFile) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml",
"operationProfiling:\n"
" slowOpSampleRate: 0.5\n");
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_OK(::mongo::validateServerOptions(environment));
ASSERT_OK(::mongo::canonicalizeServerOptions(&environment));
@@ -705,9 +683,8 @@ TEST(SetupOptions, NonNumericSampleRateCommandLineOptionFailsToParse) {
argv.push_back("binaryname");
argv.push_back("--slowOpSampleRate");
argv.push_back("invalid");
- std::map<std::string, std::string> env_map;
- ASSERT_NOT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(options, argv, &environment));
}
TEST(SetupOptions, NonNumericSampleRateYAMLConfigOptionFailsToParse) {
@@ -722,13 +699,12 @@ TEST(SetupOptions, NonNumericSampleRateYAMLConfigOptionFailsToParse) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml",
"operationProfiling:\n"
" slowOpSampleRate: invalid\n");
- ASSERT_NOT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(options, argv, &environment));
}
#if !defined(_WIN32) && !(defined(__APPLE__) && TARGET_OS_TV)
diff --git a/src/mongo/db/traffic_reader_main.cpp b/src/mongo/db/traffic_reader_main.cpp
index c907b74c979..5f257cf627c 100644
--- a/src/mongo/db/traffic_reader_main.cpp
+++ b/src/mongo/db/traffic_reader_main.cpp
@@ -48,11 +48,11 @@
using namespace mongo;
-int main(int argc, char* argv[], char** envp) {
+int main(int argc, char* argv[]) {
setupSignalHandlers();
- Status status = mongo::runGlobalInitializers(argc, argv, envp);
+ Status status = mongo::runGlobalInitializers(std::vector<std::string>(argv, argv + argc));
if (!status.isOK()) {
std::cerr << "Failed global initialization: " << status << std::endl;
return EXIT_FAILURE;
diff --git a/src/mongo/dbtests/dbtests.cpp b/src/mongo/dbtests/dbtests.cpp
index 03a3eb6fd01..c61e4ae7031 100644
--- a/src/mongo/dbtests/dbtests.cpp
+++ b/src/mongo/dbtests/dbtests.cpp
@@ -172,13 +172,13 @@ WriteContextForTests::WriteContextForTests(OperationContext* opCtx, StringData n
} // namespace mongo
-int dbtestsMain(int argc, char** argv, char** envp) {
+int dbtestsMain(int argc, char** argv) {
::mongo::setTestCommandsEnabled(true);
::mongo::TestingProctor::instance().setEnabled(true);
::mongo::setupSynchronousSignalHandlers();
mongo::dbtests::initWireSpec();
- mongo::runGlobalInitializersOrDie(argc, argv, envp);
+ mongo::runGlobalInitializersOrDie(std::vector<std::string>(argv, argv + argc));
serverGlobalParams.featureCompatibility.setVersion(
ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo46);
repl::ReplSettings replSettings;
@@ -231,14 +231,11 @@ int dbtestsMain(int argc, char** argv, char** envp) {
// WindowsCommandLine object converts these wide character strings to a UTF-8 coded equivalent
// and makes them available through the argv() and envp() members. This enables dbtestsMain()
// to process UTF-8 encoded arguments and environment variables without regard to platform.
-int wmain(int argc, wchar_t* argvW[], wchar_t* envpW[]) {
- WindowsCommandLine wcl(argc, argvW, envpW);
- int exitCode = dbtestsMain(argc, wcl.argv(), wcl.envp());
- quickExit(exitCode);
+int wmain(int argc, wchar_t* argvW[]) {
+ quickExit(dbtestsMain(argc, WindowsCommandLine(argc, argvW).argv()));
}
#else
-int main(int argc, char* argv[], char** envp) {
- int exitCode = dbtestsMain(argc, argv, envp);
- quickExit(exitCode);
+int main(int argc, char* argv[]) {
+ quickExit(dbtestsMain(argc, argv));
}
#endif
diff --git a/src/mongo/embedded/embedded.cpp b/src/mongo/embedded/embedded.cpp
index 1236f123293..e7a4ef87453 100644
--- a/src/mongo/embedded/embedded.cpp
+++ b/src/mongo/embedded/embedded.cpp
@@ -190,11 +190,10 @@ void shutdown(ServiceContext* srvContext) {
ServiceContext* initialize(const char* yaml_config) {
srand(static_cast<unsigned>(curTimeMicros64()));
- // yaml_config is passed to the options parser through the argc/argv interface that already
- // existed. If it is nullptr then use 0 count which will be interpreted as empty string.
- const char* argv[2] = {yaml_config, nullptr};
-
- Status status = mongo::runGlobalInitializers(yaml_config ? 1 : 0, argv, nullptr);
+ std::vector<std::string> argv;
+ if (yaml_config)
+ argv.push_back(yaml_config);
+ Status status = mongo::runGlobalInitializers(argv);
uassertStatusOKWithContext(status, "Global initilization failed");
auto giGuard = makeGuard([] { mongo::runGlobalDeinitializers().ignore(); });
setGlobalServiceContext(ServiceContext::make());
diff --git a/src/mongo/embedded/embedded_options_helpers.cpp b/src/mongo/embedded/embedded_options_helpers.cpp
index 6815584a9d0..51cf838c935 100644
--- a/src/mongo/embedded/embedded_options_helpers.cpp
+++ b/src/mongo/embedded/embedded_options_helpers.cpp
@@ -49,14 +49,9 @@ Status parseCommandLineOptions(int argc,
// different options format and we therefore need to have parsed the command line options before
// embedded::initialize() is called. However, as long as we store the options in the same place
// they will be valid for embedded too.
- std::vector<std::string> args;
- std::map<std::string, std::string> env;
-
- args.reserve(argc);
- std::copy(argv, argv + argc, std::back_inserter(args));
-
- optionenvironment::OptionsParser parser;
- return parser.run(startupOptions, args, env, &optionenvironment::startupOptionsParsed);
+ return optionenvironment::OptionsParser{}.run(startupOptions,
+ std::vector<std::string>(argv, argv + argc),
+ &optionenvironment::startupOptionsParsed);
}
} // namespace embedded_integration_helpers
diff --git a/src/mongo/embedded/embedded_options_parser_init.cpp b/src/mongo/embedded/embedded_options_parser_init.cpp
index 895fb94f9e0..1599668cf73 100644
--- a/src/mongo/embedded/embedded_options_parser_init.cpp
+++ b/src/mongo/embedded/embedded_options_parser_init.cpp
@@ -49,8 +49,7 @@ GlobalInitializerRegisterer startupOptionsInitializer(
std::string config = !context->args().empty() ? context->args()[0] : "";
OptionsParser parser;
- Status ret =
- parser.runConfigFile(startupOptions, config, context->env(), &startupOptionsParsed);
+ Status ret = parser.runConfigFile(startupOptions, config, &startupOptionsParsed);
uassertStatusOKWithContext(ret, "Options parsing failed.");
return Status::OK();
diff --git a/src/mongo/embedded/mongo_embedded/mongo_embedded_test.cpp b/src/mongo/embedded/mongo_embedded/mongo_embedded_test.cpp
index a3755223912..9e5bfd7038f 100644
--- a/src/mongo/embedded/mongo_embedded/mongo_embedded_test.cpp
+++ b/src/mongo/embedded/mongo_embedded/mongo_embedded_test.cpp
@@ -658,9 +658,8 @@ int main(const int argc, const char* const* const argv) {
return EXIT_FAILURE;
}
- std::map<std::string, std::string> env;
ret = moe::OptionsParser().run(
- options, std::vector<std::string>(argv, argv + argc), env, &environment);
+ options, std::vector<std::string>(argv, argv + argc), &environment);
if (!ret.isOK()) {
std::cerr << options.helpString();
return EXIT_FAILURE;
@@ -683,8 +682,7 @@ int main(const int argc, const char* const* const argv) {
// The reason this works is that the unittest system relies on other systems being initialized
// through global init and deinitialize just deinitializes systems that explicitly supports
// deinit leaving the systems unittest needs initialized.
- const char* null_argv[1] = {nullptr};
- ret = mongo::runGlobalInitializers(0, null_argv, nullptr);
+ ret = mongo::runGlobalInitializers(std::vector<std::string>{});
if (!ret.isOK()) {
std::cerr << "Global initilization failed";
return EXIT_FAILURE;
diff --git a/src/mongo/embedded/mongoc_embedded/mongoc_embedded_test.cpp b/src/mongo/embedded/mongoc_embedded/mongoc_embedded_test.cpp
index eff6c417320..6d8750b1058 100644
--- a/src/mongo/embedded/mongoc_embedded/mongoc_embedded_test.cpp
+++ b/src/mongo/embedded/mongoc_embedded/mongoc_embedded_test.cpp
@@ -259,12 +259,11 @@ using StatusPtr = std::unique_ptr<mongo_embedded_v1_status, StatusDestroy>;
// These test functions cannot use the main() defined for unittests because they
// call runGlobalInitializers(). The embedded C API calls mongoDbMain() which
// calls runGlobalInitializers().
-int main(int argc, char** argv, char** envp) {
+int main(int argc, char** argv) {
moe::OptionsParser parser;
moe::Environment environment;
moe::OptionSection options;
- std::map<std::string, std::string> env;
auto ret = mongo::embedded::addMongocEmbeddedTestOptions(&options);
if (!ret.isOK()) {
@@ -272,8 +271,7 @@ int main(int argc, char** argv, char** envp) {
return EXIT_FAILURE;
}
- std::vector<std::string> argVector(argv, argv + argc);
- ret = parser.run(options, argVector, env, &environment);
+ ret = parser.run(options, std::vector<std::string>(argv, argv + argc), &environment);
if (!ret.isOK()) {
std::cerr << options.helpString();
return EXIT_FAILURE;
diff --git a/src/mongo/embedded/stitch_support/stitch_support.cpp b/src/mongo/embedded/stitch_support/stitch_support.cpp
index 934f9185735..2613c62f2d0 100644
--- a/src/mongo/embedded/stitch_support/stitch_support.cpp
+++ b/src/mongo/embedded/stitch_support/stitch_support.cpp
@@ -123,8 +123,7 @@ ServiceContext* initialize() {
// The global initializers can take arguments, which would normally be supplied on the command
// line, but we assume that clients of this library will never want anything other than the
// defaults for all configuration that would be controlled by these parameters.
- Status status =
- mongo::runGlobalInitializers(0 /* argc */, nullptr /* argv */, nullptr /* envp */);
+ Status status = mongo::runGlobalInitializers(std::vector<std::string>{});
uassertStatusOKWithContext(status, "Global initialization failed");
setGlobalServiceContext(ServiceContext::make());
auto serviceContext = getGlobalServiceContext();
diff --git a/src/mongo/embedded/stitch_support/stitch_support_test.cpp b/src/mongo/embedded/stitch_support/stitch_support_test.cpp
index d46ba1b3281..75db9287db1 100644
--- a/src/mongo/embedded/stitch_support/stitch_support_test.cpp
+++ b/src/mongo/embedded/stitch_support/stitch_support_test.cpp
@@ -635,8 +635,7 @@ TEST_F(StitchSupportTest, TestUpsertProducesProperStatus) {
// the Stitch Support Library intializer function that gets tested here.
int main(const int argc, const char* const* const argv) {
// See comment by the same code block in mongo_embedded_test.cpp
- const char* null_argv[1] = {nullptr};
- auto ret = mongo::runGlobalInitializers(0, null_argv, nullptr);
+ auto ret = mongo::runGlobalInitializers(std::vector<std::string>{});
if (!ret.isOK()) {
std::cerr << "Global initilization failed";
return EXIT_FAILURE;
diff --git a/src/mongo/idl/config_option_test.cpp b/src/mongo/idl/config_option_test.cpp
index 3b7509a38b1..78bdf0df513 100644
--- a/src/mongo/idl/config_option_test.cpp
+++ b/src/mongo/idl/config_option_test.cpp
@@ -47,7 +47,7 @@ bool gEnableTestConfigOpt15 = false;
namespace {
Status parseArgv(const std::vector<std::string>& argv, moe::Environment* parsed) {
- auto status = moe::OptionsParser().run(moe::startupOptions, argv, {}, parsed);
+ auto status = moe::OptionsParser().run(moe::startupOptions, argv, parsed);
if (!status.isOK()) {
return status;
}
@@ -55,7 +55,7 @@ Status parseArgv(const std::vector<std::string>& argv, moe::Environment* parsed)
}
Status parseConfig(const std::string& config, moe::Environment* parsed) {
- auto status = moe::OptionsParser().runConfigFile(moe::startupOptions, config, {}, parsed);
+ auto status = moe::OptionsParser().runConfigFile(moe::startupOptions, config, parsed);
if (!status.isOK()) {
return status;
}
@@ -68,11 +68,11 @@ Status parseMixed(const std::vector<std::string>& argv,
moe::OptionsParser mixedParser;
moe::Environment conf;
- uassertStatusOK(mixedParser.runConfigFile(moe::startupOptions, config, {}, &conf));
+ uassertStatusOK(mixedParser.runConfigFile(moe::startupOptions, config, &conf));
uassertStatusOK(env->setAll(conf));
moe::Environment cli;
- uassertStatusOK(mixedParser.run(moe::startupOptions, argv, {}, &cli));
+ uassertStatusOK(mixedParser.run(moe::startupOptions, argv, &cli));
uassertStatusOK(env->setAll(cli));
return env->validate();
@@ -616,7 +616,7 @@ TEST(ConfigOptionNoInit, Opt1) {
"Hello",
});
moe::Environment parsed;
- ASSERT_OK(moe::OptionsParser().run(options, argv, {}, &parsed));
+ ASSERT_OK(moe::OptionsParser().run(options, argv, &parsed));
ASSERT_OK(parsed.validate());
ASSERT_OK(storeIDLTestConfigs(parsed));
diff --git a/src/mongo/s/mongos.cpp b/src/mongo/s/mongos.cpp
index d9cc1790464..131cbd4ee73 100644
--- a/src/mongo/s/mongos.cpp
+++ b/src/mongo/s/mongos.cpp
@@ -39,12 +39,11 @@
// WindowsCommandLine object converts these wide character strings to a UTF-8 coded equivalent
// and makes them available through the argv() and envp() members. This enables mongoSMain()
// to process UTF-8 encoded arguments and environment variables without regard to platform.
-int wmain(int argc, wchar_t* argvW[], wchar_t* envpW[]) {
- mongo::WindowsCommandLine wcl(argc, argvW, envpW);
- mongo::exitCleanly(mongo::mongos_main(argc, wcl.argv(), wcl.envp()));
+int wmain(int argc, wchar_t* argvW[]) {
+ mongo::exitCleanly(mongo::mongos_main(argc, mongo::WindowsCommandLine(argc, argvW).argv()));
}
#else
-int main(int argc, char* argv[], char** envp) {
- mongo::exitCleanly(mongo::mongos_main(argc, argv, envp));
+int main(int argc, char* argv[]) {
+ mongo::exitCleanly(mongo::mongos_main(argc, argv));
}
#endif
diff --git a/src/mongo/s/mongos_main.cpp b/src/mongo/s/mongos_main.cpp
index 6894950f899..f045dd9b115 100644
--- a/src/mongo/s/mongos_main.cpp
+++ b/src/mongo/s/mongos_main.cpp
@@ -914,7 +914,7 @@ MONGO_INITIALIZER_GENERAL(setSSLManagerType, MONGO_NO_PREREQUISITES, ("SSLManage
} // namespace
-ExitCode mongos_main(int argc, char* argv[], char** envp) {
+ExitCode mongos_main(int argc, char* argv[]) {
setMongos();
if (argc < 1)
@@ -923,7 +923,7 @@ ExitCode mongos_main(int argc, char* argv[], char** envp) {
setupSignalHandlers();
- Status status = runGlobalInitializers(argc, argv, envp);
+ Status status = runGlobalInitializers(std::vector<std::string>(argv, argv + argc));
if (!status.isOK()) {
LOGV2_FATAL_OPTIONS(
22865,
diff --git a/src/mongo/s/mongos_main.h b/src/mongo/s/mongos_main.h
index e68edc33563..37dd9512824 100644
--- a/src/mongo/s/mongos_main.h
+++ b/src/mongo/s/mongos_main.h
@@ -31,6 +31,6 @@
namespace mongo {
-ExitCode mongos_main(int argc, char* argv[], char** envp);
+ExitCode mongos_main(int argc, char* argv[]);
} // namespace mongo
diff --git a/src/mongo/shell/mongo.cpp b/src/mongo/shell/mongo.cpp
index e6e0b199951..2dac76a86d9 100644
--- a/src/mongo/shell/mongo.cpp
+++ b/src/mongo/shell/mongo.cpp
@@ -34,12 +34,11 @@
#include "mongo/util/text.h"
#ifdef _WIN32
-int wmain(int argc, wchar_t* argvW[], wchar_t* envpW[]) {
- mongo::WindowsCommandLine wcl(argc, argvW, envpW);
- mongo::quickExit(mongo::mongo_main(argc, wcl.argv(), wcl.envp()));
+int wmain(int argc, wchar_t* argvW[]) {
+ mongo::quickExit(mongo::mongo_main(argc, mongo::WindowsCommandLine(argc, argvW).argv()));
}
#else // #ifdef _WIN32
-int main(int argc, char* argv[], char** envp) {
- mongo::quickExit(mongo::mongo_main(argc, argv, envp));
+int main(int argc, char* argv[]) {
+ mongo::quickExit(mongo::mongo_main(argc, argv));
}
#endif // #ifdef _WIN32
diff --git a/src/mongo/shell/mongo_main.cpp b/src/mongo/shell/mongo_main.cpp
index c338fe921d7..5061079123a 100644
--- a/src/mongo/shell/mongo_main.cpp
+++ b/src/mongo/shell/mongo_main.cpp
@@ -702,7 +702,7 @@ bool mechanismRequiresPassword(const MongoURI& uri) {
} // namespace
-int mongo_main(int argc, char* argv[], char** envp) {
+int mongo_main(int argc, char* argv[]) {
try {
@@ -724,7 +724,7 @@ int mongo_main(int argc, char* argv[], char** envp) {
mongo::shell_utils::RecordMyLocation(argv[0]);
- mongo::runGlobalInitializersOrDie(argc, argv, envp);
+ mongo::runGlobalInitializersOrDie(std::vector<std::string>(argv, argv + argc));
setGlobalServiceContext(ServiceContext::make());
// TODO This should use a TransportLayerManager or TransportLayerFactory
auto serviceContext = getGlobalServiceContext();
diff --git a/src/mongo/shell/mongo_main.h b/src/mongo/shell/mongo_main.h
index b16b2ed5203..45250fc0271 100644
--- a/src/mongo/shell/mongo_main.h
+++ b/src/mongo/shell/mongo_main.h
@@ -29,6 +29,6 @@
namespace mongo {
-int mongo_main(int argc, char* argv[], char** envp);
+int mongo_main(int argc, char* argv[]);
} // namespace mongo
diff --git a/src/mongo/tools/bridge.cpp b/src/mongo/tools/bridge.cpp
index 52336902ba7..e377fae9be8 100644
--- a/src/mongo/tools/bridge.cpp
+++ b/src/mongo/tools/bridge.cpp
@@ -453,7 +453,7 @@ DbResponse ServiceEntryPointBridge::handleRequest(OperationContext* opCtx, const
}
}
-int bridgeMain(int argc, char** argv, char** envp) {
+int bridgeMain(int argc, char** argv) {
registerShutdownTask([&] {
// NOTE: This function may be called at any time. It must not
@@ -472,7 +472,7 @@ int bridgeMain(int argc, char** argv, char** envp) {
});
setupSignalHandlers();
- runGlobalInitializersOrDie(argc, argv, envp);
+ runGlobalInitializersOrDie(std::vector<std::string>(argv, argv + argc));
startSignalProcessingThread(LogFileStatus::kNoLogFileToRotate);
setGlobalServiceContext(ServiceContext::make());
@@ -512,14 +512,11 @@ int bridgeMain(int argc, char** argv, char** envp) {
// WindowsCommandLine object converts these wide character strings to a UTF-8 coded equivalent
// and makes them available through the argv() and envp() members. This enables bridgeMain()
// to process UTF-8 encoded arguments and environment variables without regard to platform.
-int wmain(int argc, wchar_t* argvW[], wchar_t* envpW[]) {
- mongo::WindowsCommandLine wcl(argc, argvW, envpW);
- int exitCode = mongo::bridgeMain(argc, wcl.argv(), wcl.envp());
- mongo::quickExit(exitCode);
+int wmain(int argc, wchar_t* argvW[]) {
+ mongo::quickExit(mongo::bridgeMain(argc, mongo::WindowsCommandLine(argc, argvW).argv()));
}
#else
-int main(int argc, char* argv[], char** envp) {
- int exitCode = mongo::bridgeMain(argc, argv, envp);
- mongo::quickExit(exitCode);
+int main(int argc, char* argv[]) {
+ mongo::quickExit(mongo::bridgeMain(argc, argv));
}
#endif
diff --git a/src/mongo/unittest/benchmark_main.cpp b/src/mongo/unittest/benchmark_main.cpp
index e116be4d938..9e76cbff81a 100644
--- a/src/mongo/unittest/benchmark_main.cpp
+++ b/src/mongo/unittest/benchmark_main.cpp
@@ -40,11 +40,11 @@
#include "mongo/util/signal_handlers_synchronous.h"
-int main(int argc, char** argv, char** envp) {
+int main(int argc, char** argv) {
::mongo::clearSignalMask();
::mongo::setupSynchronousSignalHandlers();
- ::mongo::runGlobalInitializersOrDie(argc, argv, envp);
+ ::mongo::runGlobalInitializersOrDie(std::vector<std::string>(argv, argv + argc));
::mongo::setGlobalServiceContext(::mongo::ServiceContext::make());
// Copied from the BENCHMARK_MAIN macro.
diff --git a/src/mongo/unittest/integration_test_main.cpp b/src/mongo/unittest/integration_test_main.cpp
index 07f8c95b097..41e553fc3fa 100644
--- a/src/mongo/unittest/integration_test_main.cpp
+++ b/src/mongo/unittest/integration_test_main.cpp
@@ -72,10 +72,10 @@ ConnectionString getFixtureConnectionString() {
} // namespace unittest
} // namespace mongo
-int main(int argc, char** argv, char** envp) {
+int main(int argc, char** argv) {
setupSynchronousSignalHandlers();
TestingProctor::instance().setEnabled(true);
- runGlobalInitializersOrDie(argc, argv, envp);
+ runGlobalInitializersOrDie(std::vector<std::string>(argv, argv + argc));
setTestCommandsEnabled(true);
setGlobalServiceContext(ServiceContext::make());
quickExit(unittest::Suite::run(std::vector<std::string>(), "", "", 1));
diff --git a/src/mongo/unittest/unittest_main.cpp b/src/mongo/unittest/unittest_main.cpp
index 39e59923d10..a43805b0944 100644
--- a/src/mongo/unittest/unittest_main.cpp
+++ b/src/mongo/unittest/unittest_main.cpp
@@ -50,12 +50,14 @@ using mongo::Status;
namespace moe = ::mongo::optionenvironment;
-int main(int argc, char** argv, char** envp) {
+int main(int argc, char** argv) {
+ std::vector<std::string> argVec(argv, argv + argc);
+
::mongo::clearSignalMask();
::mongo::setupSynchronousSignalHandlers();
::mongo::TestingProctor::instance().setEnabled(true);
- ::mongo::runGlobalInitializersOrDie(argc, argv, envp);
+ ::mongo::runGlobalInitializersOrDie(argVec);
::mongo::setTestCommandsEnabled(true);
moe::OptionSection options;
@@ -68,9 +70,7 @@ int main(int argc, char** argv, char** envp) {
moe::OptionsParser parser;
moe::Environment environment;
- std::map<std::string, std::string> env;
- std::vector<std::string> argVector(argv, argv + argc);
- Status ret = parser.run(options, argVector, env, &environment);
+ Status ret = parser.run(options, argVec, &environment);
if (!ret.isOK()) {
std::cerr << options.helpString();
return EXIT_FAILURE;
diff --git a/src/mongo/util/net/ssl_options_test.cpp b/src/mongo/util/net/ssl_options_test.cpp
index 168cc2ff954..76ad7f48d0b 100644
--- a/src/mongo/util/net/ssl_options_test.cpp
+++ b/src/mongo/util/net/ssl_options_test.cpp
@@ -169,10 +169,9 @@ TEST(SetupOptions, tlsModeDisabled) {
argv.push_back("binaryname");
argv.push_back("--tlsMode");
argv.push_back("disabled");
- std::map<std::string, std::string> env_map;
OptionsParserTester parser;
- ASSERT_OK(parser.run(moe::startupOptions, argv, env_map, &moe::startupOptionsParsed));
+ ASSERT_OK(parser.run(moe::startupOptions, argv, &moe::startupOptionsParsed));
ASSERT_OK(storeSSLServerOptions());
ASSERT_EQ(::mongo::sslGlobalParams.sslMode.load(), ::mongo::sslGlobalParams.SSLMode_disabled);
}
@@ -188,10 +187,9 @@ TEST(SetupOptions, sslModeDisabled) {
argv.push_back("binaryname");
argv.push_back("--sslMode");
argv.push_back("disabled");
- std::map<std::string, std::string> env_map;
OptionsParserTester parser;
- ASSERT_OK(parser.run(moe::startupOptions, argv, env_map, &moe::startupOptionsParsed));
+ ASSERT_OK(parser.run(moe::startupOptions, argv, &moe::startupOptionsParsed));
ASSERT_OK(storeSSLServerOptions());
ASSERT_EQ(::mongo::sslGlobalParams.sslMode.load(), ::mongo::sslGlobalParams.SSLMode_disabled);
}
@@ -232,10 +230,9 @@ TEST(SetupOptions, tlsModeRequired) {
argv.push_back("TLS1_1");
argv.push_back("--tlsLogVersions");
argv.push_back("TLS1_2");
- std::map<std::string, std::string> env_map;
OptionsParserTester parser;
- ASSERT_OK(parser.run(moe::startupOptions, argv, env_map, &moe::startupOptionsParsed));
+ ASSERT_OK(parser.run(moe::startupOptions, argv, &moe::startupOptionsParsed));
ASSERT_OK(storeSSLServerOptions());
ASSERT_EQ(::mongo::sslGlobalParams.sslMode.load(), ::mongo::sslGlobalParams.SSLMode_requireSSL);
@@ -299,10 +296,9 @@ TEST(SetupOptions, sslModeRequired) {
argv.push_back("TLS1_1");
argv.push_back("--tlsLogVersions");
argv.push_back("TLS1_0");
- std::map<std::string, std::string> env_map;
OptionsParserTester parser;
- ASSERT_OK(parser.run(moe::startupOptions, argv, env_map, &moe::startupOptionsParsed));
+ ASSERT_OK(parser.run(moe::startupOptions, argv, &moe::startupOptionsParsed));
ASSERT_OK(storeSSLServerOptions());
ASSERT_EQ(::mongo::sslGlobalParams.sslMode.load(), ::mongo::sslGlobalParams.SSLMode_requireSSL);
@@ -346,10 +342,9 @@ TEST(SetupOptions, tlsModeRequiredCertificateSelector) {
argv.push_back("subject=Subject 1");
argv.push_back("--tlsClusterCertificateSelector");
argv.push_back("subject=Subject 2");
- std::map<std::string, std::string> env_map;
OptionsParserTester parser;
- ASSERT_OK(parser.run(moe::startupOptions, argv, env_map, &moe::startupOptionsParsed));
+ ASSERT_OK(parser.run(moe::startupOptions, argv, &moe::startupOptionsParsed));
ASSERT_OK(storeSSLServerOptions());
ASSERT_EQ(::mongo::sslGlobalParams.sslMode.load(), ::mongo::sslGlobalParams.SSLMode_requireSSL);
@@ -372,10 +367,9 @@ TEST(SetupOptions, sslModeRequiredCertificateSelector) {
argv.push_back("subject=Subject 1");
argv.push_back("--sslClusterCertificateSelector");
argv.push_back("subject=Subject 2");
- std::map<std::string, std::string> env_map;
OptionsParserTester parser;
- ASSERT_OK(parser.run(moe::startupOptions, argv, env_map, &moe::startupOptionsParsed));
+ ASSERT_OK(parser.run(moe::startupOptions, argv, &moe::startupOptionsParsed));
ASSERT_OK(storeSSLServerOptions());
ASSERT_EQ(::mongo::sslGlobalParams.sslMode.load(), ::mongo::sslGlobalParams.SSLMode_requireSSL);
@@ -395,9 +389,8 @@ TEST(SetupOptions, disableNonSSLConnectionLoggingFalse) {
argv.push_back("binaryname");
argv.push_back("--setParameter");
argv.push_back("disableNonSSLConnectionLogging=false");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_OK(mongo::storeServerOptions(environment));
ASSERT_EQ(::mongo::sslGlobalParams.disableNonSSLConnectionLogging, false);
@@ -415,9 +408,8 @@ TEST(SetupOptions, disableNonTLSConnectionLoggingFalse) {
argv.push_back("binaryname");
argv.push_back("--setParameter");
argv.push_back("disableNonTLSConnectionLogging=false");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
Status storeRet = mongo::storeServerOptions(environment);
ASSERT_EQ(::mongo::sslGlobalParams.disableNonSSLConnectionLogging, false);
@@ -435,9 +427,8 @@ TEST(SetupOptions, disableNonSSLConnectionLoggingTrue) {
argv.push_back("binaryname");
argv.push_back("--setParameter");
argv.push_back("disableNonSSLConnectionLogging=true");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
Status storeRet = mongo::storeServerOptions(environment);
ASSERT_EQ(::mongo::sslGlobalParams.disableNonSSLConnectionLogging, true);
@@ -455,9 +446,8 @@ TEST(SetupOptions, disableNonTLSConnectionLoggingTrue) {
argv.push_back("binaryname");
argv.push_back("--setParameter");
argv.push_back("disableNonTLSConnectionLogging=true");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
Status storeRet = mongo::storeServerOptions(environment);
ASSERT_EQ(::mongo::sslGlobalParams.disableNonSSLConnectionLogging, true);
@@ -476,9 +466,8 @@ TEST(SetupOptions, disableNonTLSConnectionLoggingInvalid) {
argv.push_back("disableNonTLSConnectionLogging=false");
argv.push_back("--setParameter");
argv.push_back("disableNonSSLConnectionLogging=false");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(options, argv, env_map, &environment));
+ ASSERT_OK(parser.run(options, argv, &environment));
ASSERT_NOT_OK(mongo::storeServerOptions(environment));
}
diff --git a/src/mongo/util/options_parser/options_parser.cpp b/src/mongo/util/options_parser/options_parser.cpp
index 6d456fcc45d..ba151a6784d 100644
--- a/src/mongo/util/options_parser/options_parser.cpp
+++ b/src/mongo/util/options_parser/options_parser.cpp
@@ -1752,7 +1752,6 @@ StatusWith<OptionsParser::ConfigExpand> parseConfigExpand(const Environment& cli
*/
Status OptionsParser::run(const OptionSection& options,
const std::vector<std::string>& argvOriginal,
- const std::map<std::string, std::string>& env, // XXX: Currently unused
Environment* environment) {
Environment commandLineEnvironment;
Environment configEnvironment;
@@ -1855,11 +1854,9 @@ Status OptionsParser::run(const OptionSection& options,
return Status::OK();
}
-Status OptionsParser::runConfigFile(
- const OptionSection& options,
- const std::string& config,
- const std::map<std::string, std::string>& env, // Unused, interface consistent with run()
- Environment* configEnvironment) {
+Status OptionsParser::runConfigFile(const OptionSection& options,
+ const std::string& config,
+ Environment* configEnvironment) {
// Add values from the provided config file
Status ret = parseConfigFile(options, config, configEnvironment, ConfigExpand());
if (!ret.isOK()) {
diff --git a/src/mongo/util/options_parser/options_parser.h b/src/mongo/util/options_parser/options_parser.h
index 0dcc5db5c15..411323a267d 100644
--- a/src/mongo/util/options_parser/options_parser.h
+++ b/src/mongo/util/options_parser/options_parser.h
@@ -110,19 +110,15 @@ public:
* file. For binaries that do not support config files, the "config" option should not be
* registered in the OptionSection.
*/
- Status run(const OptionSection&,
+ Status run(const OptionSection& options,
const std::vector<std::string>& argv,
- const std::map<std::string, std::string>& env,
- Environment*);
+ Environment* env);
/** Handles parsing of a YAML or INI formatted string. The
* OptionSection be a description of the allowed options. This function populates the
* given Environment with the results but does not call validate on the Environment.
*/
- Status runConfigFile(const OptionSection&,
- const std::string& config,
- const std::map<std::string, std::string>& env,
- Environment*);
+ Status runConfigFile(const OptionSection& options, const std::string& config, Environment* env);
/**
* Flags controlling whether or not __rest and/or __exec directives in a
diff --git a/src/mongo/util/options_parser/options_parser_init.cpp b/src/mongo/util/options_parser/options_parser_init.cpp
index d6e20ffe045..304a6d1d152 100644
--- a/src/mongo/util/options_parser/options_parser_init.cpp
+++ b/src/mongo/util/options_parser/options_parser_init.cpp
@@ -44,7 +44,7 @@ namespace {
MONGO_STARTUP_OPTIONS_PARSE(StartupOptions)(InitializerContext* context) {
OptionsParser parser;
- Status ret = parser.run(startupOptions, context->args(), context->env(), &startupOptionsParsed);
+ Status ret = parser.run(startupOptions, context->args(), &startupOptionsParsed);
if (!ret.isOK()) {
std::cerr << ret.reason() << std::endl;
// TODO: Figure out if there's a use case for this help message ever being different
diff --git a/src/mongo/util/options_parser/options_parser_test.cpp b/src/mongo/util/options_parser/options_parser_test.cpp
index 7c2b223633e..25023d717b1 100644
--- a/src/mongo/util/options_parser/options_parser_test.cpp
+++ b/src/mongo/util/options_parser/options_parser_test.cpp
@@ -89,10 +89,9 @@ TEST(Registration, EmptySingleName) {
// This should fail now, because we didn't specify that these options were not valid in the
// INI config or on the command line
std::vector<std::string> argv;
- std::map<std::string, std::string> env_map;
moe::OptionsParser parser;
moe::Environment environment;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
moe::OptionSection testOptsValid;
try {
@@ -108,7 +107,7 @@ TEST(Registration, EmptySingleName) {
// This should pass now, because we specified that these options were not valid in the INI
// config or on the command line
- ASSERT_OK(parser.run(testOptsValid, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOptsValid, argv, &environment));
}
TEST(Registration, DuplicateSingleName) {
@@ -372,10 +371,9 @@ TEST(Parsing, Good) {
argv.push_back("--port");
argv.push_back("5");
argv.push_back("--help");
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("help"), &value));
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -397,10 +395,9 @@ TEST(Parsing, SubSection) {
argv.push_back("binaryname");
argv.push_back("--port");
argv.push_back("5");
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
ASSERT_OK(value.get(&port));
@@ -421,10 +418,9 @@ TEST(Parsing, StringVector) {
argv.push_back("val1");
argv.push_back("--multival");
argv.push_back("val2");
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("multival"), &value));
std::vector<std::string> multival;
std::vector<std::string>::iterator multivalit;
@@ -451,10 +447,9 @@ TEST(Parsing, StringMap) {
argv.push_back("key2=value2");
argv.push_back("--multival");
argv.push_back("key3=");
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("multival"), &value));
std::map<std::string, std::string> multival;
std::map<std::string, std::string>::iterator multivalit;
@@ -484,10 +479,9 @@ TEST(Parsing, StringMapDuplicateKey) {
argv.push_back("key1=value1");
argv.push_back("--multival");
argv.push_back("key1=value2");
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(Parsing, Positional) {
@@ -503,10 +497,9 @@ TEST(Parsing, Positional) {
std::vector<std::string> argv;
argv.push_back("binaryname");
argv.push_back("positional");
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("positional"), &value));
std::string positional;
ASSERT_OK(value.get(&positional));
@@ -527,10 +520,9 @@ TEST(Parsing, PositionalTooMany) {
argv.push_back("binaryname");
argv.push_back("positional");
argv.push_back("extrapositional");
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(Parsing, PositionalAndFlag) {
@@ -549,10 +541,9 @@ TEST(Parsing, PositionalAndFlag) {
argv.push_back("positional");
argv.push_back("--port");
argv.push_back("5");
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("positional"), &value));
std::string positional;
ASSERT_OK(value.get(&positional));
@@ -577,9 +568,8 @@ TEST(Parsing, PositionalMultiple) {
argv.push_back("binaryname");
argv.push_back("positional1");
argv.push_back("positional2");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("positional"), &value));
std::vector<std::string> positional;
@@ -605,9 +595,8 @@ TEST(Parsing, PositionalMultipleExtra) {
argv.push_back("positional1");
argv.push_back("positional2");
argv.push_back("positional2");
- std::map<std::string, std::string> env_map;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(Parsing, PositionalMultipleUnlimited) {
@@ -627,9 +616,8 @@ TEST(Parsing, PositionalMultipleUnlimited) {
argv.push_back("positional3");
argv.push_back("positional4");
argv.push_back("positional5");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("positional"), &value));
std::vector<std::string> positional;
@@ -663,9 +651,8 @@ TEST(Parsing, PositionalMultipleAndFlag) {
argv.push_back("--port");
argv.push_back("5");
argv.push_back("positional2");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("positional"), &value));
std::vector<std::string> positional;
@@ -692,9 +679,8 @@ TEST(Parsing, NeedArg) {
std::vector<std::string> argv;
argv.push_back("binaryname");
argv.push_back("--port");
- std::map<std::string, std::string> env_map;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(Parsing, BadArg) {
@@ -710,9 +696,8 @@ TEST(Parsing, BadArg) {
argv.push_back("binaryname");
argv.push_back("--port");
argv.push_back("string");
- std::map<std::string, std::string> env_map;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(Parsing, ExtraArg) {
@@ -728,9 +713,8 @@ TEST(Parsing, ExtraArg) {
argv.push_back("binaryname");
argv.push_back("--help");
argv.push_back("string");
- std::map<std::string, std::string> env_map;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(Parsing, DefaultValue) {
@@ -745,9 +729,8 @@ TEST(Parsing, DefaultValue) {
std::vector<std::string> argv;
argv.push_back("binaryname");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -769,9 +752,8 @@ TEST(Parsing, DefaultValueOverride) {
argv.push_back("binaryname");
argv.push_back("--port");
argv.push_back("6");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -795,9 +777,8 @@ TEST(Parsing, DefaultValuesNotInBSON) {
argv.push_back("binaryname");
argv.push_back("--val1");
argv.push_back("6");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
mongo::BSONObj expected = BSON("val1" << 6);
ASSERT_BSONOBJ_EQ(expected, environment.toBSON());
@@ -817,9 +798,8 @@ TEST(Parsing, ImplicitValue) {
std::vector<std::string> argv;
argv.push_back("binaryname");
argv.push_back("--port");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -840,9 +820,8 @@ TEST(Parsing, ImplicitValueDefault) {
std::vector<std::string> argv;
argv.push_back("binaryname");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -865,9 +844,8 @@ TEST(Parsing, ImplicitValueOverride) {
argv.push_back("binaryname");
argv.push_back("--port");
argv.push_back("5");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -889,9 +867,8 @@ TEST(Parsing, ImplicitValueOverrideWithEqualsSign) {
std::vector<std::string> argv;
argv.push_back("binaryname");
argv.push_back("--port=5");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -913,10 +890,9 @@ TEST(Parsing, ShortName) {
argv.push_back("-p");
argv.push_back("5");
argv.push_back("-h");
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("help"), &value));
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -935,9 +911,8 @@ TEST(Style, NoSticky) {
std::vector<std::string> argv;
argv.push_back("binaryname");
argv.push_back("-oa");
- std::map<std::string, std::string> env_map;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(Style, NoGuessing) {
@@ -951,9 +926,8 @@ TEST(Style, NoGuessing) {
std::vector<std::string> argv;
argv.push_back("binaryname");
argv.push_back("--hel");
- std::map<std::string, std::string> env_map;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(Style, LongDisguises) {
@@ -967,9 +941,8 @@ TEST(Style, LongDisguises) {
std::vector<std::string> argv;
argv.push_back("binaryname");
argv.push_back("-help");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("help"), &value));
bool help;
@@ -1007,9 +980,8 @@ TEST(Style, Verbosity) {
std::vector<std::string> argv;
argv.push_back("binaryname");
argv.push_back("-vvvvvv");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
for (std::string s = "vv"; s.length() <= 12; s.append("v")) {
@@ -1037,11 +1009,10 @@ TEST(INIConfigFile, Basic) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("default.conf");
- std::map<std::string, std::string> env_map;
parser.setConfig("default.conf", "port=5");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -1061,11 +1032,10 @@ TEST(INIConfigFile, Empty) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("default.conf");
- std::map<std::string, std::string> env_map;
parser.setConfig("default.conf", "");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
}
TEST(INIConfigFile, Override) {
@@ -1083,11 +1053,10 @@ TEST(INIConfigFile, Override) {
argv.push_back("default.conf");
argv.push_back("--port");
argv.push_back("6");
- std::map<std::string, std::string> env_map;
parser.setConfig("default.conf", "port=5");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -1109,11 +1078,10 @@ TEST(INIConfigFile, Comments) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("default.conf");
- std::map<std::string, std::string> env_map;
parser.setConfig("default.conf", "# port=5\nstr=NotCommented");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_NOT_OK(environment.get(moe::Key("port"), &value));
ASSERT_OK(environment.get(moe::Key("str"), &value));
@@ -1152,11 +1120,10 @@ TEST(INIConfigFile, Switches) {
argv.push_back("--config");
argv.push_back("default.conf");
argv.push_back("--switch1");
- std::map<std::string, std::string> env_map;
parser.setConfig("default.conf", "switch2=true\nswitch3=false\nswitch5=");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
bool switch1;
ASSERT_OK(environment.get(moe::Key("switch1"), &switch1));
ASSERT_TRUE(switch1);
@@ -1190,13 +1157,12 @@ TEST(INIConfigFile, Monkeys) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("default.conf");
- std::map<std::string, std::string> env_map;
parser.setConfig("default.conf",
"\t this = false \n#that = true\n #another = whocares"
"\n\n other = monkeys ");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("this"), &value));
bool thisValue;
@@ -1224,11 +1190,10 @@ TEST(INIConfigFile, DefaultValueOverride) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("default.conf");
- std::map<std::string, std::string> env_map;
parser.setConfig("default.conf", "port=6");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -1250,12 +1215,11 @@ TEST(INIConfigFile, StringVector) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.ini");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.ini", "multival = val1\nmultival = val2");
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("multival"), &value));
std::vector<std::string> multival;
std::vector<std::string>::iterator multivalit;
@@ -1280,7 +1244,6 @@ TEST(INIConfigFile, StringMap) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.ini");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.ini",
"multival = key1=value1\n"
@@ -1288,7 +1251,7 @@ TEST(INIConfigFile, StringMap) {
"multival = key3=");
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("multival"), &value));
std::map<std::string, std::string> multival;
std::map<std::string, std::string>::iterator multivalit;
@@ -1318,13 +1281,12 @@ TEST(INIConfigFile, StringMapDuplicateKey) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.ini");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.ini",
"multival = key1=value1\n"
"multival = key1=value2");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(JSONConfigFile, Basic) {
@@ -1340,11 +1302,10 @@ TEST(JSONConfigFile, Basic) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", "{ port : 5 }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -1364,11 +1325,10 @@ TEST(JSONConfigFile, Empty) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", "");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
}
TEST(JSONConfigFile, EmptyObject) {
@@ -1383,11 +1343,10 @@ TEST(JSONConfigFile, EmptyObject) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", "{}");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
}
TEST(JSONConfigFile, Override) {
@@ -1405,12 +1364,11 @@ TEST(JSONConfigFile, Override) {
argv.push_back("config.json");
argv.push_back("--port");
argv.push_back("6");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", "{ port : 5 }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -1430,11 +1388,10 @@ TEST(JSONConfigFile, UnregisteredOption) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", "{ port : 5 }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(JSONConfigFile, DuplicateOption) {
@@ -1450,11 +1407,10 @@ TEST(JSONConfigFile, DuplicateOption) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", "{ port : 5, port : 5 }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(JSONConfigFile, TypeChecking) {
@@ -1497,29 +1453,28 @@ TEST(JSONConfigFile, TypeChecking) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
// Test StringVector type
std::vector<std::string> stringVectorVal;
parser.setConfig("config.json", "{ stringVectorVal : \"scalar\" }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ stringVectorVal : \"true\" }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ stringVectorVal : \"5\" }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ stringVectorVal : [ [ \"string\" ], true, 1, 1.0 ] }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// The YAML parser treats everything as a string, so we just take anything that was
// specified as a string vector type and treat it as an array of strings, even if the
// elements are not surrounded by quotes
environment = moe::Environment();
parser.setConfig("config.json", "{ stringVectorVal : [ \"string\", bare, true, 1, 1.0 ] }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("stringVectorVal"), &value));
std::vector<std::string>::iterator stringVectorValIt;
ASSERT_OK(value.get(&stringVectorVal));
@@ -1538,25 +1493,25 @@ TEST(JSONConfigFile, TypeChecking) {
bool boolVal;
environment = moe::Environment();
parser.setConfig("config.json", "{ boolVal : \"lies\" }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ boolVal : truth }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ boolVal : 1 }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// The YAML parser treats everything as a string, so we just take anything that was
// specified as a bool type and try to convert it to a bool, even if it was quoted
environment = moe::Environment();
parser.setConfig("config.json", "{ boolVal : \"true\" }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("boolVal"), &value));
ASSERT_OK(value.get(&boolVal));
ASSERT_EQUALS(boolVal, true);
environment = moe::Environment();
parser.setConfig("config.json", "{ boolVal : false }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("boolVal"), &value));
ASSERT_OK(value.get(&boolVal));
ASSERT_EQUALS(boolVal, false);
@@ -1565,34 +1520,34 @@ TEST(JSONConfigFile, TypeChecking) {
double doubleVal;
environment = moe::Environment();
parser.setConfig("config.json", "{ doubleVal : \"double the monkeys\" }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ doubleVal : true }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// The YAML parser treats everything as a string, so we just take anything that was
// specified as a double type and try to convert it to a double, even if it was quoted
environment = moe::Environment();
parser.setConfig("config.json", "{ doubleVal : 1.5 }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("doubleVal"), &value));
ASSERT_OK(value.get(&doubleVal));
ASSERT_EQUALS(doubleVal, 1.5);
environment = moe::Environment();
parser.setConfig("config.json", "{ doubleVal : -1.5 }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("doubleVal"), &value));
ASSERT_OK(value.get(&doubleVal));
ASSERT_EQUALS(doubleVal, -1.5);
environment = moe::Environment();
parser.setConfig("config.json", "{ doubleVal : \"3.14\" }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("doubleVal"), &value));
ASSERT_OK(value.get(&doubleVal));
ASSERT_EQUALS(doubleVal, 3.14);
environment = moe::Environment();
parser.setConfig("config.json", "{ doubleVal : \"-3.14\" }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("doubleVal"), &value));
ASSERT_OK(value.get(&doubleVal));
ASSERT_EQUALS(doubleVal, -3.14);
@@ -1601,29 +1556,29 @@ TEST(JSONConfigFile, TypeChecking) {
int intVal;
environment = moe::Environment();
parser.setConfig("config.json", "{ intVal : \"hungry hippos\" }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ intVal : 1.5 }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ intVal : 18446744073709551617 }"); // 2^64 + 1
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ intVal : true }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// The YAML parser treats everything as a string, so we just take anything that was
// specified as an int type and try to convert it to a int, even if it was quoted
environment = moe::Environment();
parser.setConfig("config.json", "{ intVal : \"5\" }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("intVal"), &value));
ASSERT_OK(value.get(&intVal));
ASSERT_EQUALS(intVal, 5);
environment = moe::Environment();
parser.setConfig("config.json", "{ intVal : \"-5\" }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("intVal"), &value));
ASSERT_OK(value.get(&intVal));
ASSERT_EQUALS(intVal, -5);
@@ -1632,29 +1587,29 @@ TEST(JSONConfigFile, TypeChecking) {
long longVal;
environment = moe::Environment();
parser.setConfig("config.json", "{ longVal : \"in an eating race\" }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ longVal : 1.5 }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ longVal : 18446744073709551617 }"); // 2^64 + 1
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ longVal : true }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// The YAML parser treats everything as a string, so we just take anything that was
// specified as a long type and try to convert it to a long, even if it was quoted
environment = moe::Environment();
parser.setConfig("config.json", "{ longVal : \"5\" }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("longVal"), &value));
ASSERT_OK(value.get(&longVal));
ASSERT_EQUALS(longVal, 5);
environment = moe::Environment();
parser.setConfig("config.json", "{ longVal : \"-5\" }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("longVal"), &value));
ASSERT_OK(value.get(&longVal));
ASSERT_EQUALS(longVal, -5);
@@ -1667,28 +1622,28 @@ TEST(JSONConfigFile, TypeChecking) {
// surrounded by quotes
environment = moe::Environment();
parser.setConfig("config.json", "{ stringVal : }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("stringVal"), &value));
ASSERT_OK(value.get(&stringVal));
ASSERT_EQUALS(stringVal, "");
environment = moe::Environment();
parser.setConfig("config.json", "{ stringVal : \"1000\" }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("stringVal"), &value));
ASSERT_OK(value.get(&stringVal));
ASSERT_EQUALS(stringVal, "1000");
environment = moe::Environment();
parser.setConfig("config.json", "{ stringVal : wat man }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("stringVal"), &value));
ASSERT_OK(value.get(&stringVal));
ASSERT_EQUALS(stringVal, "wat man");
environment = moe::Environment();
parser.setConfig("config.json", "{ stringVal : true 1 string 1.0 }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("stringVal"), &value));
ASSERT_OK(value.get(&stringVal));
ASSERT_EQUALS(stringVal, "true 1 string 1.0");
@@ -1697,26 +1652,26 @@ TEST(JSONConfigFile, TypeChecking) {
unsigned long long unsignedLongLongVal;
environment = moe::Environment();
parser.setConfig("config.json", "{ unsignedLongLongVal : \"unsigned hungry hippos\" }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ unsignedLongLongVal : 1.5 }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ unsignedLongLongVal : 18446744073709551617 }"); // 2^64 + 1
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ unsignedLongLongVal : true }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ unsignedLongLongVal : \"-5\" }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// The YAML parser treats everything as a string, so we just take anything that was
// specified as an unsigned long long type and try to convert it to an unsigned long long,
// even if it was quoted
environment = moe::Environment();
parser.setConfig("config.json", "{ unsignedLongLongVal : \"5\" }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("unsignedLongLongVal"), &value));
ASSERT_OK(value.get(&unsignedLongLongVal));
ASSERT_EQUALS(unsignedLongLongVal, 5ULL);
@@ -1725,25 +1680,25 @@ TEST(JSONConfigFile, TypeChecking) {
unsigned unsignedVal;
environment = moe::Environment();
parser.setConfig("config.json", "{ unsignedVal : \"unsigned hungry hippos\" }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ unsignedVal : 1.5 }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ unsignedVal : 18446744073709551617 }"); // 2^64 + 1
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ unsignedVal : true }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ unsignedVal : \"-5\" }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// The YAML parser treats everything as a string, so we just take anything that was
// specified as an unsigned type and try to convert it to an unsigned, even if it was quoted
environment = moe::Environment();
parser.setConfig("config.json", "{ unsignedVal : \"5\" }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("unsignedVal"), &value));
ASSERT_OK(value.get(&unsignedVal));
ASSERT_EQUALS(unsignedVal, 5U);
@@ -1752,25 +1707,25 @@ TEST(JSONConfigFile, TypeChecking) {
bool switchVal;
environment = moe::Environment();
parser.setConfig("config.json", "{ switchVal : \"lies\" }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ switchVal : truth }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "{ switchVal : 1 }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// The YAML parser treats everything as a string, so we just take anything that was
// specified as a switch type and try to convert it to a bool, even if it was quoted
environment = moe::Environment();
parser.setConfig("config.json", "{ switchVal : \"true\" }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("switchVal"), &value));
ASSERT_OK(value.get(&switchVal));
ASSERT_EQUALS(switchVal, true);
environment = moe::Environment();
parser.setConfig("config.json", "{ switchVal : false }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("switchVal"), &switchVal));
ASSERT_FALSE(switchVal);
}
@@ -1788,11 +1743,10 @@ TEST(JSONConfigFile, Nested) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", "{ nested : { port : 5 } }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("nested.port"), &value));
int port;
@@ -1813,11 +1767,10 @@ TEST(JSONConfigFile, Dotted) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", "{ \"dotted.port\" : 5 }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("dotted.port"), &value));
int port;
@@ -1841,11 +1794,10 @@ TEST(JSONConfigFile, DottedAndNested) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", "{ \"dottednested.var1\" : 5, dottednested : { var2 : 6 } }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("dottednested.var1"), &value));
int var1;
@@ -1871,12 +1823,11 @@ TEST(JSONConfigFile, StringVector) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", "{ multival : [ \"val1\", \"val2\" ] }");
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("multival"), &value));
std::vector<std::string> multival;
std::vector<std::string>::iterator multivalit;
@@ -1901,13 +1852,12 @@ TEST(JSONConfigFile, StringMap) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json",
"{ multival : { key1 : \"value1\", key2 : \"value2\", key3 : \"\" } }");
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("multival"), &value));
std::map<std::string, std::string> multival;
std::map<std::string, std::string>::iterator multivalit;
@@ -1937,11 +1887,10 @@ TEST(JSONConfigFile, StringMapDuplicateKey) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", "{ multival : { key1 : \"value1\", key1 : \"value2\" } }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(JSONConfigFile, StringVectorNonString) {
@@ -1958,7 +1907,6 @@ TEST(JSONConfigFile, StringVectorNonString) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
// NOTE: The yaml config file just reads things as strings, and it's up to us to decide what
// the type should be later. This means that we can't tell the difference between when a
@@ -1966,7 +1914,7 @@ TEST(JSONConfigFile, StringVectorNonString) {
parser.setConfig("config.json", "{ multival : [ 1, true ] }");
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("multival"), &value));
std::vector<std::string> multival;
std::vector<std::string>::iterator multivalit;
@@ -1991,11 +1939,10 @@ TEST(JSONConfigFile, DefaultValueOverride) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", "{ port : 6 }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -2017,11 +1964,10 @@ TEST(Parsing, BadConfigFileOption) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("1");
- std::map<std::string, std::string> env_map;
parser.setConfig("default.conf", "");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(Parsing, MapForScalarMismatch) {
@@ -2037,11 +1983,10 @@ TEST(Parsing, MapForScalarMismatch) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", R"cfg({ str: { elem: "val" } })cfg");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(Parsing, ScalarForMapMismatch) {
@@ -2057,11 +2002,10 @@ TEST(Parsing, ScalarForMapMismatch) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", R"cfg({ str: "val" })cfg");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(Parsing, ListForScalarMismatch) {
@@ -2077,11 +2021,10 @@ TEST(Parsing, ListForScalarMismatch) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", R"cfg({ str: ["val"] })cfg");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(Parsing, ScalarForListMismatch) {
@@ -2098,11 +2041,10 @@ TEST(Parsing, ScalarForListMismatch) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", R"cfg({ str: "val" })cfg");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(ConfigFromFilesystem, JSONGood) {
@@ -2118,10 +2060,9 @@ TEST(ConfigFromFilesystem, JSONGood) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back(TEST_CONFIG_PATH("good.json"));
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
ASSERT_OK(value.get(&port));
@@ -2141,10 +2082,9 @@ TEST(ConfigFromFilesystem, INIGood) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back(TEST_CONFIG_PATH("good.conf"));
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
ASSERT_OK(value.get(&port));
@@ -2163,10 +2103,9 @@ TEST(ConfigFromFilesystem, Empty) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back(TEST_CONFIG_PATH("empty.json"));
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
}
TEST(ConfigFromFilesystem, Directory) {
@@ -2181,10 +2120,9 @@ TEST(ConfigFromFilesystem, Directory) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back(TEST_CONFIG_PATH(""));
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(ConfigFromFilesystem, NullByte) {
@@ -2201,10 +2139,9 @@ TEST(ConfigFromFilesystem, NullByte) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back(TEST_CONFIG_PATH("nullByte.conf"));
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(ConfigFromFilesystem, NullSubDir) {
@@ -2222,10 +2159,9 @@ TEST(ConfigFromFilesystem, NullSubDir) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back(TEST_CONFIG_PATH("dirNullByte.conf"));
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
@@ -2244,10 +2180,9 @@ TEST(ConfigFromFilesystem, NullTerminated) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back(TEST_CONFIG_PATH("endStringNull.conf"));
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(JSONConfigFile, ComposingStringVector) {
@@ -2275,12 +2210,11 @@ TEST(JSONConfigFile, ComposingStringVector) {
argv.push_back("val1");
argv.push_back("--setParameter");
argv.push_back("val2");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", "{ setParameter : [ \"val3\", \"val4\" ] }");
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("setParameter"), &value));
std::vector<std::string> setParameter;
std::vector<std::string>::iterator setParameterit;
@@ -2321,13 +2255,12 @@ TEST(JSONConfigFile, ComposingStringMap) {
argv.push_back("key1=value1");
argv.push_back("--setParameter");
argv.push_back("key2=value2");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json",
"{ setParameter : { key2 : \"overridden_value2\", key3 : \"value3\" } }");
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("setParameter"), &value));
std::map<std::string, std::string> setParameter;
std::map<std::string, std::string>::iterator setParameterIt;
@@ -2369,12 +2302,11 @@ TEST(INIConfigFile, ComposingStringVector) {
argv.push_back("val1");
argv.push_back("--setParameter");
argv.push_back("val2");
- std::map<std::string, std::string> env_map;
parser.setConfig("default.conf", "setParameter=val3\nsetParameter=val4");
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("setParameter"), &value));
std::vector<std::string> setParameter;
std::vector<std::string>::iterator setParameterit;
@@ -2415,12 +2347,11 @@ TEST(INIConfigFile, ComposingStringMap) {
argv.push_back("key1=value1");
argv.push_back("--setParameter");
argv.push_back("key2=value2");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.ini", "setParameter=key2=overridden_value2\nsetParameter=key3=value3");
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("setParameter"), &value));
std::map<std::string, std::string> setParameter;
std::map<std::string, std::string>::iterator setParameterIt;
@@ -2462,12 +2393,11 @@ TEST(YAMLConfigFile, ComposingStringVector) {
argv.push_back("val1");
argv.push_back("--setParameter");
argv.push_back("val2");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml", "setParameter : \n - \"val3\"\n - \"val4\"");
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("setParameter"), &value));
std::vector<std::string> setParameter;
std::vector<std::string>::iterator setParameterit;
@@ -2508,7 +2438,6 @@ TEST(YAMLConfigFile, ComposingStringMap) {
argv.push_back("key1=value1");
argv.push_back("--setParameter");
argv.push_back("key2=value2");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml",
// NOTE: Indentation is used to determine whether an option is in a sub
@@ -2517,7 +2446,7 @@ TEST(YAMLConfigFile, ComposingStringMap) {
"setParameter:\n key2: \"overridden_value2\"\n key3: \"value3\"");
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("setParameter"), &value));
std::map<std::string, std::string> setParameter;
std::map<std::string, std::string>::iterator setParameterIt;
@@ -2545,9 +2474,8 @@ TEST(LegacyInterface, Good) {
argv.push_back("binaryname");
argv.push_back("--port");
argv.push_back("5");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_TRUE(environment.count("port"));
try {
int port;
@@ -2567,9 +2495,8 @@ TEST(LegacyInterface, NotSpecified) {
std::vector<std::string> argv;
argv.push_back("binaryname");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_FALSE(environment.count("port"));
}
@@ -2584,9 +2511,8 @@ TEST(LegacyInterface, BadType) {
argv.push_back("binaryname");
argv.push_back("--port");
argv.push_back("5");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_TRUE(environment.count("port"));
std::string port;
try {
@@ -2831,10 +2757,9 @@ TEST(ChainingInterface, Positional) {
std::vector<std::string> argv;
argv.push_back("binaryname");
argv.push_back("positional");
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("positional"), &value));
std::string positional;
ASSERT_OK(value.get(&positional));
@@ -2855,10 +2780,9 @@ TEST(ChainingInterface, PositionalTooMany) {
argv.push_back("binaryname");
argv.push_back("positional");
argv.push_back("extrapositional");
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(ChainingInterface, PositionalAndFlag) {
@@ -2877,10 +2801,9 @@ TEST(ChainingInterface, PositionalAndFlag) {
argv.push_back("positional");
argv.push_back("--port");
argv.push_back("5");
- std::map<std::string, std::string> env_map;
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("positional"), &value));
std::string positional;
ASSERT_OK(value.get(&positional));
@@ -2905,9 +2828,8 @@ TEST(ChainingInterface, PositionalMultiple) {
argv.push_back("binaryname");
argv.push_back("positional1");
argv.push_back("positional2");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("positional"), &value));
std::vector<std::string> positional;
@@ -2933,9 +2855,8 @@ TEST(ChainingInterface, PositionalMultipleExtra) {
argv.push_back("positional1");
argv.push_back("positional2");
argv.push_back("positional2");
- std::map<std::string, std::string> env_map;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(ChainingInterface, PositionalMultipleUnlimited) {
@@ -2955,9 +2876,8 @@ TEST(ChainingInterface, PositionalMultipleUnlimited) {
argv.push_back("positional3");
argv.push_back("positional4");
argv.push_back("positional5");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("positional"), &value));
std::vector<std::string> positional;
@@ -2991,9 +2911,8 @@ TEST(ChainingInterface, PositionalMultipleAndFlag) {
argv.push_back("--port");
argv.push_back("5");
argv.push_back("positional2");
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("positional"), &value));
std::vector<std::string> positional;
@@ -3040,12 +2959,11 @@ TEST(ChainingInterface, PositionalSingleMultipleUnlimitedAndFlag) {
argv.push_back("positional7");
argv.push_back("positional8");
argv.push_back("positional9");
- std::map<std::string, std::string> env_map;
moe::Value value;
std::vector<std::string>::iterator positionalit;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("positional1"), &value));
std::string positionalSingle;
ASSERT_OK(value.get(&positionalSingle));
@@ -3098,9 +3016,8 @@ TEST(ChainingInterface, PositionalHoleInRange) {
std::vector<std::string> argv;
argv.push_back("binaryname");
- std::map<std::string, std::string> env_map;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(ChainingInterface, PositionalOverlappingRange) {
@@ -3120,9 +3037,8 @@ TEST(ChainingInterface, PositionalOverlappingRange) {
std::vector<std::string> argv;
argv.push_back("binaryname");
- std::map<std::string, std::string> env_map;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(ChainingInterface, PositionalOverlappingRangeInfinite) {
@@ -3142,9 +3058,8 @@ TEST(ChainingInterface, PositionalOverlappingRangeInfinite) {
std::vector<std::string> argv;
argv.push_back("binaryname");
- std::map<std::string, std::string> env_map;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(ChainingInterface, PositionalMultipleInfinite) {
@@ -3164,9 +3079,8 @@ TEST(ChainingInterface, PositionalMultipleInfinite) {
std::vector<std::string> argv;
argv.push_back("binaryname");
- std::map<std::string, std::string> env_map;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(OptionSources, SourceCommandLine) {
@@ -3174,7 +3088,6 @@ TEST(OptionSources, SourceCommandLine) {
moe::Environment environment;
moe::Value value;
std::vector<std::string> argv;
- std::map<std::string, std::string> env_map;
std::string parameter;
moe::OptionSection testOpts;
@@ -3190,7 +3103,7 @@ TEST(OptionSources, SourceCommandLine) {
argv.push_back("--parameter");
argv.push_back("allowed");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("parameter"), &value));
ASSERT_OK(value.get(&parameter));
ASSERT_EQUALS(parameter, "allowed");
@@ -3202,7 +3115,7 @@ TEST(OptionSources, SourceCommandLine) {
parser.setConfig("config.json", "{ parameter : \"disallowed\" }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
argv.clear();
argv.push_back("binaryname");
@@ -3211,7 +3124,7 @@ TEST(OptionSources, SourceCommandLine) {
parser.setConfig("config.ini", "parameter=disallowed");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(OptionSources, SourceINIConfig) {
@@ -3219,7 +3132,6 @@ TEST(OptionSources, SourceINIConfig) {
moe::Environment environment;
moe::Value value;
std::vector<std::string> argv;
- std::map<std::string, std::string> env_map;
std::string parameter;
moe::OptionSection testOpts;
@@ -3235,7 +3147,7 @@ TEST(OptionSources, SourceINIConfig) {
argv.push_back("--parameter");
argv.push_back("disallowed");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
argv.clear();
argv.push_back("binaryname");
@@ -3244,7 +3156,7 @@ TEST(OptionSources, SourceINIConfig) {
parser.setConfig("config.json", "{ parameter : \"disallowed\" }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
argv.clear();
argv.push_back("binaryname");
@@ -3253,7 +3165,7 @@ TEST(OptionSources, SourceINIConfig) {
parser.setConfig("config.ini", "parameter=allowed");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("parameter"), &value));
ASSERT_OK(value.get(&parameter));
ASSERT_EQUALS(parameter, "allowed");
@@ -3264,7 +3176,6 @@ TEST(OptionSources, SourceYAMLConfig) {
moe::Environment environment;
moe::Value value;
std::vector<std::string> argv;
- std::map<std::string, std::string> env_map;
std::string parameter;
moe::OptionSection testOpts;
@@ -3280,7 +3191,7 @@ TEST(OptionSources, SourceYAMLConfig) {
argv.push_back("--parameter");
argv.push_back("disallowed");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
argv.clear();
argv.push_back("binaryname");
@@ -3289,7 +3200,7 @@ TEST(OptionSources, SourceYAMLConfig) {
parser.setConfig("config.json", "{ parameter : \"allowed\" }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("parameter"), &value));
ASSERT_OK(value.get(&parameter));
ASSERT_EQUALS(parameter, "allowed");
@@ -3301,7 +3212,7 @@ TEST(OptionSources, SourceYAMLConfig) {
parser.setConfig("config.ini", "parameter=disallowed");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(OptionSources, SourceAllConfig) {
@@ -3309,7 +3220,6 @@ TEST(OptionSources, SourceAllConfig) {
moe::Environment environment;
moe::Value value;
std::vector<std::string> argv;
- std::map<std::string, std::string> env_map;
std::string parameter;
moe::OptionSection testOpts;
@@ -3325,7 +3235,7 @@ TEST(OptionSources, SourceAllConfig) {
argv.push_back("--parameter");
argv.push_back("disallowed");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
argv.clear();
argv.push_back("binaryname");
@@ -3334,7 +3244,7 @@ TEST(OptionSources, SourceAllConfig) {
parser.setConfig("config.json", "{ parameter : \"allowed\" }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("parameter"), &value));
ASSERT_OK(value.get(&parameter));
ASSERT_EQUALS(parameter, "allowed");
@@ -3346,7 +3256,7 @@ TEST(OptionSources, SourceAllConfig) {
parser.setConfig("config.ini", "parameter=allowed");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("parameter"), &value));
ASSERT_OK(value.get(&parameter));
ASSERT_EQUALS(parameter, "allowed");
@@ -3357,7 +3267,6 @@ TEST(OptionSources, SourceAllLegacy) {
moe::Environment environment;
moe::Value value;
std::vector<std::string> argv;
- std::map<std::string, std::string> env_map;
std::string parameter;
moe::OptionSection testOpts;
@@ -3373,7 +3282,7 @@ TEST(OptionSources, SourceAllLegacy) {
argv.push_back("--parameter");
argv.push_back("allowed");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("parameter"), &value));
ASSERT_OK(value.get(&parameter));
ASSERT_EQUALS(parameter, "allowed");
@@ -3385,7 +3294,7 @@ TEST(OptionSources, SourceAllLegacy) {
parser.setConfig("config.json", "{ parameter : \"disallowed\" }");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
argv.clear();
argv.push_back("binaryname");
@@ -3394,7 +3303,7 @@ TEST(OptionSources, SourceAllLegacy) {
parser.setConfig("config.ini", "parameter=allowed");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("parameter"), &value));
ASSERT_OK(value.get(&parameter));
ASSERT_EQUALS(parameter, "allowed");
@@ -3405,7 +3314,6 @@ TEST(OptionSources, SourceAll) {
moe::Environment environment;
moe::Value value;
std::vector<std::string> argv;
- std::map<std::string, std::string> env_map;
std::string parameter;
moe::OptionSection testOpts;
@@ -3421,7 +3329,7 @@ TEST(OptionSources, SourceAll) {
argv.push_back("--parameter");
argv.push_back("allowed");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("parameter"), &value));
ASSERT_OK(value.get(&parameter));
ASSERT_EQUALS(parameter, "allowed");
@@ -3433,7 +3341,7 @@ TEST(OptionSources, SourceAll) {
parser.setConfig("config.json", "{ parameter : \"allowed\" }");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("parameter"), &value));
ASSERT_OK(value.get(&parameter));
ASSERT_EQUALS(parameter, "allowed");
@@ -3445,7 +3353,7 @@ TEST(OptionSources, SourceAll) {
parser.setConfig("config.ini", "parameter=allowed");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("parameter"), &value));
ASSERT_OK(value.get(&parameter));
ASSERT_EQUALS(parameter, "allowed");
@@ -3456,7 +3364,6 @@ TEST(Constraints, MutuallyExclusiveConstraint) {
moe::Environment environment;
moe::Value value;
std::vector<std::string> argv;
- std::map<std::string, std::string> env_map;
moe::OptionSection testOpts;
testOpts
@@ -3471,7 +3378,7 @@ TEST(Constraints, MutuallyExclusiveConstraint) {
argv.push_back("--option1");
argv.push_back("--option2");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_NOT_OK(environment.validate());
environment = moe::Environment();
@@ -3479,7 +3386,7 @@ TEST(Constraints, MutuallyExclusiveConstraint) {
argv.push_back("binaryname");
argv.push_back("--option1");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.validate());
ASSERT_OK(environment.get(moe::Key("option1"), &value));
@@ -3488,7 +3395,7 @@ TEST(Constraints, MutuallyExclusiveConstraint) {
argv.push_back("binaryname");
argv.push_back("--option2");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.validate());
ASSERT_OK(environment.get(moe::Key("section.option2"), &value));
}
@@ -3498,7 +3405,6 @@ TEST(Constraints, RequiresOtherConstraint) {
moe::Environment environment;
moe::Value value;
std::vector<std::string> argv;
- std::map<std::string, std::string> env_map;
moe::OptionSection testOpts;
testOpts
@@ -3512,7 +3418,7 @@ TEST(Constraints, RequiresOtherConstraint) {
argv.push_back("binaryname");
argv.push_back("--option1");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_NOT_OK(environment.validate());
environment = moe::Environment();
@@ -3521,7 +3427,7 @@ TEST(Constraints, RequiresOtherConstraint) {
argv.push_back("--option1");
argv.push_back("--option2");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.validate());
ASSERT_OK(environment.get(moe::Key("option1"), &value));
ASSERT_OK(environment.get(moe::Key("section.option2"), &value));
@@ -3531,7 +3437,7 @@ TEST(Constraints, RequiresOtherConstraint) {
argv.push_back("binaryname");
argv.push_back("--option2");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.validate());
ASSERT_OK(environment.get(moe::Key("section.option2"), &value));
}
@@ -3549,11 +3455,10 @@ TEST(YAMLConfigFile, Basic) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml", "port: 5");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -3573,11 +3478,10 @@ TEST(YAMLConfigFile, Empty) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml", "");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
}
TEST(YAMLConfigFile, Override) {
@@ -3595,12 +3499,11 @@ TEST(YAMLConfigFile, Override) {
argv.push_back("config.yaml");
argv.push_back("--port");
argv.push_back("6");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml", "port: 5");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -3620,11 +3523,10 @@ TEST(YAMLConfigFile, UnregisteredOption) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml", "port: 5");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(YAMLConfigFile, DuplicateOption) {
@@ -3640,11 +3542,10 @@ TEST(YAMLConfigFile, DuplicateOption) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml", "port: 5\nport: 5");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(YAMLConfigFile, TypeChecking) {
@@ -3687,29 +3588,28 @@ TEST(YAMLConfigFile, TypeChecking) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
// Test StringVector type
std::vector<std::string> stringVectorVal;
parser.setConfig("config.json", "stringVectorVal : \"scalar\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "stringVectorVal : \"true\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "stringVectorVal : \"5\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "stringVectorVal : [ [ \"string\" ], true, 1, 1.0 ]");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// The YAML parser treats everything as a string, so we just take anything that was
// specified as a string vector type and treat it as an array of strings, even if the
// elements are not surrounded by quotes
environment = moe::Environment();
parser.setConfig("config.json", "stringVectorVal : [ \"string\", bare, true, 1, 1.0 ]");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("stringVectorVal"), &value));
std::vector<std::string>::iterator stringVectorValIt;
ASSERT_OK(value.get(&stringVectorVal));
@@ -3728,25 +3628,25 @@ TEST(YAMLConfigFile, TypeChecking) {
bool boolVal;
environment = moe::Environment();
parser.setConfig("config.json", "boolVal : \"lies\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "boolVal : truth");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "boolVal : 1");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// The YAML parser treats everything as a string, so we just take anything that was
// specified as a bool type and try to convert it to a bool, even if it was quoted
environment = moe::Environment();
parser.setConfig("config.json", "boolVal : \"true\"");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("boolVal"), &value));
ASSERT_OK(value.get(&boolVal));
ASSERT_EQUALS(boolVal, true);
environment = moe::Environment();
parser.setConfig("config.json", "boolVal : false");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("boolVal"), &value));
ASSERT_OK(value.get(&boolVal));
ASSERT_EQUALS(boolVal, false);
@@ -3755,34 +3655,34 @@ TEST(YAMLConfigFile, TypeChecking) {
double doubleVal;
environment = moe::Environment();
parser.setConfig("config.json", "doubleVal : \"double the monkeys\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "doubleVal : true");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// The YAML parser treats everything as a string, so we just take anything that was
// specified as a double type and try to convert it to a double, even if it was quoted
environment = moe::Environment();
parser.setConfig("config.json", "doubleVal : 1.5");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("doubleVal"), &value));
ASSERT_OK(value.get(&doubleVal));
ASSERT_EQUALS(doubleVal, 1.5);
environment = moe::Environment();
parser.setConfig("config.json", "doubleVal : -1.5");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("doubleVal"), &value));
ASSERT_OK(value.get(&doubleVal));
ASSERT_EQUALS(doubleVal, -1.5);
environment = moe::Environment();
parser.setConfig("config.json", "doubleVal : \"3.14\"");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("doubleVal"), &value));
ASSERT_OK(value.get(&doubleVal));
ASSERT_EQUALS(doubleVal, 3.14);
environment = moe::Environment();
parser.setConfig("config.json", "doubleVal : \"-3.14\"");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("doubleVal"), &value));
ASSERT_OK(value.get(&doubleVal));
ASSERT_EQUALS(doubleVal, -3.14);
@@ -3791,29 +3691,29 @@ TEST(YAMLConfigFile, TypeChecking) {
int intVal;
environment = moe::Environment();
parser.setConfig("config.json", "intVal : \"hungry hippos\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "intVal : 1.5");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "intVal : 18446744073709551617"); // 2^64 + 1
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "intVal : true");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// The YAML parser treats everything as a string, so we just take anything that was
// specified as an int type and try to convert it to a int, even if it was quoted
environment = moe::Environment();
parser.setConfig("config.json", "intVal : \"5\"");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("intVal"), &value));
ASSERT_OK(value.get(&intVal));
ASSERT_EQUALS(intVal, 5);
environment = moe::Environment();
parser.setConfig("config.json", "intVal : \"-5\"");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("intVal"), &value));
ASSERT_OK(value.get(&intVal));
ASSERT_EQUALS(intVal, -5);
@@ -3822,29 +3722,29 @@ TEST(YAMLConfigFile, TypeChecking) {
long longVal;
environment = moe::Environment();
parser.setConfig("config.json", "longVal : \"in an eating race\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "longVal : 1.5");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "longVal : 18446744073709551617"); // 2^64 + 1
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "longVal : true");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// The YAML parser treats everything as a string, so we just take anything that was
// specified as a long type and try to convert it to a long, even if it was quoted
environment = moe::Environment();
parser.setConfig("config.json", "longVal : \"5\"");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("longVal"), &value));
ASSERT_OK(value.get(&longVal));
ASSERT_EQUALS(longVal, 5);
environment = moe::Environment();
parser.setConfig("config.json", "longVal : \"-5\"");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("longVal"), &value));
ASSERT_OK(value.get(&longVal));
ASSERT_EQUALS(longVal, -5);
@@ -3857,28 +3757,28 @@ TEST(YAMLConfigFile, TypeChecking) {
// surrounded by quotes
environment = moe::Environment();
parser.setConfig("config.json", "stringVal :");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("stringVal"), &value));
ASSERT_OK(value.get(&stringVal));
ASSERT_EQUALS(stringVal, "");
environment = moe::Environment();
parser.setConfig("config.json", "stringVal : \"1000\"");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("stringVal"), &value));
ASSERT_OK(value.get(&stringVal));
ASSERT_EQUALS(stringVal, "1000");
environment = moe::Environment();
parser.setConfig("config.json", "stringVal : wat man");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("stringVal"), &value));
ASSERT_OK(value.get(&stringVal));
ASSERT_EQUALS(stringVal, "wat man");
environment = moe::Environment();
parser.setConfig("config.json", "stringVal : true 1 string 1.0");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("stringVal"), &value));
ASSERT_OK(value.get(&stringVal));
ASSERT_EQUALS(stringVal, "true 1 string 1.0");
@@ -3887,26 +3787,26 @@ TEST(YAMLConfigFile, TypeChecking) {
unsigned long long unsignedLongLongVal;
environment = moe::Environment();
parser.setConfig("config.json", "unsignedLongLongVal : \"unsigned hungry hippos\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "unsignedLongLongVal : 1.5");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "unsignedLongLongVal : 18446744073709551617"); // 2^64 + 1
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "unsignedLongLongVal : true");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "unsignedLongLongVal : \"-5\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// The YAML parser treats everything as a string, so we just take anything that was
// specified as an unsigned long long type and try to convert it to an unsigned long long,
// even if it was quoted
environment = moe::Environment();
parser.setConfig("config.json", "unsignedLongLongVal : \"5\"");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("unsignedLongLongVal"), &value));
ASSERT_OK(value.get(&unsignedLongLongVal));
ASSERT_EQUALS(unsignedLongLongVal, 5ULL);
@@ -3915,25 +3815,25 @@ TEST(YAMLConfigFile, TypeChecking) {
unsigned unsignedVal;
environment = moe::Environment();
parser.setConfig("config.json", "unsignedVal : \"unsigned hungry hippos\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "unsignedVal : 1.5");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "unsignedVal : 18446744073709551617"); // 2^64 + 1
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "unsignedVal : true");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "unsignedVal : \"-5\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// The YAML parser treats everything as a string, so we just take anything that was
// specified as an unsigned type and try to convert it to an unsigned, even if it was quoted
environment = moe::Environment();
parser.setConfig("config.json", "unsignedVal : \"5\"");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("unsignedVal"), &value));
ASSERT_OK(value.get(&unsignedVal));
ASSERT_EQUALS(unsignedVal, 5U);
@@ -3942,25 +3842,25 @@ TEST(YAMLConfigFile, TypeChecking) {
bool switchVal;
environment = moe::Environment();
parser.setConfig("config.json", "switchVal : \"lies\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "switchVal : truth");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
environment = moe::Environment();
parser.setConfig("config.json", "switchVal : 1");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// The YAML parser treats everything as a string, so we just take anything that was
// specified as a switch type and try to convert it to a bool, even if it was quoted
environment = moe::Environment();
parser.setConfig("config.json", "switchVal : \"true\"");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("switchVal"), &value));
ASSERT_OK(value.get(&switchVal));
ASSERT_EQUALS(switchVal, true);
environment = moe::Environment();
parser.setConfig("config.json", "switchVal : false");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("switchVal"), &switchVal));
ASSERT_FALSE(switchVal);
}
@@ -3978,11 +3878,10 @@ TEST(YAMLConfigFile, Nested) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml", "nested:\n port: 5");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("nested.port"), &value));
int port;
@@ -4003,11 +3902,10 @@ TEST(YAMLConfigFile, Dotted) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml", "dotted.port: 5");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("dotted.port"), &value));
int port;
@@ -4031,11 +3929,10 @@ TEST(YAMLConfigFile, DottedAndNested) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml", "dottednested.var1: 5\ndottednested:\n var2: 6");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("dottednested.var1"), &value));
int var1;
@@ -4064,11 +3961,10 @@ TEST(YAMLConfigFile, DeprecatedDottedNameDeprecatedOnly) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml", "dotted.deprecated: 6");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("dotted.canonical"), &value));
int var1;
@@ -4144,13 +4040,12 @@ TEST(YAMLConfigFile, DeprecatedDottedNameCanonicalAndDeprecated) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml",
"dotted.canonical: 5\n"
"dotted.deprecated: 6");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
// An option can have multiple deprecated dotted names.
@@ -4176,13 +4071,12 @@ TEST(YAMLConfigFile, DeprecatedDottedNameMultipleDeprecated) {
++i) {
OptionsParserTester parser;
moe::Environment environment;
- std::map<std::string, std::string> env_map;
::mongo::StringBuilder sb;
sb << *i << ": 6";
parser.setConfig("config.yaml", sb.str());
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("dotted.canonical"), &value));
int var1;
@@ -4197,13 +4091,12 @@ TEST(YAMLConfigFile, DeprecatedDottedNameMultipleDeprecated) {
{
OptionsParserTester parser;
moe::Environment environment;
- std::map<std::string, std::string> env_map;
std::stringstream ss;
ss << deprecatedDottedNames[0] << ": 6" << std::endl << deprecatedDottedNames[1] << ": 7";
parser.setConfig("config.yaml", ss.str());
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
}
@@ -4221,12 +4114,11 @@ TEST(YAMLConfigFile, ListBrackets) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml", "multival: [ \"val1\", \"val2\" ]");
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("multival"), &value));
std::vector<std::string> multival;
std::vector<std::string>::iterator multivalit;
@@ -4251,12 +4143,11 @@ TEST(YAMLConfigFile, ListDashes) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml", "multival:\n - \"val1\"\n - \"val2\"");
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("multival"), &value));
std::vector<std::string> multival;
std::vector<std::string>::iterator multivalit;
@@ -4281,11 +4172,10 @@ TEST(YAMLConfigFile, DefaultValueOverride) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml", "port: 6");
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
@@ -4307,14 +4197,13 @@ TEST(YAMLConfigFile, Comments) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml",
"# comment on port\nport: 5\n"
"# comment on host\nhost: localhost\n");
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("port"), &value));
int port;
ASSERT_OK(value.get(&port));
@@ -4338,11 +4227,10 @@ TEST(YAMLConfigFile, EmptyKey) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.yaml");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.yaml", ":");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(YAMLConfigFile, StringVector) {
@@ -4359,12 +4247,11 @@ TEST(YAMLConfigFile, StringVector) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json", "multival : [ \"val1\", \"val2\" ]");
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("multival"), &value));
std::vector<std::string> multival;
std::vector<std::string>::iterator multivalit;
@@ -4389,7 +4276,6 @@ TEST(YAMLConfigFile, StringMap) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json",
// NOTE: Indentation is used to determine whether an option is in a sub
@@ -4398,7 +4284,7 @@ TEST(YAMLConfigFile, StringMap) {
"multival : \n key1 : \"value1\"\n key2 : \"value2\"\n key3 : \"\"");
moe::Value value;
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("multival"), &value));
std::map<std::string, std::string> multival;
std::map<std::string, std::string>::iterator multivalit;
@@ -4428,7 +4314,6 @@ TEST(YAMLConfigFile, StringMapDuplicateKey) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back("config.json");
- std::map<std::string, std::string> env_map;
parser.setConfig("config.json",
// NOTE: Indentation is used to determine whether an option is in a sub
@@ -4437,7 +4322,7 @@ TEST(YAMLConfigFile, StringMapDuplicateKey) {
"multival : \n key1 : \"value1\"\n key1 : \"value2\"");
moe::Value value;
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
TEST(OptionCount, Basic) {
@@ -4467,7 +4352,6 @@ TEST(NumericalBaseParsing, CommandLine) {
moe::Environment environment;
moe::Value value;
std::vector<std::string> argv;
- std::map<std::string, std::string> env_map;
moe::OptionSection testOpts;
testOpts.addOptionChaining(
@@ -4490,31 +4374,31 @@ TEST(NumericalBaseParsing, CommandLine) {
argv.push_back("binaryname");
argv.push_back("--doubleVal");
argv.push_back("monkeys");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
argv = std::vector<std::string>();
argv.push_back("binaryname");
argv.push_back("--intVal");
argv.push_back("monkeys");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
argv = std::vector<std::string>();
argv.push_back("binaryname");
argv.push_back("--longVal");
argv.push_back("monkeys");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
argv = std::vector<std::string>();
argv.push_back("binaryname");
argv.push_back("--unsignedLongLongVal");
argv.push_back("monkeys");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
argv = std::vector<std::string>();
argv.push_back("binaryname");
argv.push_back("--unsignedVal");
argv.push_back("monkeys");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// Decimal values
argv = std::vector<std::string>();
@@ -4530,7 +4414,7 @@ TEST(NumericalBaseParsing, CommandLine) {
argv.push_back("--unsignedVal");
argv.push_back("16");
environment = moe::Environment();
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
double doubleVal;
int intVal;
@@ -4572,7 +4456,7 @@ TEST(NumericalBaseParsing, CommandLine) {
argv.push_back("--unsignedVal");
argv.push_back("020");
environment = moe::Environment();
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("doubleVal"), &value));
ASSERT_OK(value.get(&doubleVal));
@@ -4614,7 +4498,7 @@ TEST(NumericalBaseParsing, CommandLine) {
argv.push_back("--unsignedVal");
argv.push_back("0x10");
environment = moe::Environment();
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
#if !(defined(_WIN32) || defined(__sun))
// See SERVER-14131.
@@ -4645,7 +4529,6 @@ TEST(NumericalBaseParsing, INIConfigFile) {
moe::Environment environment;
moe::Value value;
std::vector<std::string> argv;
- std::map<std::string, std::string> env_map;
moe::OptionSection testOpts;
testOpts.addOptionChaining(
@@ -4672,19 +4555,19 @@ TEST(NumericalBaseParsing, INIConfigFile) {
argv.push_back("config.ini");
parser.setConfig("config.ini", "doubleVal=monkeys");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
parser.setConfig("config.ini", "intVal=monkeys");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
parser.setConfig("config.ini", "longVal=monkeys");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
parser.setConfig("config.ini", "unsignedLongLongVal=monkeys");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
parser.setConfig("config.ini", "unsignedVal=monkeys");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// Decimal values
argv = std::vector<std::string>();
@@ -4695,7 +4578,7 @@ TEST(NumericalBaseParsing, INIConfigFile) {
"doubleVal=16.1\nintVal=16\nlongVal=16\n"
"unsignedLongLongVal=16\nunsignedVal=16\n");
environment = moe::Environment();
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
double doubleVal;
int intVal;
@@ -4732,7 +4615,7 @@ TEST(NumericalBaseParsing, INIConfigFile) {
"doubleVal=020.1\nintVal=020\nlongVal=020\n"
"unsignedLongLongVal=020\nunsignedVal=020\n");
environment = moe::Environment();
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("doubleVal"), &value));
ASSERT_OK(value.get(&doubleVal));
@@ -4773,7 +4656,7 @@ TEST(NumericalBaseParsing, INIConfigFile) {
"unsignedLongLongVal=0x10\nunsignedVal=0x10\n");
#endif
environment = moe::Environment();
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
#if !(defined(_WIN32) || defined(__sun))
// See SERVER-14131.
@@ -4804,7 +4687,6 @@ TEST(NumericalBaseParsing, YAMLConfigFile) {
moe::Environment environment;
moe::Value value;
std::vector<std::string> argv;
- std::map<std::string, std::string> env_map;
moe::OptionSection testOpts;
testOpts.addOptionChaining(
@@ -4831,19 +4713,19 @@ TEST(NumericalBaseParsing, YAMLConfigFile) {
argv.push_back("config.yaml");
parser.setConfig("config.yaml", "doubleVal: \"monkeys\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
parser.setConfig("config.yaml", "intVal: \"monkeys\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
parser.setConfig("config.yaml", "longVal: \"monkeys\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
parser.setConfig("config.yaml", "unsignedLongLongVal: \"monkeys\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
parser.setConfig("config.yaml", "unsignedVal: \"monkeys\"");
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
// Decimal values
argv = std::vector<std::string>();
@@ -4854,7 +4736,7 @@ TEST(NumericalBaseParsing, YAMLConfigFile) {
"doubleVal: 16.1\nintVal: 16\nlongVal: 16\n"
"unsignedLongLongVal: 16\nunsignedVal: 16\n");
environment = moe::Environment();
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
double doubleVal;
int intVal;
@@ -4891,7 +4773,7 @@ TEST(NumericalBaseParsing, YAMLConfigFile) {
"doubleVal: 020.1\nintVal: 020\nlongVal: 020\n"
"unsignedLongLongVal: 020\nunsignedVal: 020\n");
environment = moe::Environment();
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
ASSERT_OK(environment.get(moe::Key("doubleVal"), &value));
ASSERT_OK(value.get(&doubleVal));
@@ -4932,7 +4814,7 @@ TEST(NumericalBaseParsing, YAMLConfigFile) {
"unsignedLongLongVal: 0x10\nunsignedVal: 0x10\n");
#endif
environment = moe::Environment();
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
#if !(defined(_WIN32) || defined(__sun))
// See SERVER-14131.
@@ -5000,9 +4882,8 @@ TEST(YAMLConfigFile, OutputConfig) {
"config.yaml",
};
- std::map<std::string, std::string> env_map;
moe::Environment env;
- ASSERT_OK(parser.run(options, argv, env_map, &env));
+ ASSERT_OK(parser.run(options, argv, &env));
ASSERT_EQ(env.toYAML(),
"cacheSize: 12345\n"
"command:\n"
@@ -5046,10 +4927,9 @@ void TestFile(std::vector<unsigned char> contents, bool valid) {
argv.push_back("binaryname");
argv.push_back("--config");
argv.push_back(p.generic_string());
- std::map<std::string, std::string> env_map;
if (valid) {
- ASSERT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_OK(parser.run(testOpts, argv, &environment));
moe::Value value;
ASSERT_OK(environment.get(moe::Key("port"), &value));
@@ -5057,7 +4937,7 @@ void TestFile(std::vector<unsigned char> contents, bool valid) {
ASSERT_OK(value.get(&port));
ASSERT_EQUALS(port, 1234);
} else {
- ASSERT_NOT_OK(parser.run(testOpts, argv, env_map, &environment));
+ ASSERT_NOT_OK(parser.run(testOpts, argv, &environment));
}
}
@@ -5093,8 +4973,7 @@ TEST(YAMLConfigFile, canonicalize) {
"binary",
"--bind_ip_all",
};
- std::map<std::string, std::string> env_map;
- ASSERT_OK(parser.run(opts, argv, env_map, &env));
+ ASSERT_OK(parser.run(opts, argv, &env));
ASSERT_TRUE(env.count("net.bindIp"));
ASSERT_FALSE(env.count("net.bindIpAll"));
ASSERT_EQ(env["net.bindIp"].as<std::string>(), "0.0.0.0");
diff --git a/src/mongo/util/text.cpp b/src/mongo/util/text.cpp
index dccd4d3fb49..7599b653ea8 100644
--- a/src/mongo/util/text.cpp
+++ b/src/mongo/util/text.cpp
@@ -287,55 +287,29 @@ bool writeUtf8ToWindowsConsole(const char* utf8String, unsigned int utf8StringSi
return true;
}
-WindowsCommandLine::WindowsCommandLine(int argc, wchar_t* argvW[], wchar_t* envpW[])
- : _argv(nullptr), _envp(nullptr) {
- // Construct UTF-8 copy of arguments
- std::vector<std::string> utf8args;
- std::vector<size_t> utf8argLength;
- size_t blockSize = argc * sizeof(char*);
- size_t blockPtr = blockSize;
- for (int i = 0; i < argc; ++i) {
- utf8args.push_back(toUtf8String(argvW[i]));
- size_t argLength = utf8args[i].length() + 1;
- utf8argLength.push_back(argLength);
- blockSize += argLength;
- }
- _argv = static_cast<char**>(mongoMalloc(blockSize));
- for (int i = 0; i < argc; ++i) {
- _argv[i] = reinterpret_cast<char*>(_argv) + blockPtr;
- strcpy_s(_argv[i], utf8argLength[i], utf8args[i].c_str());
- blockPtr += utf8argLength[i];
- }
- // Construct UTF-8 copy of environment strings
- size_t envCount = 0;
- wchar_t** envpWptr = &envpW[0];
- while (*envpWptr++) {
- ++envCount;
+class WindowsCommandLine::Impl {
+public:
+ Impl(int argc, wchar_t** argvW) : _strs(argc), _argv(argc + 1) {
+ for (int i = 0; i < argc; ++i)
+ _argv[i] = (_strs[i] = toUtf8String(argvW[i])).data();
}
- std::vector<std::string> utf8envs;
- std::vector<size_t> utf8envLength;
- blockSize = (envCount + 1) * sizeof(char*);
- blockPtr = blockSize;
- for (size_t i = 0; i < envCount; ++i) {
- utf8envs.push_back(toUtf8String(envpW[i]));
- size_t envLength = utf8envs[i].length() + 1;
- utf8envLength.push_back(envLength);
- blockSize += envLength;
- }
- _envp = static_cast<char**>(mongoMalloc(blockSize));
- size_t i;
- for (i = 0; i < envCount; ++i) {
- _envp[i] = reinterpret_cast<char*>(_envp) + blockPtr;
- strcpy_s(_envp[i], utf8envLength[i], utf8envs[i].c_str());
- blockPtr += utf8envLength[i];
+
+ char** argv() {
+ return _argv.data();
}
- _envp[i] = nullptr;
-}
-WindowsCommandLine::~WindowsCommandLine() {
- free(_argv);
- free(_envp);
+ std::vector<std::string> _strs; // utf8 encoded
+ std::vector<char*> _argv; // [_strs..., nullptr]
+};
+
+WindowsCommandLine::WindowsCommandLine(int argc, wchar_t** argvW)
+ : _impl{std::make_unique<Impl>(argc, argvW)} {}
+
+WindowsCommandLine::~WindowsCommandLine() = default;
+
+char** WindowsCommandLine::argv() const {
+ return _impl->argv();
}
#endif // #if defined(_WIN32)
diff --git a/src/mongo/util/text.h b/src/mongo/util/text.h
index 40493fa9d4f..e189194f538 100644
--- a/src/mongo/util/text.h
+++ b/src/mongo/util/text.h
@@ -93,20 +93,15 @@ inline std::wstring toNativeString(const char* s) {
#endif
class WindowsCommandLine {
- WindowsCommandLine(const WindowsCommandLine&) = delete;
- WindowsCommandLine& operator=(const WindowsCommandLine&) = delete;
- char** _argv;
- char** _envp;
-
public:
- WindowsCommandLine(int argc, wchar_t* argvW[], wchar_t* envpW[]);
+ WindowsCommandLine(int argc, wchar_t** argvW);
~WindowsCommandLine();
- char** argv(void) const {
- return _argv;
- };
- char** envp(void) const {
- return _envp;
- };
+
+ char** argv() const;
+
+private:
+ class Impl;
+ std::unique_ptr<Impl> _impl;
};
#endif // #if defined(_WIN32)