summaryrefslogtreecommitdiff
path: root/src/mongo/dbtests/framework_options.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/dbtests/framework_options.cpp')
-rw-r--r--src/mongo/dbtests/framework_options.cpp288
1 files changed, 143 insertions, 145 deletions
diff --git a/src/mongo/dbtests/framework_options.cpp b/src/mongo/dbtests/framework_options.cpp
index 2e8daff0aff..fcdd6e57317 100644
--- a/src/mongo/dbtests/framework_options.cpp
+++ b/src/mongo/dbtests/framework_options.cpp
@@ -46,197 +46,195 @@
namespace mongo {
- using std::cout;
- using std::endl;
- using std::string;
- using std::vector;
+using std::cout;
+using std::endl;
+using std::string;
+using std::vector;
- FrameworkGlobalParams frameworkGlobalParams;
+FrameworkGlobalParams frameworkGlobalParams;
- Status addTestFrameworkOptions(moe::OptionSection* options) {
+Status addTestFrameworkOptions(moe::OptionSection* options) {
+ options->addOptionChaining("help", "help,h", moe::Switch, "show this usage information");
- options->addOptionChaining("help", "help,h", moe::Switch, "show this usage information");
+ options->addOptionChaining(
+ "dbpath",
+ "dbpath",
+ moe::String,
+ "db data path for this test run. NOTE: the contents of this directory will "
+ "be overwritten if it already exists")
+ .setDefault(moe::Value(dbtests::default_test_dbpath));
- options->addOptionChaining("dbpath", "dbpath", moe::String,
- "db data path for this test run. NOTE: the contents of this directory will "
- "be overwritten if it already exists")
- .setDefault(moe::Value(dbtests::default_test_dbpath));
+ options->addOptionChaining("debug", "debug", moe::Switch, "run tests with verbose output");
- options->addOptionChaining("debug", "debug", moe::Switch, "run tests with verbose output");
+ options->addOptionChaining("list", "list,l", moe::Switch, "list available test suites");
- options->addOptionChaining("list", "list,l", moe::Switch, "list available test suites");
+ options->addOptionChaining("bigfiles",
+ "bigfiles",
+ moe::Switch,
+ "use big datafiles instead of smallfiles which is the default");
- options->addOptionChaining("bigfiles", "bigfiles", moe::Switch,
- "use big datafiles instead of smallfiles which is the default");
+ options->addOptionChaining(
+ "filter", "filter,f", moe::String, "string substring filter on test name");
- options->addOptionChaining("filter", "filter,f", moe::String,
- "string substring filter on test name");
+ options->addOptionChaining("verbose", "verbose,v", moe::Switch, "verbose");
- options->addOptionChaining("verbose", "verbose,v", moe::Switch, "verbose");
+ options->addOptionChaining(
+ "dur", "dur", moe::Switch, "enable journaling (currently the default)");
- options->addOptionChaining("dur", "dur", moe::Switch,
- "enable journaling (currently the default)");
+ options->addOptionChaining("nodur", "nodur", moe::Switch, "disable journaling");
- options->addOptionChaining("nodur", "nodur", moe::Switch, "disable journaling");
+ options->addOptionChaining("seed", "seed", moe::UnsignedLongLong, "random number seed");
- options->addOptionChaining("seed", "seed", moe::UnsignedLongLong, "random number seed");
+ options->addOptionChaining("runs", "runs", moe::Int, "number of times to run each test");
- options->addOptionChaining("runs", "runs", moe::Int, "number of times to run each test");
+ options->addOptionChaining(
+ "perfHist", "perfHist", moe::Unsigned, "number of back runs of perf stats to display");
- options->addOptionChaining("perfHist", "perfHist", moe::Unsigned,
- "number of back runs of perf stats to display");
+ options->addOptionChaining(
+ "storage.engine", "storageEngine", moe::String, "what storage engine to use")
+ .setDefault(moe::Value(std::string("wiredTiger")));
- options->addOptionChaining("storage.engine", "storageEngine", moe::String,
- "what storage engine to use")
- .setDefault(moe::Value(std::string("wiredTiger")));
+ options->addOptionChaining("suites", "suites", moe::StringVector, "test suites to run")
+ .hidden()
+ .positional(1, -1);
- options->addOptionChaining("suites", "suites", moe::StringVector, "test suites to run")
- .hidden()
- .positional(1, -1);
+ options->addOptionChaining(
+ "nopreallocj", "nopreallocj", moe::Switch, "disable journal prealloc").hidden();
- options->addOptionChaining("nopreallocj", "nopreallocj", moe::Switch,
- "disable journal prealloc")
- .hidden();
+ return Status::OK();
+}
- return Status::OK();
- }
+std::string getTestFrameworkHelp(StringData name, const moe::OptionSection& options) {
+ StringBuilder sb;
+ sb << "usage: " << name << " [options] [suite]...\n" << options.helpString()
+ << "suite: run the specified test suite(s) only\n";
+ return sb.str();
+}
- std::string getTestFrameworkHelp(StringData name, const moe::OptionSection& options) {
- StringBuilder sb;
- sb << "usage: " << name << " [options] [suite]...\n"
- << options.helpString() << "suite: run the specified test suite(s) only\n";
- return sb.str();
+bool handlePreValidationTestFrameworkOptions(const moe::Environment& params,
+ const std::vector<std::string>& args) {
+ if (params.count("help")) {
+ std::cout << getTestFrameworkHelp(args[0], moe::startupOptions) << std::endl;
+ return false;
}
- bool handlePreValidationTestFrameworkOptions(const moe::Environment& params,
- const std::vector<std::string>& args) {
- if (params.count("help")) {
- std::cout << getTestFrameworkHelp(args[0], moe::startupOptions) << std::endl;
- return false;
+ if (params.count("list")) {
+ std::vector<std::string> suiteNames = mongo::unittest::getAllSuiteNames();
+ for (std::vector<std::string>::const_iterator i = suiteNames.begin(); i != suiteNames.end();
+ ++i) {
+ std::cout << *i << std::endl;
}
+ return false;
+ }
- if (params.count("list")) {
- std::vector<std::string> suiteNames = mongo::unittest::getAllSuiteNames();
- for ( std::vector<std::string>::const_iterator i = suiteNames.begin();
- i != suiteNames.end(); ++i ) {
-
- std::cout << *i << std::endl;
- }
- return false;
- }
+ return true;
+}
- return true;
+Status storeTestFrameworkOptions(const moe::Environment& params,
+ const std::vector<std::string>& args) {
+ if (params.count("dbpath")) {
+ frameworkGlobalParams.dbpathSpec = params["dbpath"].as<string>();
}
- Status storeTestFrameworkOptions(const moe::Environment& params,
- const std::vector<std::string>& args) {
-
- if (params.count("dbpath")) {
- frameworkGlobalParams.dbpathSpec = params["dbpath"].as<string>();
- }
+ if (params.count("seed")) {
+ frameworkGlobalParams.seed = params["seed"].as<unsigned long long>();
+ }
- if (params.count("seed")) {
- frameworkGlobalParams.seed = params["seed"].as<unsigned long long>();
- }
+ if (params.count("runs")) {
+ frameworkGlobalParams.runsPerTest = params["runs"].as<int>();
+ }
- if (params.count("runs")) {
- frameworkGlobalParams.runsPerTest = params["runs"].as<int>();
- }
+ if (params.count("perfHist")) {
+ frameworkGlobalParams.perfHist = params["perfHist"].as<unsigned>();
+ }
- if (params.count("perfHist")) {
- frameworkGlobalParams.perfHist = params["perfHist"].as<unsigned>();
- }
+ bool nodur = false;
+ if (params.count("nodur")) {
+ nodur = true;
+ storageGlobalParams.dur = false;
+ }
+ if (params.count("dur") || storageGlobalParams.dur) {
+ storageGlobalParams.dur = true;
+ }
- bool nodur = false;
- if( params.count("nodur") ) {
- nodur = true;
- storageGlobalParams.dur = false;
- }
- if( params.count("dur") || storageGlobalParams.dur ) {
- storageGlobalParams.dur = true;
- }
+ if (params.count("nopreallocj")) {
+ mmapv1GlobalOptions.preallocj = false;
+ }
- if( params.count("nopreallocj") ) {
- mmapv1GlobalOptions.preallocj = false;
- }
+ if (params.count("debug") || params.count("verbose")) {
+ logger::globalLogDomain()->setMinimumLoggedSeverity(logger::LogSeverity::Debug(1));
+ }
- if (params.count("debug") || params.count("verbose") ) {
- logger::globalLogDomain()->setMinimumLoggedSeverity(logger::LogSeverity::Debug(1));
- }
+ boost::filesystem::path p(frameworkGlobalParams.dbpathSpec);
- boost::filesystem::path p(frameworkGlobalParams.dbpathSpec);
-
- /* remove the contents of the test directory if it exists. */
- try {
- if (boost::filesystem::exists(p)) {
- if (!boost::filesystem::is_directory(p)) {
- StringBuilder sb;
- sb << "ERROR: path \"" << p.string() << "\" is not a directory";
- sb << getTestFrameworkHelp(args[0], moe::startupOptions);
- return Status(ErrorCodes::BadValue, sb.str());
- }
- boost::filesystem::directory_iterator end_iter;
- for (boost::filesystem::directory_iterator dir_iter(p);
- dir_iter != end_iter; ++dir_iter) {
- boost::filesystem::remove_all(*dir_iter);
- }
+ /* remove the contents of the test directory if it exists. */
+ try {
+ if (boost::filesystem::exists(p)) {
+ if (!boost::filesystem::is_directory(p)) {
+ StringBuilder sb;
+ sb << "ERROR: path \"" << p.string() << "\" is not a directory";
+ sb << getTestFrameworkHelp(args[0], moe::startupOptions);
+ return Status(ErrorCodes::BadValue, sb.str());
}
- else {
- boost::filesystem::create_directory(p);
+ boost::filesystem::directory_iterator end_iter;
+ for (boost::filesystem::directory_iterator dir_iter(p); dir_iter != end_iter;
+ ++dir_iter) {
+ boost::filesystem::remove_all(*dir_iter);
}
+ } else {
+ boost::filesystem::create_directory(p);
}
- catch (const boost::filesystem::filesystem_error& e) {
- StringBuilder sb;
- sb << "boost::filesystem threw exception: " << e.what();
- return Status(ErrorCodes::BadValue, sb.str());
- }
-
- string dbpathString = p.string();
- storageGlobalParams.dbpath = dbpathString.c_str();
+ } catch (const boost::filesystem::filesystem_error& e) {
+ StringBuilder sb;
+ sb << "boost::filesystem threw exception: " << e.what();
+ return Status(ErrorCodes::BadValue, sb.str());
+ }
- mmapv1GlobalOptions.prealloc = false;
+ string dbpathString = p.string();
+ storageGlobalParams.dbpath = dbpathString.c_str();
- // dbtest defaults to smallfiles
- mmapv1GlobalOptions.smallfiles = true;
- if( params.count("bigfiles") ) {
- storageGlobalParams.dur = true;
- }
+ mmapv1GlobalOptions.prealloc = false;
- DEV log() << "DEBUG build" << endl;
- if( sizeof(void*)==4 )
- log() << "32bit" << endl;
- log() << "random seed: " << frameworkGlobalParams.seed << endl;
-
- if( time(0) % 3 == 0 && !nodur ) {
- if (!storageGlobalParams.dur) {
- storageGlobalParams.dur = true;
- log() << "****************" << endl;
- log() << "running with journaling enabled to test that. dbtests will do this "
- << "occasionally even if --dur is not specified." << endl;
- log() << "****************" << endl;
- }
- }
+ // dbtest defaults to smallfiles
+ mmapv1GlobalOptions.smallfiles = true;
+ if (params.count("bigfiles")) {
+ storageGlobalParams.dur = true;
+ }
- storageGlobalParams.engine = params["storage.engine"].as<string>();
+ DEV log() << "DEBUG build" << endl;
+ if (sizeof(void*) == 4)
+ log() << "32bit" << endl;
+ log() << "random seed: " << frameworkGlobalParams.seed << endl;
- if (params.count("suites")) {
- frameworkGlobalParams.suites = params["suites"].as< vector<string> >();
+ if (time(0) % 3 == 0 && !nodur) {
+ if (!storageGlobalParams.dur) {
+ storageGlobalParams.dur = true;
+ log() << "****************" << endl;
+ log() << "running with journaling enabled to test that. dbtests will do this "
+ << "occasionally even if --dur is not specified." << endl;
+ log() << "****************" << endl;
}
+ }
- frameworkGlobalParams.filter = "";
- if ( params.count( "filter" ) ) {
- frameworkGlobalParams.filter = params["filter"].as<string>();
- }
+ storageGlobalParams.engine = params["storage.engine"].as<string>();
- if (kDebugBuild && storageGlobalParams.dur) {
- log() << "Debug Build: automatically enabling mmapv1GlobalOptions.journalOptions=8 "
- << "(JournalParanoid)" << endl;
- // this was commented out. why too slow or something?
- mmapv1GlobalOptions.journalOptions |= MMAPV1Options::JournalParanoid;
- }
+ if (params.count("suites")) {
+ frameworkGlobalParams.suites = params["suites"].as<vector<string>>();
+ }
- return Status::OK();
+ frameworkGlobalParams.filter = "";
+ if (params.count("filter")) {
+ frameworkGlobalParams.filter = params["filter"].as<string>();
}
+ if (kDebugBuild && storageGlobalParams.dur) {
+ log() << "Debug Build: automatically enabling mmapv1GlobalOptions.journalOptions=8 "
+ << "(JournalParanoid)" << endl;
+ // this was commented out. why too slow or something?
+ mmapv1GlobalOptions.journalOptions |= MMAPV1Options::JournalParanoid;
+ }
+
+ return Status::OK();
+}
}