2025-03-17 20:58:26 +01:00

262 lines
6.5 KiB
YAML

runOn:
-
minServerVersion: "4.0"
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
data: &data
- {_id: 1}
- {_id: 2}
- {_id: 3}
- {_id: 4}
tests:
- description: collection readConcern without transaction
operations:
- name: find
object: collection
collectionOptions:
readConcern:
level: majority
arguments:
session: session0
result: *data
expectations:
- command_started_event:
command:
find: *collection_name
readConcern:
level: majority
lsid: session0
txnNumber:
startTransaction:
autocommit:
command_name: find
database_name: *database_name
outcome: &outcome
collection:
data:
*data
- description: find
operations:
- &startTransaction
name: startTransaction
object: session0
- &find
name: find
object: collection
arguments:
session: session0
batchSize: 3
result: *data
- *find
- &commitTransaction
name: commitTransaction
object: session0
expectations:
- command_started_event:
command:
find: *collection_name
batchSize: 3
readConcern:
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction: true
autocommit: false
command_name: find
database_name: *database_name
- command_started_event:
command:
getMore:
# 42 is a fake placeholder value for the cursorId.
$numberLong: '42'
collection: *collection_name
batchSize: 3
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction:
autocommit: false
command_name: getMore
database_name: *database_name
- command_started_event:
command:
find: *collection_name
batchSize: 3
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction:
autocommit: false
command_name: find
database_name: *database_name
- command_started_event:
command:
getMore:
$numberLong: '42'
collection: *collection_name
batchSize: 3
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction:
autocommit: false
command_name: getMore
database_name: *database_name
- command_started_event:
command:
commitTransaction: 1
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction:
autocommit: false
writeConcern:
command_name: commitTransaction
database_name: admin
outcome: *outcome
- description: aggregate
operations:
- *startTransaction
- &aggregate
name: aggregate
object: collection
arguments:
pipeline:
- $project:
_id: 1
batchSize: 3
session: session0
result: *data
- *aggregate
- *commitTransaction
expectations:
- command_started_event:
command:
aggregate: *collection_name
pipeline:
- $project:
_id: 1
cursor:
batchSize: 3
readConcern:
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction: true
autocommit: false
command_name: aggregate
database_name: *database_name
- command_started_event:
command:
getMore:
# 42 is a fake placeholder value for the cursorId.
$numberLong: '42'
collection: *collection_name
batchSize: 3
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction:
autocommit: false
command_name: getMore
database_name: *database_name
- command_started_event:
command:
aggregate: *collection_name
pipeline:
- $project:
_id: 1
cursor:
batchSize: 3
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction:
autocommit: false
command_name: aggregate
database_name: *database_name
- command_started_event:
command:
getMore:
$numberLong: '42'
collection: *collection_name
batchSize: 3
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction:
autocommit: false
command_name: getMore
database_name: *database_name
- command_started_event:
command:
commitTransaction: 1
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction:
autocommit: false
writeConcern:
command_name: commitTransaction
database_name: admin
outcome: *outcome
- description: distinct
operations:
- *startTransaction
- name: distinct
object: collection
arguments:
session: session0
fieldName: _id
result: [1, 2, 3, 4]
- *commitTransaction
expectations:
- command_started_event:
command:
distinct: *collection_name
key: _id
lsid: session0
readConcern:
txnNumber:
$numberLong: "1"
startTransaction: true
autocommit: false
writeConcern:
command_name: distinct
database_name: *database_name
- command_started_event:
command:
commitTransaction: 1
lsid: session0
readConcern:
txnNumber:
$numberLong: "1"
startTransaction:
autocommit: false
writeConcern:
command_name: commitTransaction
database_name: admin
outcome: *outcome