summaryrefslogtreecommitdiff
path: root/jstests/core/batch_write_command_delete.js
diff options
context:
space:
mode:
authorJason Rassi <rassi@10gen.com>2014-03-13 00:46:39 -0400
committerJason Rassi <rassi@10gen.com>2014-03-13 00:50:55 -0400
commitd66bf3e0a6d28d0cb7ad9cc485237a67b37e008e (patch)
tree10a34e2eb7721656bfe7e5528bf15991423a8116 /jstests/core/batch_write_command_delete.js
parentc59b877cb901fea2882dc62e6ec7ac85d5c96b46 (diff)
downloadmongo-d66bf3e0a6d28d0cb7ad9cc485237a67b37e008e.tar.gz
SERVER-12819 Reject write cmds where batch size > maxWriteBatchSize
Diffstat (limited to 'jstests/core/batch_write_command_delete.js')
-rw-r--r--jstests/core/batch_write_command_delete.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/jstests/core/batch_write_command_delete.js b/jstests/core/batch_write_command_delete.js
index 335633e47d7..ec960e64741 100644
--- a/jstests/core/batch_write_command_delete.js
+++ b/jstests/core/batch_write_command_delete.js
@@ -11,6 +11,9 @@ jsTest.log("Starting delete tests...");
var request;
var result;
+var batch;
+
+var maxWriteBatchSize = 1000;
function resultOK( result ) {
return result.ok &&
@@ -103,6 +106,39 @@ assert.eq(2, result.n);
assert.eq(0, coll.count());
//
+// Large batch under the size threshold should delete successfully
+coll.remove({});
+batch = [];
+for (var i = 0; i < maxWriteBatchSize; ++i) {
+ coll.insert({a:i});
+ batch.push({q:{a:i}, limit: 0});
+}
+printjson( request = {'delete' : coll.getName(),
+ deletes: batch,
+ writeConcern:{w:1},
+ ordered: false} );
+printjson( result = coll.runCommand(request) );
+assert(resultOK(result));
+assert.eq(batch.length, result.n);
+assert.eq(0, coll.count());
+
+//
+// Large batch above the size threshold should fail to delete
+coll.remove({});
+batch = [];
+for (var i = 0; i < maxWriteBatchSize + 1; ++i) {
+ coll.insert({a:i});
+ batch.push({q:{a:i}, limit: 0});
+}
+printjson( request = {'delete' : coll.getName(),
+ deletes: batch,
+ writeConcern:{w:1},
+ ordered: false} );
+printjson( result = coll.runCommand(request) );
+assert(resultNOK(result));
+assert.eq(batch.length, coll.count());
+
+//
// Cause remove error using ordered:true
coll.remove({});
coll.insert({a:1});