summaryrefslogtreecommitdiff
path: root/jstests/core/batch_write_command_insert.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:21 -0400
commit5253043325f42857efbb732b667ea8261ebcd4df (patch)
treef5088c3bf6a96ddcf0156f2a86a84b1ca4a16f93 /jstests/core/batch_write_command_insert.js
parent506431db2f82995ecd757820a6071449c628b9d5 (diff)
downloadmongo-5253043325f42857efbb732b667ea8261ebcd4df.tar.gz
SERVER-12819 Reject write cmds where batch size > maxWriteBatchSize
Diffstat (limited to 'jstests/core/batch_write_command_insert.js')
-rw-r--r--jstests/core/batch_write_command_insert.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/jstests/core/batch_write_command_insert.js b/jstests/core/batch_write_command_insert.js
index d792e9a5453..6b4ddbdab65 100644
--- a/jstests/core/batch_write_command_insert.js
+++ b/jstests/core/batch_write_command_insert.js
@@ -11,6 +11,9 @@ jsTest.log("Starting insert tests...");
var request;
var result;
+var batch;
+
+var maxWriteBatchSize = 1000;
function resultOK( result ) {
return result.ok &&
@@ -95,6 +98,31 @@ assert.eq(1, result.n);
assert.eq(coll.count(), 1);
//
+// Large batch under the size threshold should insert successfully
+coll.remove({});
+batch = [];
+for (var i = 0; i < maxWriteBatchSize; ++i) {
+ batch.push({});
+}
+printjson( request = {insert : coll.getName(), documents: batch, writeConcern:{w:1}, ordered:false} );
+printjson( result = coll.runCommand(request) );
+assert(resultOK(result));
+assert.eq(batch.length, result.n);
+assert.eq(coll.count(), batch.length);
+
+//
+// Large batch above the size threshold should fail to insert
+coll.remove({});
+batch = [];
+for (var i = 0; i < maxWriteBatchSize + 1; ++i) {
+ batch.push({});
+}
+printjson( request = {insert : coll.getName(), documents: batch, writeConcern:{w:1}, ordered:false} );
+printjson( result = coll.runCommand(request) );
+assert(resultNOK(result));
+assert.eq(coll.count(), 0);
+
+//
//
// Unique index tests
coll.remove({});