diff options
author | Eddie Louie <eddie.louie@mongodb.com> | 2017-05-18 11:22:09 -0400 |
---|---|---|
committer | Eddie Louie <eddie.louie@mongodb.com> | 2017-06-07 14:36:31 -0400 |
commit | 103972cebb1cdfccbc76c2afd82c824ed02fc11c (patch) | |
tree | 3cdde8685b2e69f689ac85a600a41a17782b9482 /src/mongo | |
parent | f263fb42124c7ab01a98c462eca63de85873aa7a (diff) | |
download | mongo-103972cebb1cdfccbc76c2afd82c824ed02fc11c.tar.gz |
SERVER-28590 Invoke validate command on collections before shutting down mongod in JS tests
Diffstat (limited to 'src/mongo')
-rw-r--r-- | src/mongo/shell/servers.js | 11 | ||||
-rw-r--r-- | src/mongo/shell/utils.js | 4 |
2 files changed, 13 insertions, 2 deletions
diff --git a/src/mongo/shell/servers.js b/src/mongo/shell/servers.js index 16e3ec4ebc0..61d38ce33b9 100644 --- a/src/mongo/shell/servers.js +++ b/src/mongo/shell/servers.js @@ -827,6 +827,8 @@ var MongoRunner, _startMongod, startMongoProgram, runMongoProgram, startMongoPro MongoRunner.EXIT_UNCAUGHT = 100; // top level exception that wasn't caught MongoRunner.EXIT_TEST = 101; + MongoRunner.validateCollectionsCallback = function(port) {}; + /** * Kills a mongod process. * @@ -873,6 +875,13 @@ var MongoRunner, _startMongod, startMongoProgram, runMongoProgram, startMongoPro returnCode = serverExitCodeMap[pid]; delete serverExitCodeMap[pid]; } else { + // Invoke callback to validate collections and indexes before shutting down mongod. + // We skip calling the callback function when the expected return code of + // the mongod process is non-zero since it's likely the process has already exited. + if (allowedExitCode === MongoRunner.EXIT_CLEAN) { + MongoRunner.validateCollectionsCallback(port); + } + returnCode = _stopMongoProgram(port, signal, opts); } if (allowedExitCode !== returnCode) { @@ -1121,7 +1130,7 @@ var MongoRunner, _startMongod, startMongoProgram, runMongoProgram, startMongoPro /** * Start a mongo process with a particular argument array. * If we aren't waiting for connect, return {pid: <pid>}. - * If we are not waiting for connect: + * If we are waiting for connect: * returns connection to process on success; * otherwise returns null if we fail to connect. */ diff --git a/src/mongo/shell/utils.js b/src/mongo/shell/utils.js index 9794a60df4e..216217ed0b2 100644 --- a/src/mongo/shell/utils.js +++ b/src/mongo/shell/utils.js @@ -230,7 +230,9 @@ jsTestOptions = function() { networkMessageCompressors: TestData.networkMessageCompressors, skipValidationOnInvalidViewDefinitions: TestData.skipValidationOnInvalidViewDefinitions, forceValidationWithFeatureCompatibilityVersion: - TestData.forceValidationWithFeatureCompatibilityVersion + TestData.forceValidationWithFeatureCompatibilityVersion, + skipCollectionAndIndexValidation: TestData.skipCollectionAndIndexValidation, + skipValidationOnNamespaceNotFound: TestData.skipValidationOnNamespaceNotFound }); } return _jsTestOptions; |