diff options
author | Jason Rassi <rassi@10gen.com> | 2014-03-13 00:46:39 -0400 |
---|---|---|
committer | Jason Rassi <rassi@10gen.com> | 2014-03-13 00:50:21 -0400 |
commit | 5253043325f42857efbb732b667ea8261ebcd4df (patch) | |
tree | f5088c3bf6a96ddcf0156f2a86a84b1ca4a16f93 /jstests/core/batch_write_command_insert.js | |
parent | 506431db2f82995ecd757820a6071449c628b9d5 (diff) | |
download | mongo-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.js | 28 |
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({}); |