summaryrefslogtreecommitdiff
path: root/jstests/multiVersion/targetedTestsLastLtsFeatures/internal_sessions.js
diff options
context:
space:
mode:
authortrahman1318 <tausif.rahman@mongodb.com>2022-02-02 19:11:45 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-02-02 20:13:31 +0000
commite9a3d471b8e3172eac9924445a65f7e20e9235c1 (patch)
tree4cf8be8f636a18889505f40841057828d453595a /jstests/multiVersion/targetedTestsLastLtsFeatures/internal_sessions.js
parentf6b617feb2e375f53ad8b5590ab9b38034f32460 (diff)
downloadmongo-e9a3d471b8e3172eac9924445a65f7e20e9235c1.tar.gz
SERVER-60211 Structure targeted multiversion JS test directories
Diffstat (limited to 'jstests/multiVersion/targetedTestsLastLtsFeatures/internal_sessions.js')
-rw-r--r--jstests/multiVersion/targetedTestsLastLtsFeatures/internal_sessions.js75
1 files changed, 75 insertions, 0 deletions
diff --git a/jstests/multiVersion/targetedTestsLastLtsFeatures/internal_sessions.js b/jstests/multiVersion/targetedTestsLastLtsFeatures/internal_sessions.js
new file mode 100644
index 00000000000..4350c9f37ec
--- /dev/null
+++ b/jstests/multiVersion/targetedTestsLastLtsFeatures/internal_sessions.js
@@ -0,0 +1,75 @@
+/*
+ * Test that internal sessions are only supported in FCV latest.
+ *
+ * @tags: [featureFlagInternalTransactions]
+ */
+(function() {
+'use strict';
+
+function runTest(downgradeFCV) {
+ TestData.disableImplicitSessions = true;
+
+ const st = new ShardingTest({shards: 1});
+ const shard0Rst = st.rs0;
+ const shard0Primary = shard0Rst.getPrimary();
+
+ const kDbName = "testDb";
+ const kCollName = "testColl";
+ const testDB = shard0Primary.getDB(kDbName);
+
+ const sessionUUID = UUID();
+ const lsid0 = {id: sessionUUID, txnNumber: NumberLong(35), txnUUID: UUID()};
+ const txnNumber0 = NumberLong(0);
+ const lsid1 = {id: sessionUUID, txnUUID: UUID()};
+ const txnNumber1 = NumberLong(35);
+
+ assert.commandWorked(shard0Primary.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV}));
+
+ assert.commandFailedWithCode(testDB.runCommand({
+ insert: kCollName,
+ documents: [{x: 0}],
+ lsid: lsid0,
+ txnNumber: txnNumber0,
+ startTransaction: true,
+ autocommit: false
+ }),
+ ErrorCodes.InternalTransactionNotSupported);
+ assert.commandFailedWithCode(testDB.runCommand({
+ insert: kCollName,
+ documents: [{x: 1}],
+ lsid: lsid1,
+ txnNumber: txnNumber1,
+ startTransaction: true,
+ autocommit: false
+ }),
+ ErrorCodes.InternalTransactionNotSupported);
+
+ assert.commandWorked(shard0Primary.adminCommand({setFeatureCompatibilityVersion: latestFCV}));
+
+ assert.commandWorked(testDB.runCommand({
+ insert: kCollName,
+ documents: [{x: 0}],
+ lsid: lsid0,
+ txnNumber: txnNumber0,
+ startTransaction: true,
+ autocommit: false
+ }));
+ assert.commandWorked(testDB.adminCommand(
+ {commitTransaction: 1, lsid: lsid0, txnNumber: txnNumber0, autocommit: false}));
+
+ assert.commandWorked(testDB.runCommand({
+ insert: kCollName,
+ documents: [{x: 1}],
+ lsid: lsid1,
+ txnNumber: txnNumber1,
+ startTransaction: true,
+ autocommit: false
+ }));
+ assert.commandWorked(testDB.adminCommand(
+ {commitTransaction: 1, lsid: lsid1, txnNumber: txnNumber1, autocommit: false}));
+
+ st.stop();
+}
+
+runFeatureFlagMultiversionTest('featureFlagInternalTransactions', runTest);
+})();