summaryrefslogtreecommitdiff
path: root/jstests/core/txns/read_concerns.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/core/txns/read_concerns.js')
-rw-r--r--jstests/core/txns/read_concerns.js104
1 files changed, 52 insertions, 52 deletions
diff --git a/jstests/core/txns/read_concerns.js b/jstests/core/txns/read_concerns.js
index ffdd381128a..409236a5ffd 100644
--- a/jstests/core/txns/read_concerns.js
+++ b/jstests/core/txns/read_concerns.js
@@ -2,61 +2,61 @@
//
// @tags: [uses_transactions, uses_snapshot_read_concern]
(function() {
- "use strict";
-
- const dbName = "test";
- const collName = "supported_read_concern_levels";
-
- function runTest(level, sessionOptions, supported) {
- jsTestLog("Testing transactions with read concern level: " + level +
- " and sessionOptions: " + tojson(sessionOptions));
-
- db.getSiblingDB(dbName).runCommand({drop: collName, writeConcern: {w: "majority"}});
-
- const session = db.getMongo().startSession(sessionOptions);
- const sessionDB = session.getDatabase(dbName);
- const sessionColl = sessionDB[collName];
-
- // Set up the collection.
- assert.writeOK(sessionColl.insert({_id: 0}, {writeConcern: {w: "majority"}}));
-
- if (level) {
- session.startTransaction({readConcern: {level: level}});
- } else {
- session.startTransaction();
- }
-
- const res = sessionDB.runCommand({find: collName});
- if (supported) {
- assert.commandWorked(res,
- "expected success, read concern level: " + level +
- ", sessionOptions: " + tojson(sessionOptions));
- assert.commandWorked(session.commitTransaction_forTesting());
- } else {
- assert.commandFailedWithCode(res,
- ErrorCodes.InvalidOptions,
- "expected failure, read concern level: " + level +
- ", sessionOptions: " + tojson(sessionOptions));
- assert.commandFailedWithCode(session.abortTransaction_forTesting(),
- ErrorCodes.NoSuchTransaction);
- }
-
- session.endSession();
- }
+"use strict";
+
+const dbName = "test";
+const collName = "supported_read_concern_levels";
+
+function runTest(level, sessionOptions, supported) {
+ jsTestLog("Testing transactions with read concern level: " + level +
+ " and sessionOptions: " + tojson(sessionOptions));
+
+ db.getSiblingDB(dbName).runCommand({drop: collName, writeConcern: {w: "majority"}});
+
+ const session = db.getMongo().startSession(sessionOptions);
+ const sessionDB = session.getDatabase(dbName);
+ const sessionColl = sessionDB[collName];
- // Starting a txn with no read concern level is allowed.
- runTest(undefined, {causalConsistency: false}, true /*supported*/);
- runTest(undefined, {causalConsistency: true}, true /*supported*/);
+ // Set up the collection.
+ assert.writeOK(sessionColl.insert({_id: 0}, {writeConcern: {w: "majority"}}));
- const kSupportedLevels = ["local", "majority", "snapshot"];
- for (let level of kSupportedLevels) {
- runTest(level, {causalConsistency: false}, true /*supported*/);
- runTest(level, {causalConsistency: true}, true /*supported*/);
+ if (level) {
+ session.startTransaction({readConcern: {level: level}});
+ } else {
+ session.startTransaction();
}
- const kUnsupportedLevels = ["available", "linearizable"];
- for (let level of kUnsupportedLevels) {
- runTest(level, {causalConsistency: false}, false /*supported*/);
- runTest(level, {causalConsistency: true}, false /*supported*/);
+ const res = sessionDB.runCommand({find: collName});
+ if (supported) {
+ assert.commandWorked(res,
+ "expected success, read concern level: " + level +
+ ", sessionOptions: " + tojson(sessionOptions));
+ assert.commandWorked(session.commitTransaction_forTesting());
+ } else {
+ assert.commandFailedWithCode(res,
+ ErrorCodes.InvalidOptions,
+ "expected failure, read concern level: " + level +
+ ", sessionOptions: " + tojson(sessionOptions));
+ assert.commandFailedWithCode(session.abortTransaction_forTesting(),
+ ErrorCodes.NoSuchTransaction);
}
+
+ session.endSession();
+}
+
+// Starting a txn with no read concern level is allowed.
+runTest(undefined, {causalConsistency: false}, true /*supported*/);
+runTest(undefined, {causalConsistency: true}, true /*supported*/);
+
+const kSupportedLevels = ["local", "majority", "snapshot"];
+for (let level of kSupportedLevels) {
+ runTest(level, {causalConsistency: false}, true /*supported*/);
+ runTest(level, {causalConsistency: true}, true /*supported*/);
+}
+
+const kUnsupportedLevels = ["available", "linearizable"];
+for (let level of kUnsupportedLevels) {
+ runTest(level, {causalConsistency: false}, false /*supported*/);
+ runTest(level, {causalConsistency: true}, false /*supported*/);
+}
}());