diff options
author | trahman1318 <tausif.rahman@mongodb.com> | 2022-02-02 19:11:45 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-02-02 20:13:31 +0000 |
commit | e9a3d471b8e3172eac9924445a65f7e20e9235c1 (patch) | |
tree | 4cf8be8f636a18889505f40841057828d453595a /jstests/multiVersion/targetedTestsLastLtsFeatures/internal_sessions.js | |
parent | f6b617feb2e375f53ad8b5590ab9b38034f32460 (diff) | |
download | mongo-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.js | 75 |
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); +})(); |