Skip to content

Commit

Permalink
DRIVERS-2713: Run legacy transaction tests on LB topologies (#1459)
Browse files Browse the repository at this point in the history
d2de776 previously added "load-balanced" to other legacy test formats but omitted the transactions spec.

This change ensures legacy transaction tests can be run on LB topologies, including Atlas Serverless (where "serverless: forbid" is not specified).

Some tests in retryable-commit.yml are incompatible with serverless and have been split off into a separate file with "serverless: forbid".
  • Loading branch information
jmikola committed Sep 28, 2023
1 parent fcc5fd3 commit 38e65fc
Show file tree
Hide file tree
Showing 68 changed files with 1,198 additions and 1,121 deletions.
5 changes: 3 additions & 2 deletions source/transactions/tests/README.rst
Expand Up @@ -109,8 +109,8 @@ Each YAML file has the following keys:

- ``topology`` (optional): An array of server topologies against which the
tests can be run successfully. Valid topologies are "single", "replicaset",
and "sharded". If this field is omitted, the default is all topologies (i.e.
``["single", "replicaset", "sharded"]``).
"sharded", and "load-balanced". If this field is omitted, the default is all
topologies (i.e. ``["single", "replicaset", "sharded", "load-balanced"]``).

- ``serverless``: (optional): Whether or not the test should be run on Atlas
Serverless instances. Valid values are "require", "forbid", and "allow". If
Expand Down Expand Up @@ -629,6 +629,7 @@ is the only command allowed in a sharded transaction that uses the
Changelog
=========

:2023-09-28: Add ``load-balanced`` to test topology requirements.
:2022-04-22: Clarifications to ``serverless`` and ``useMultipleMongoses``.
:2019-05-15: Add operation level ``error`` field to assert any error.
:2019-03-25: Add workaround for StaleDbVersion on distinct.
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/abort.json
Expand Up @@ -9,7 +9,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/abort.yml
Expand Up @@ -4,7 +4,7 @@ runOn:
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/bulk.json
Expand Up @@ -9,7 +9,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/bulk.yml
Expand Up @@ -4,7 +4,7 @@ runOn:
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/causal-consistency.json
Expand Up @@ -9,7 +9,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/causal-consistency.yml
Expand Up @@ -4,7 +4,7 @@ runOn:
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/commit.json
Expand Up @@ -9,7 +9,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/commit.yml
Expand Up @@ -4,7 +4,7 @@ runOn:
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/count.json
Expand Up @@ -9,7 +9,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/count.yml
Expand Up @@ -5,7 +5,7 @@ runOn:
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/create-collection.json
Expand Up @@ -4,7 +4,8 @@
"minServerVersion": "4.3.4",
"topology": [
"replicaset",
"sharded"
"sharded",
"load-balanced"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/create-collection.yml
@@ -1,7 +1,7 @@
runOn:
-
minServerVersion: "4.3.4"
topology: ["replicaset", "sharded"]
topology: ["replicaset", "sharded", "load-balanced"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/create-index.json
Expand Up @@ -4,7 +4,8 @@
"minServerVersion": "4.3.4",
"topology": [
"replicaset",
"sharded"
"sharded",
"load-balanced"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/create-index.yml
@@ -1,7 +1,7 @@
runOn:
-
minServerVersion: "4.3.4"
topology: ["replicaset", "sharded"]
topology: ["replicaset", "sharded", "load-balanced"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/delete.json
Expand Up @@ -9,7 +9,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/delete.yml
Expand Up @@ -4,7 +4,7 @@ runOn:
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
Expand Down
Expand Up @@ -4,7 +4,8 @@
"minServerVersion": "4.2",
"topology": [
"replicaset",
"sharded"
"sharded",
"load-balanced"
]
}
],
Expand Down
Expand Up @@ -8,7 +8,7 @@
runOn:
-
minServerVersion: "4.2"
topology: ["replicaset", "sharded"]
topology: ["replicaset", "sharded", "load-balanced"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/error-labels.json
Expand Up @@ -9,7 +9,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
],
"serverless": "forbid"
}
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/error-labels.yml
Expand Up @@ -4,7 +4,7 @@ runOn:
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]
# serverless proxy doesn't append error labels to errors in transactions
# caused by failpoints (CLOUDP-88216)
serverless: "forbid"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/errors-client.json
Expand Up @@ -9,7 +9,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/errors-client.yml
Expand Up @@ -4,7 +4,7 @@ runOn:
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/errors.json
Expand Up @@ -9,7 +9,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/errors.yml
Expand Up @@ -4,7 +4,7 @@ runOn:
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/findOneAndDelete.json
Expand Up @@ -9,7 +9,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/findOneAndDelete.yml
Expand Up @@ -4,7 +4,7 @@ runOn:
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/findOneAndReplace.json
Expand Up @@ -9,7 +9,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/findOneAndReplace.yml
Expand Up @@ -4,7 +4,7 @@ runOn:
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/findOneAndUpdate.json
Expand Up @@ -9,7 +9,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/findOneAndUpdate.yml
Expand Up @@ -4,7 +4,7 @@ runOn:
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/insert.json
Expand Up @@ -9,7 +9,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/insert.yml
Expand Up @@ -4,7 +4,7 @@ runOn:
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/isolation.json
Expand Up @@ -9,7 +9,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/isolation.yml
Expand Up @@ -6,7 +6,7 @@ runOn:
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/mongos-pin-auto-tests.py
Expand Up @@ -16,7 +16,7 @@
runOn:
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]
# serverless proxy doesn't append error labels to errors in transactions
# caused by failpoints (CLOUDP-88216)
serverless: "forbid"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/mongos-pin-auto.json
Expand Up @@ -3,7 +3,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
],
"serverless": "forbid"
}
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/mongos-pin-auto.yml
Expand Up @@ -3,7 +3,7 @@
runOn:
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]
# serverless proxy doesn't append error labels to errors in transactions
# caused by failpoints (CLOUDP-88216)
serverless: "forbid"
Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/mongos-recovery-token.json
Expand Up @@ -3,7 +3,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
],
"serverless": "forbid"
}
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/tests/legacy/mongos-recovery-token.yml
@@ -1,7 +1,7 @@
runOn:
-
minServerVersion: "4.1.8"
topology: ["sharded"]
topology: ["sharded", "load-balanced"]
# serverless proxy doesn't use recovery tokens
serverless: "forbid"

Expand Down
3 changes: 2 additions & 1 deletion source/transactions/tests/legacy/pin-mongos.json
Expand Up @@ -3,7 +3,8 @@
{
"minServerVersion": "4.1.8",
"topology": [
"sharded"
"sharded",
"load-balanced"
],
"serverless": "forbid"
}
Expand Down

0 comments on commit 38e65fc

Please sign in to comment.