summaryrefslogtreecommitdiff
path: root/jstests/core/apitest_dbcollection.js
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2015-01-09 16:51:06 -0500
committerBenety Goh <benety@mongodb.com>2015-01-15 11:01:58 -0500
commit14424674ca204de09b8f9b37fc007cbde81d1bc9 (patch)
tree4f666e7e50099cfcbd31c0501604a5913a663e0b /jstests/core/apitest_dbcollection.js
parent01b4c851c2392857bfb6ef1c47d704a0dbb3daa9 (diff)
downloadmongo-14424674ca204de09b8f9b37fc007cbde81d1bc9.tar.gz
SERVER-16782 fixed db.collection shell helper test to work with sharding passthrough test. also removed db.collection.clean() shell helper
Diffstat (limited to 'jstests/core/apitest_dbcollection.js')
-rw-r--r--jstests/core/apitest_dbcollection.js52
1 files changed, 37 insertions, 15 deletions
diff --git a/jstests/core/apitest_dbcollection.js b/jstests/core/apitest_dbcollection.js
index 0983b065477..22a837d2821 100644
--- a/jstests/core/apitest_dbcollection.js
+++ b/jstests/core/apitest_dbcollection.js
@@ -30,12 +30,6 @@ assert(db.getCollection( "test_db" ).count() == 101,6);
db.getCollection( "test_db" ).drop();
assert(db.getCollection( "test_db" ).count() == 0,7);
-/*
- * test clean (not sure... just be sure it doen't blow up, I guess
- */
-
- db.getCollection( "test_db" ).clean();
-
/*
* test validate
*/
@@ -46,16 +40,44 @@ assert(db.getCollection( "test_db" ).count() == 0,8);
for (i = 0; i < 100; i++) {
db.getCollection( "test_db" ).save({a:1});
}
-
-var v = db.getCollection( "test_db" ).validate();
-if( v.ns != "test.test_db" ) {
- print("Error: wrong ns name");
- print(tojson(v));
-}
-assert (v.ns == "test.test_db",9);
-assert (v.ok == 1,10);
-assert.eq(100,v.nrecords,11)
+(function() {
+ var validateResult = assert.commandWorked(db.getCollection( "test_db" ).validate());
+ // Extract validation results from mongos output if running in a sharded context.
+ if (jsTest.isMongos(db.getMongo())) {
+ // Sample mongos format:
+ // {
+ // raw: {
+ // "localhost:30000": {
+ // "ns" : "test.test_db",
+ // ...
+ // "valid": true,
+ // ...
+ // "ok": 1
+ // }
+ // },
+ // "valid": true,
+ // ...
+ // "ok": 1
+ // }
+
+ var numFields = 0;
+ var result = null;
+ for (var field in validateResult.raw) {
+ result = validateResult.raw[field];
+ numFields++;
+ }
+
+ assert.eq(1, numFields);
+ assert.neq(null, result);
+ validateResult = result;
+ }
+
+ assert.eq('test.test_db', validateResult.ns,
+ 'incorrect namespace in db.collection.validate() result: ' + tojson(validateResult));
+ assert(validateResult.valid, 'collection validation failed');
+ assert.eq(100, validateResult.nrecords, 11);
+}());
/*
* test deleteIndex, deleteIndexes