From be9455abf3126d6136c9ce884a01a4a3e4389bc4 Mon Sep 17 00:00:00 2001 From: Adam Midvidy Date: Mon, 24 Aug 2015 17:12:35 -0400 Subject: SERVER-20084 do not set slaveOk in runReadCommand if a read pref has not been set --- .../noPassthroughWithMongod/default_read_pref.js | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 jstests/noPassthroughWithMongod/default_read_pref.js (limited to 'jstests/noPassthroughWithMongod/default_read_pref.js') diff --git a/jstests/noPassthroughWithMongod/default_read_pref.js b/jstests/noPassthroughWithMongod/default_read_pref.js new file mode 100644 index 00000000000..05be7915626 --- /dev/null +++ b/jstests/noPassthroughWithMongod/default_read_pref.js @@ -0,0 +1,28 @@ +// Tests that the default read preference is 'unset', and that the slaveOk bit is not set +// on read commands run with an 'unset' read preference. +(function() { + + "use strict"; + + var mongo = db.getMongo(); + try { + var commandsRan = []; + db._mongo = { + getSlaveOk: function() { return false; }, + getReadPrefMode: function() { return mongo.getReadPrefMode(); }, + getReadPref: function() { return mongo.getReadPref(); }, + runCommand: function(db, cmd, opts) { + commandsRan.push({db: db, cmd: cmd, opts:opts}); + } + }; + + db.runReadCommand({ping: 1}); + assert.eq(commandsRan.length, 1); + assert.docEq(commandsRan[0].cmd, {ping: 1}, "The command should not have been wrapped."); + assert.eq(commandsRan[0].opts & DBQuery.Option.slaveOk, 0, "The slaveOk bit should not be set."); + + } finally { + db._mongo = mongo; + } + +})(); -- cgit v1.2.1