diff options
Diffstat (limited to 'jstests/core/write/update/updatej.js')
-rw-r--r-- | jstests/core/write/update/updatej.js | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/jstests/core/write/update/updatej.js b/jstests/core/write/update/updatej.js new file mode 100644 index 00000000000..bab2a32f45f --- /dev/null +++ b/jstests/core/write/update/updatej.js @@ -0,0 +1,16 @@ +// Test that update validation failure terminates the update without modifying subsequent +// documents. SERVER-4779 +// This test uses a multi-update, which is not retryable. The behavior it is testing is also not +// true of sharded clusters, since one shard may continue applying updates while the other +// encounters an error. +// @tags: [requires_multi_updates, requires_non_retryable_writes, assumes_unsharded_collection] + +t = db.jstests_updatej; +t.drop(); + +t.save({a: []}); +t.save({a: 1}); +t.save({a: []}); + +assert.writeError(t.update({}, {$push: {a: 2}}, false, true)); +assert.eq(1, t.count({a: 2})); |