summaryrefslogtreecommitdiff
path: root/src/mongo
diff options
context:
space:
mode:
authorEddie Louie <eddie.louie@mongodb.com>2017-05-18 11:22:09 -0400
committerEddie Louie <eddie.louie@mongodb.com>2017-06-07 14:36:31 -0400
commit103972cebb1cdfccbc76c2afd82c824ed02fc11c (patch)
tree3cdde8685b2e69f689ac85a600a41a17782b9482 /src/mongo
parentf263fb42124c7ab01a98c462eca63de85873aa7a (diff)
downloadmongo-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.js11
-rw-r--r--src/mongo/shell/utils.js4
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;