var baseName = "jstests_core_logging_options"; load('jstests/libs/command_line/test_parsed_options.js'); // Verbosity testing jsTest.log("Testing \"verbose\" command line option with no args"); var expectedResult = {"parsed": {"systemLog": {"verbosity": 1}}}; testGetCmdLineOptsMongod({verbose: ""}, expectedResult); jsTest.log("Testing \"verbose\" command line option with one \"v\""); var expectedResult = {"parsed": {"systemLog": {"verbosity": 1}}}; testGetCmdLineOptsMongod({verbose: "v"}, expectedResult); jsTest.log("Testing \"verbose\" command line option with two \"v\"s"); var expectedResult = {"parsed": {"systemLog": {"verbosity": 2}}}; testGetCmdLineOptsMongod({verbose: "vv"}, expectedResult); jsTest.log("Testing \"v\" command line option"); var expectedResult = {"parsed": {"systemLog": {"verbosity": 1}}}; // Currently the test converts "{ v : 1 }" to "-v" when it spawns the binary. testGetCmdLineOptsMongod({v: 1}, expectedResult); jsTest.log("Testing \"vv\" command line option"); var expectedResult = {"parsed": {"systemLog": {"verbosity": 2}}}; // Currently the test converts "{ v : 2 }" to "-vv" when it spawns the binary. testGetCmdLineOptsMongod({v: 2}, expectedResult); jsTest.log("Testing \"systemLog.verbosity\" config file option"); expectedResult = { "parsed": {"config": "jstests/libs/config_files/set_verbosity.json", "systemLog": {"verbosity": 5}} }; testGetCmdLineOptsMongod({config: "jstests/libs/config_files/set_verbosity.json"}, expectedResult); // log component verbosity jsTest.log("Testing \"systemLog.component.verbosity\" config file option"); expectedResult = { "parsed": { "config": "jstests/libs/config_files/set_component_verbosity.json", "systemLog": { "verbosity": 2, "component": { "accessControl": {"verbosity": 0}, "storage": {"verbosity": 3, "journal": {"verbosity": 5}} } } } }; testGetCmdLineOptsMongod({config: "jstests/libs/config_files/set_component_verbosity.json"}, expectedResult); // Log output testing var baseDir = MongoRunner.dataPath + baseName; var logDir = MongoRunner.dataPath + baseName + "/logs/"; // ensure log directory exists assert(mkdir(baseDir)); assert(mkdir(logDir)); jsTest.log("Testing \"logpath\" command line option"); var expectedResult = { "parsed": {"systemLog": {"destination": "file", "path": logDir + "/mylog.log"}} }; testGetCmdLineOptsMongod({logpath: logDir + "/mylog.log"}, expectedResult); jsTest.log("Testing with no explicit logging setting"); expectedResult = { "parsed": {} }; testGetCmdLineOptsMongod({}, expectedResult); resetDbpath(baseDir); print(baseName + " succeeded.");