diff options
author | Randolph Tan <randolph@10gen.com> | 2014-03-03 11:27:18 -0500 |
---|---|---|
committer | Randolph Tan <randolph@10gen.com> | 2014-03-14 12:05:05 -0400 |
commit | eb41492c6f1228077b92239524e4a607b70cd8e3 (patch) | |
tree | c90485d43753aa756063d0a6e8f67b8843931bba /jstests/replsets/oplog_format.js | |
parent | e44682821c37fdf3d4fd8cb58dcf5c34181ddbde (diff) | |
download | mongo-eb41492c6f1228077b92239524e4a607b70cd8e3.tar.gz |
SERVER-13190 migrate replset jstest suite to use write commands api
Diffstat (limited to 'jstests/replsets/oplog_format.js')
-rw-r--r-- | jstests/replsets/oplog_format.js | 114 |
1 files changed, 45 insertions, 69 deletions
diff --git a/jstests/replsets/oplog_format.js b/jstests/replsets/oplog_format.js index a1054256af3..c07d4f66cef 100644 --- a/jstests/replsets/oplog_format.js +++ b/jstests/replsets/oplog_format.js @@ -34,40 +34,32 @@ assertLastOplog({_id:1}, null, "save -- setup "); var msg = "IncRewriteExistingField: $inc $set" coll.save({_id:1, a:2}); assertLastOplog({_id:1, a:2}, {_id:1}, "save " + msg); -coll.update({}, {$inc:{a:1}, $set:{b:2}}); -var gle = cdb.getLastErrorObj(); -assert.isnull(gle.err, msg); -assert.eq(gle.n, 1, "update failed for '" + msg +"': "+ tojson(gle)); +var res = assert.writeOK(coll.update({}, { $inc: { a: 1 }, $set: { b: 2 }})); +assert.eq(res.nModified, 1, "update failed for '" + msg + "': " + res.toString()); assert.docEq({_id:1, a:3, b:2}, coll.findOne({}), msg); assertLastOplog({$set:{a:3, b:2}}, {_id:1}, msg); var msg = "IncRewriteNonExistingField: $inc $set" coll.save({_id:1, c:0}); assertLastOplog({_id:1, c:0}, {_id:1}, "save " + msg); -coll.update({}, {$inc:{a:1}, $set:{b:2}}); -var gle = cdb.getLastErrorObj(); -assert.isnull(gle.err, msg); -assert.eq(gle.n, 1, "update failed for '" + msg +"': "+ tojson(gle)); +res = assert.writeOK(coll.update({}, { $inc: { a: 1 }, $set: { b: 2 }})); +assert.eq(res.nModified, 1, "update failed for '" + msg + "': " + res.toString()); assert.docEq({_id:1, c:0, a:1, b:2}, coll.findOne({}), msg); assertLastOplog({$set:{a:1, b:2}}, {_id:1}, msg); var msg = "TwoNestedPulls: two $pull" coll.save({_id:1, a:{ b:[ 1, 2 ], c:[ 1, 2 ] }}); assertLastOplog({_id:1, a:{ b:[ 1, 2 ], c:[ 1, 2 ] }}, {_id:1}, "save " + msg); -coll.update({}, {$pull:{ 'a.b':2, 'a.c':2 }}); -var gle = cdb.getLastErrorObj(); -assert.isnull(gle.err, msg); -assert.eq(gle.n, 1, "update failed for '" + msg +"': "+ tojson(gle)); +res = assert.writeOK(coll.update({}, { $pull: { 'a.b': 2, 'a.c': 2 }})); +assert.eq(res.nModified, 1, "update failed for '" + msg + "': " + res.toString()); assert.docEq({_id:1, a:{ b:[ 1 ], c:[ 1 ] }}, coll.findOne({}), msg); assertLastOplog({$set:{'a.b':[1], 'a.c':[1]}}, {_id:1}, msg); var msg = "MultiSets: two $set" coll.save({_id:1, a:1, b:1}); assertLastOplog({_id:1, a:1, b:1}, {_id:1}, "save " + msg); -coll.update({}, {$set: {a:2, b:2}}); -var gle = cdb.getLastErrorObj(); -assert.isnull(gle.err, msg); -assert.eq(gle.n, 1, "update failed for '" + msg +"': "+ tojson(gle)); +res = assert.writeOK(coll.update({}, { $set: { a: 2, b: 2 }})); +assert.eq(res.nModified, 1, "update failed for '" + msg + "': " + res.toString()); assert.docEq({_id:1, a:2, b:2}, coll.findOne({}), msg); assertLastOplog({$set:{a:2, b:2}}, {_id:1}, msg); @@ -76,48 +68,37 @@ assertLastOplog({$set:{a:2, b:2}}, {_id:1}, msg); var msg = "bad single $set" coll.save({_id:1, a:1}); assertLastOplog({_id:1, a:1}, {_id:1}, "save " + msg); -coll.update({}, {$set:{a:2}}); -var gle = cdb.getLastErrorObj(); -assert.isnull(gle.err, msg); -assert.eq(gle.n, 1, "update failed for '" + msg +"': "+ tojson(gle)); +res = assert.writeOK(coll.update({}, { $set: { a: 2 }})); +assert.eq(res.nModified, 1, "update failed for '" + msg + "': " + res.toString()); assert.docEq({_id:1, a:2}, coll.findOne({}), msg); assertLastOplog({$set:{a:2}}, {_id:1}, msg); var msg = "bad single $inc"; -coll.update({}, {$inc:{a:1}}); -var gle = cdb.getLastErrorObj(); -assert.isnull(gle.err, msg); -assert.eq(gle.n, 1, "update failed for '" + msg +"': "+ tojson(gle)); +res = assert.writeOK(coll.update({}, { $inc: { a: 1 }})); +assert.eq(res.nModified, 1, "update failed for '" + msg + "': " + res.toString()); assert.docEq({_id:1, a:3}, coll.findOne({}), msg); assertLastOplog({$set:{a:3}}, {_id:1}, msg); var msg = "bad double $set"; -coll.update({}, {$set:{a:2, b:2}}); -var gle = cdb.getLastErrorObj(); -assert.isnull(gle.err, msg); -assert.eq(gle.n, 1, "update failed for '" + msg +"': "+ tojson(gle)); +res = assert.writeOK(coll.update({}, { $set: { a: 2, b: 2 }})); +assert.eq(res.nModified, 1, "update failed for '" + msg + "': " + res.toString()); assert.docEq({_id:1, a:2, b:2}, coll.findOne({}), msg); assertLastOplog({$set:{a:2, b:2}}, {_id:1}, msg); var msg = "bad save"; -coll.save({_id:1, a:[2]}); -assert.isnull(gle.err, msg); +assert.writeOK(coll.save({ _id: 1, a: [2] })); assert.docEq({_id:1, a:[2]}, coll.findOne({}), msg); assertLastOplog({_id:1, a:[2]}, {_id:1}, msg); var msg = "bad array $inc"; -coll.update({}, {$inc:{"a.0":1}}); -var gle = cdb.getLastErrorObj(); -assert.isnull(gle.err, msg); -assert.eq(gle.n, 1, "update failed for '" + msg +"': "+ tojson(gle)); +res = assert.writeOK(coll.update({}, { $inc: { "a.0": 1 }})); +assert.eq(res.nModified, 1, "update failed for '" + msg + "': " + res.toString()); assert.docEq({_id:1, a:[3]}, coll.findOne({}), msg); var lastTS = assertLastOplog({$set:{"a.0": 3}}, {_id:1}, msg); var msg = "bad $setOnInsert"; -coll.update({}, {$setOnInsert:{"a":-1}}); -var gle = cdb.getLastErrorObj(); -assert.isnull(gle.err, msg); -assert.eq(gle.n, 1, "update failed for '" + msg +"': "+ tojson(gle)); +res = assert.writeOK(coll.update({}, { $setOnInsert: { a: -1 }})); +assert.eq(res.nMatched, 1, "update failed for '" + msg + "': " + res.toString()); assert.docEq({_id:1, a:[3]}, coll.findOne({}), msg); // No-op var otherTS = assertLastOplog({$set:{"a.0": 3}}, {_id:1}, msg); // Nothing new assert.eq(lastTS, otherTS, "new oplog was not expected -- " + msg) // No new oplog entry @@ -126,13 +107,11 @@ coll.remove({}) assert.eq(coll.count(), 0, "collection not empty") var msg = "bad $setOnInsert w/upsert"; -coll.update({}, {$setOnInsert:{"a":200}}, {upsert:true}); // upsert -var gle = cdb.getLastErrorObj(); -assert.isnull(gle.err, msg); -assert.eq(gle.n, 1, "update failed for '" + msg +"': "+ tojson(gle)); -assert(gle.upserted, "not upserted"); -assert.docEq({_id:gle.upserted, a:200}, coll.findOne({}), msg); // No-op -assertLastOplog({_id:gle.upserted, "a": 200}, null, msg); // No new oplog entry +res = assert.writeOK(coll.update({}, { $setOnInsert: { a: 200 }}, { upsert: true })); // upsert +assert.eq(res.nUpserted, 1, "update failed for '" + msg + "': " + res.toString()); +var id = res.getUpsertedId()._id; +assert.docEq({_id: id, a: 200 }, coll.findOne({}), msg); // No-op +assertLastOplog({ _id: id, a: 200 }, null, msg); // No new oplog entry coll.remove({}) assert.eq(coll.count(), 0, "collection not empty-2") @@ -152,55 +131,52 @@ assertLastOplog({$set:{"a": [1,2,3]}}, {_id:1}, msg); // new format var msg = "bad array $push 2"; coll.save({_id:1, a:"foo"}) -coll.update({}, {$push:{c:18}}); -var gle = cdb.getLastErrorObj(); -assert.isnull(gle.err, msg); -assert.eq(gle.n, 1, "update failed for '" + msg +"': "+ tojson(gle)); +res = assert.writeOK(coll.update({}, { $push: { c: 18 }})); +assert.eq(res.nModified, 1, "update failed for '" + msg + "': " + res.toString()); assert.docEq({_id:1, a:"foo", c:[18]}, coll.findOne({}), msg); assertLastOplog({$set:{"c": [18]}}, {_id:1}, msg); var msg = "bad array $push $slice"; coll.save({_id:1, a:{b:[18]}}) -coll.update({_id:{$gt:0}}, {$push:{"a.b":{$each:[1,2], $slice:-2}}}); -var gle = cdb.getLastErrorObj(); -assert.isnull(gle.err, msg); -assert.eq(gle.n, 1, "update failed for '" + msg +"': "+ tojson(gle)); +res = assert.writeOK(coll.update({ _id: { $gt: 0 }}, + { $push: { "a.b": { $each: [1, 2], $slice: -2 }}})); +assert.eq(res.nModified, 1, "update failed for '" + msg + "': " + res.toString()); assert.docEq({_id:1, a: {b:[1,2]}}, coll.findOne({}), msg); assertLastOplog({$set:{"a.b": [1,2]}}, {_id:1}, msg); var msg = "bad array $push $sort ($slice -100)"; coll.save({_id:1, a:{b:[{c:2}, {c:1}]}}) -coll.update({}, {$push:{"a.b":{$each:[{c:-1}], $sort:{"c":1}, $slice:-100}}}); -var gle = cdb.getLastErrorObj(); -assert.isnull(gle.err, msg); -assert.eq(gle.n, 1, "update failed for '" + msg +"': "+ tojson(gle)); +res = assert.writeOK(coll.update({}, { $push: { "a.b": { $each: [{ c: -1 }], + $sort: { c: 1 }, + $slice: -100 }}})); +assert.eq(res.nModified, 1, "update failed for '" + msg + "': " + res.toString()); assert.docEq({_id:1, a: {b:[{c:-1}, {c:1}, {c:2}]}}, coll.findOne({}), msg); assertLastOplog({$set:{"a.b": [{c:-1},{c:1}, {c:2}]}}, {_id:1}, msg); var msg = "bad array $push $slice $sort"; coll.save({_id:1, a:[{b:2}, {b:1}]}) -coll.update({_id:{$gt:0}}, {$push:{"a":{$each:[{b:-1}], $slice:-2, $sort:{b:1}}}}); -var gle = cdb.getLastErrorObj(); -assert.isnull(gle.err, msg); -assert.eq(gle.n, 1, "update failed for '" + msg +"': "+ tojson(gle)); +res = assert.writeOK(coll.update({ _id: { $gt: 0 }}, { $push: { a: { $each: [{ b: -1 }], + $slice:-2, + $sort: { b: 1 }}}})); +assert.eq(res.nModified, 1, "update failed for '" + msg + "': " + res.toString()); assert.docEq({_id:1, a: [{b:1}, {b:2}]}, coll.findOne({}), msg); assertLastOplog({$set:{a: [{b:1},{b:2}]}}, {_id:1}, msg); var msg = "bad array $push $slice $sort first two"; coll.save({_id:1, a:{b:[{c:2}, {c:1}]}}) -coll.update({_id:{$gt:0}}, {$push:{"a.b":{$each:[{c:-1}], $slice:-2, $sort:{"c":1}}}}); -var gle = cdb.getLastErrorObj(); -assert.isnull(gle.err, msg); -assert.eq(gle.n, 1, "update failed for '" + msg +"': "+ tojson(gle)); +res = assert.writeOK(coll.update({ _id: { $gt: 0 }}, { $push: { "a.b": { $each: [{ c: -1 }], + $slice: -2, + $sort: { c: 1 }}}})); +assert.eq(res.nModified, 1, "update failed for '" + msg + "': " + res.toString()); assert.docEq({_id:1, a: {b:[{c:1}, {c:2}]}}, coll.findOne({}), msg); assertLastOplog({$set:{"a.b": [{c:1},{c:2}]}}, {_id:1}, msg); var msg = "bad array $push $slice $sort reversed first two"; coll.save({_id:1, a:{b:[{c:1}, {c:2}]}}) -coll.update({_id:{$gt:0}}, {$push:{"a.b":{$each:[{c:-1}], $slice:-2, $sort:{"c":-1}}}}); -var gle = cdb.getLastErrorObj(); -assert.isnull(gle.err, msg); -assert.eq(gle.n, 1, "update failed for '" + msg +"': "+ tojson(gle)); +res = assert.writeOK(coll.update({ _id: { $gt: 0 }}, { $push: { "a.b": { $each: [{ c: -1 }], + $slice: -2, + $sort: { c: -1 }}}})); +assert.eq(res.nModified, 1, "update failed for '" + msg + "': " + res.toString()); assert.docEq({_id:1, a: {b:[{c:1}, {c:-1}]}}, coll.findOne({}), msg); assertLastOplog({$set:{"a.b": [{c:1},{c:-1}]}}, {_id:1}, msg); |