Skip to content

Commit 71de04b

Browse files
RUST-1531 Improve test coverage for retryable handshake errors (#782)
1 parent e9a8e2a commit 71de04b

File tree

7 files changed

+6546
-266
lines changed

7 files changed

+6546
-266
lines changed

src/coll/options.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -975,7 +975,10 @@ pub struct FindOneOptions {
975975
///
976976
/// This options maps to the `maxTimeMS` MongoDB query option, so the duration will be sent
977977
/// across the wire as an integer number of milliseconds.
978-
#[serde(deserialize_with = "bson_util::deserialize_duration_option_from_u64_millis")]
978+
#[serde(
979+
default,
980+
deserialize_with = "bson_util::deserialize_duration_option_from_u64_millis"
981+
)]
979982
pub max_time: Option<Duration>,
980983

981984
/// The inclusive lower bound for a specific index.

src/test/spec/json/retryable-reads/README.rst

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -81,17 +81,21 @@ Each YAML file has the following keys:
8181
the default is all topologies (i.e. ``["single", "replicaset", "sharded",
8282
"load-balanced"]``).
8383

84-
- ``serverless``: Optional string. Whether or not the test should be run on
85-
serverless instances imitating sharded clusters. Valid values are "require",
86-
"forbid", and "allow". If "require", the test MUST only be run on serverless
87-
instances. If "forbid", the test MUST NOT be run on serverless instances. If
88-
omitted or "allow", this option has no effect.
89-
90-
The test runner MUST be informed whether or not serverless is being used in
91-
order to determine if this requirement is met (e.g. through an environment
92-
variable or configuration option). Since the serverless proxy imitates a
93-
mongos, the runner is not capable of determining this by issuing a server
94-
command such as ``buildInfo`` or ``hello``.
84+
- ``serverless``: (optional): Whether or not the test should be run on Atlas
85+
Serverless instances. Valid values are "require", "forbid", and "allow". If
86+
"require", the test MUST only be run on Atlas Serverless instances. If
87+
"forbid", the test MUST NOT be run on Atlas Serverless instances. If omitted
88+
or "allow", this option has no effect.
89+
90+
The test runner MUST be informed whether or not Atlas Serverless is being
91+
used in order to determine if this requirement is met (e.g. through an
92+
environment variable or configuration option).
93+
94+
Note: the Atlas Serverless proxy imitates mongos, so the test runner is not
95+
capable of determining if Atlas Serverless is in use by issuing commands
96+
such as ``buildInfo`` or ``hello``. Furthermore, connections to Atlas
97+
Serverless use a load balancer, so the topology will appear as
98+
"load-balanced".
9599

96100
- ``database_name`` and ``collection_name``: Optional. The database and
97101
collection to use for testing.
@@ -116,13 +120,14 @@ Each YAML file has the following keys:
116120
mongos seed addresses. If ``false`` or omitted, only a single mongos address
117121
should be specified.
118122

119-
If ``true``, and the topology type is ``LoadBalanced``, the MongoClient for
120-
this test should be initialized with the URI of the load balancer fronting
121-
multiple servers. If ``false`` or omitted, the MongoClient for this test
122-
should be initialized with the URI of the load balancer fronting a single
123-
server.
123+
If ``true``, the topology type is ``LoadBalanced``, and Atlas Serverless is
124+
not being used, the MongoClient for this test should be initialized with the
125+
URI of the load balancer fronting multiple servers. If ``false`` or omitted,
126+
the MongoClient for this test should be initialized with the URI of the load
127+
balancer fronting a single server.
124128

125-
``useMultipleMongoses`` only affects ``Sharded`` and ``LoadBalanced`` topologies.
129+
``useMultipleMongoses`` only affects ``Sharded`` and ``LoadBalanced``
130+
topologies (excluding Atlas Serverless).
126131

127132
- ``skipReason``: Optional, string describing why this test should be skipped.
128133

@@ -231,6 +236,8 @@ This test requires MongoDB 4.2.9+ for ``blockConnection`` support in the failpoi
231236
Changelog
232237
=========
233238

239+
:2022-04-22: Clarifications to ``serverless`` and ``useMultipleMongoses``.
240+
234241
:2022-01-10: Create legacy and unified subdirectories for new unified tests
235242

236243
:2021-08-27: Clarify behavior of ``useMultipleMongoses`` for ``LoadBalanced`` topologies.

0 commit comments

Comments
 (0)