summaryrefslogtreecommitdiff
path: root/jstests/disk/validate_bson_inconsistency.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/disk/validate_bson_inconsistency.js')
-rw-r--r--jstests/disk/validate_bson_inconsistency.js29
1 files changed, 28 insertions, 1 deletions
diff --git a/jstests/disk/validate_bson_inconsistency.js b/jstests/disk/validate_bson_inconsistency.js
index 9de62f5e501..d29ae740f8c 100644
--- a/jstests/disk/validate_bson_inconsistency.js
+++ b/jstests/disk/validate_bson_inconsistency.js
@@ -34,8 +34,35 @@ resetDbpath(dbpath);
let res = assert.commandWorked(testColl.validate());
assert(res.valid, tojson(res));
- // TODO: Check the warnings that the documents with duplicate field names are detected.
+ MongoRunner.stopMongod(mongod, null, {skipValidation: true});
+})();
+(function validateDocumentsInvalidUUIDLength() {
+ let mongod = startMongodOnExistingPath(dbpath);
+ let db = mongod.getDB(baseName);
+ const collName = collNamePrefix + count++;
+ db.createCollection(collName);
+ let coll = db[collName];
+
+ jsTestLog(
+ "Checks that warnings are triggered when validating UUIDs that are either too short or too long.");
+ coll.insert({u: HexData(4, "deadbeefdeadbeefdeadbeefdeadbeef")});
+ coll.insert({u: HexData(4, "deadbeef")});
+ coll.insert({
+ u: HexData(
+ 4,
+ "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef")
+ });
+
+ let res = coll.validate({checkBSONConsistency: true});
+ assert(res.valid, tojson(res));
+ assert.eq(res.nNonCompliantDocuments, 2);
+ assert.eq(res.warnings.length, 1);
+
+ res = coll.validate({checkBSONConsistency: false});
+ assert(res.valid, tojson(res));
+ assert.eq(res.nNonCompliantDocuments, 2);
+ assert.eq(res.warnings.length, 1);
MongoRunner.stopMongod(mongod, null, {skipValidation: true});
})();