summaryrefslogtreecommitdiff
path: root/jstests/replsets/read_committed_lookup.js
diff options
context:
space:
mode:
authorWilliam Schultz <william.schultz@mongodb.com>2016-11-08 15:24:16 -0500
committerWilliam Schultz <william.schultz@mongodb.com>2016-11-15 10:26:35 -0500
commitd7c5c9aaf6437be34193ed83d74defa52c0e031f (patch)
tree441037ab10dcb803913ee8a820b822256aa436ef /jstests/replsets/read_committed_lookup.js
parent21821549cdeef84173293c46725695fc3a7834b0 (diff)
downloadmongo-d7c5c9aaf6437be34193ed83d74defa52c0e031f.tar.gz
SERVER-26852 Move read concern tests out of noPassthrough
SERVER-26852 Moved readConcern tests out of noPassthrough
Diffstat (limited to 'jstests/replsets/read_committed_lookup.js')
-rw-r--r--jstests/replsets/read_committed_lookup.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/jstests/replsets/read_committed_lookup.js b/jstests/replsets/read_committed_lookup.js
new file mode 100644
index 00000000000..d827e9580f3
--- /dev/null
+++ b/jstests/replsets/read_committed_lookup.js
@@ -0,0 +1,44 @@
+/**
+ * Tests that a $lookup and $graphLookup stage within an aggregation pipeline will read only
+ * committed data if the pipeline is using a majority readConcern.
+ */
+
+load("jstests/replsets/rslib.js"); // For startSetIfSupportsReadMajority.
+load("jstests/libs/read_committed_lib.js"); // For testReadCommittedLookup
+
+(function() {
+ "use strict";
+
+ // Confirm majority readConcern works on a replica set.
+ const replSetName = "lookup_read_majority";
+ let rst = new ReplSetTest({
+ nodes: 3,
+ name: replSetName,
+ nodeOptions: {
+ enableMajorityReadConcern: "",
+ shardsvr: "",
+ }
+ });
+
+ if (!startSetIfSupportsReadMajority(rst)) {
+ jsTest.log("skipping test since storage engine doesn't support committed reads");
+ return;
+ }
+
+ const nodes = rst.nodeList();
+ const config = {
+ _id: replSetName,
+ members: [
+ {_id: 0, host: nodes[0]},
+ {_id: 1, host: nodes[1], priority: 0},
+ {_id: 2, host: nodes[2], arbiterOnly: true},
+ ]
+ };
+ updateConfigIfNotDurable(config);
+ rst.initiate(config);
+
+ let shardSecondary = rst.liveNodes.slaves[0];
+
+ testReadCommittedLookup(rst.getPrimary().getDB("test"), shardSecondary, rst);
+
+})();