mirror of
https://github.com/mongodb/mongo.git
synced 2024-11-28 16:24:56 +01:00
72 lines
1.7 KiB
JavaScript
72 lines
1.7 KiB
JavaScript
//
|
|
// Tests write-concern-related batch write protocol functionality for master/slave replication
|
|
// More general write concern tests in replsets/batch_write_command_wc.js
|
|
//
|
|
|
|
var request;
|
|
var result;
|
|
|
|
// NOTE: ALL TESTS BELOW SHOULD BE SELF-CONTAINED, FOR EASIER DEBUGGING
|
|
|
|
jsTest.log("Starting legacy repl tests...");
|
|
|
|
// Start a master node
|
|
// Allows testing legacy repl failures
|
|
var mongod = MongoRunner.runMongod({master: "", oplogSize: 40, smallfiles: ""});
|
|
var coll = mongod.getCollection("test.batch_write_command_wc_repl");
|
|
|
|
//
|
|
// Basic insert, default WC
|
|
coll.remove({});
|
|
printjson(request = {
|
|
insert: coll.getName(),
|
|
documents: [{a: 1}]
|
|
});
|
|
printjson(result = coll.runCommand(request));
|
|
assert(result.ok);
|
|
assert.eq(1, result.n);
|
|
assert.eq(1, coll.count());
|
|
|
|
//
|
|
// Basic insert, majority WC
|
|
coll.remove({});
|
|
printjson(request = {
|
|
insert: coll.getName(),
|
|
documents: [{a: 1}],
|
|
writeConcern: {w: 'majority'}
|
|
});
|
|
printjson(result = coll.runCommand(request));
|
|
assert(result.ok);
|
|
assert.eq(1, result.n);
|
|
assert.eq(1, coll.count());
|
|
|
|
//
|
|
// Basic insert, immediate bad wMode error
|
|
coll.remove({});
|
|
printjson(request = {
|
|
insert: coll.getName(),
|
|
documents: [{a: 1}],
|
|
writeConcern: {w: 'invalid'}
|
|
});
|
|
printjson(result = coll.runCommand(request));
|
|
assert(!result.ok);
|
|
assert.eq(0, coll.count());
|
|
|
|
//
|
|
// Basic insert, error on WC with wtimeout
|
|
coll.remove({});
|
|
printjson(request = {
|
|
insert: coll.getName(),
|
|
documents: [{a: 1}],
|
|
writeConcern: {w: 2, wtimeout: 1}
|
|
});
|
|
printjson(result = coll.runCommand(request));
|
|
assert(result.ok);
|
|
assert.eq(1, result.n);
|
|
assert(result.writeConcernError);
|
|
assert(result.writeConcernError.errInfo.wtimeout);
|
|
assert.eq(1, coll.count());
|
|
|
|
jsTest.log("DONE legacy repl tests");
|
|
MongoRunner.stopMongod(mongod);
|