PYTHON-3312 Convert SDAM integration tests to unified (#1028)
This commit is contained in:
parent
5b85ad2bcf
commit
13e2715af0
@ -132,8 +132,8 @@ do
|
||||
discovery_and_monitoring/sharded
|
||||
cpjson server-discovery-and-monitoring/tests/single \
|
||||
discovery_and_monitoring/single
|
||||
cpjson server-discovery-and-monitoring/tests/integration \
|
||||
discovery_and_monitoring_integration
|
||||
cpjson server-discovery-and-monitoring/tests/unified \
|
||||
discovery_and_monitoring/unified
|
||||
cpjson server-discovery-and-monitoring/tests/load-balanced \
|
||||
discovery_and_monitoring/load-balanced
|
||||
;;
|
||||
|
||||
@ -914,13 +914,12 @@ class ConnectionCheckOutFailedReason(object):
|
||||
|
||||
|
||||
class _ConnectionEvent(object):
|
||||
"""Private base class for some connection events."""
|
||||
"""Private base class for connection events."""
|
||||
|
||||
__slots__ = ("__address", "__connection_id")
|
||||
__slots__ = ("__address",)
|
||||
|
||||
def __init__(self, address: _Address, connection_id: int) -> None:
|
||||
def __init__(self, address: _Address) -> None:
|
||||
self.__address = address
|
||||
self.__connection_id = connection_id
|
||||
|
||||
@property
|
||||
def address(self) -> _Address:
|
||||
@ -929,16 +928,29 @@ class _ConnectionEvent(object):
|
||||
"""
|
||||
return self.__address
|
||||
|
||||
def __repr__(self):
|
||||
return "%s(%r)" % (self.__class__.__name__, self.__address)
|
||||
|
||||
|
||||
class _ConnectionIdEvent(_ConnectionEvent):
|
||||
"""Private base class for connection events with an id."""
|
||||
|
||||
__slots__ = ("__connection_id",)
|
||||
|
||||
def __init__(self, address: _Address, connection_id: int) -> None:
|
||||
super().__init__(address)
|
||||
self.__connection_id = connection_id
|
||||
|
||||
@property
|
||||
def connection_id(self) -> int:
|
||||
"""The ID of the Connection."""
|
||||
return self.__connection_id
|
||||
|
||||
def __repr__(self):
|
||||
return "%s(%r, %r)" % (self.__class__.__name__, self.__address, self.__connection_id)
|
||||
return "%s(%r, %r)" % (self.__class__.__name__, self.address, self.__connection_id)
|
||||
|
||||
|
||||
class ConnectionCreatedEvent(_ConnectionEvent):
|
||||
class ConnectionCreatedEvent(_ConnectionIdEvent):
|
||||
"""Published when a Connection Pool creates a Connection object.
|
||||
|
||||
NOTE: This connection is not ready for use until the
|
||||
@ -955,7 +967,7 @@ class ConnectionCreatedEvent(_ConnectionEvent):
|
||||
__slots__ = ()
|
||||
|
||||
|
||||
class ConnectionReadyEvent(_ConnectionEvent):
|
||||
class ConnectionReadyEvent(_ConnectionIdEvent):
|
||||
"""Published when a Connection has finished its setup, and is ready to use.
|
||||
|
||||
:Parameters:
|
||||
@ -969,7 +981,7 @@ class ConnectionReadyEvent(_ConnectionEvent):
|
||||
__slots__ = ()
|
||||
|
||||
|
||||
class ConnectionClosedEvent(_ConnectionEvent):
|
||||
class ConnectionClosedEvent(_ConnectionIdEvent):
|
||||
"""Published when a Connection is closed.
|
||||
|
||||
:Parameters:
|
||||
@ -1005,7 +1017,7 @@ class ConnectionClosedEvent(_ConnectionEvent):
|
||||
)
|
||||
|
||||
|
||||
class ConnectionCheckOutStartedEvent(object):
|
||||
class ConnectionCheckOutStartedEvent(_ConnectionEvent):
|
||||
"""Published when the driver starts attempting to check out a connection.
|
||||
|
||||
:Parameters:
|
||||
@ -1015,23 +1027,10 @@ class ConnectionCheckOutStartedEvent(object):
|
||||
.. versionadded:: 3.9
|
||||
"""
|
||||
|
||||
__slots__ = ("__address",)
|
||||
|
||||
def __init__(self, address):
|
||||
self.__address = address
|
||||
|
||||
@property
|
||||
def address(self):
|
||||
"""The address (host, port) pair of the server this connection is
|
||||
attempting to connect to.
|
||||
"""
|
||||
return self.__address
|
||||
|
||||
def __repr__(self):
|
||||
return "%s(%r)" % (self.__class__.__name__, self.__address)
|
||||
__slots__ = ()
|
||||
|
||||
|
||||
class ConnectionCheckOutFailedEvent(object):
|
||||
class ConnectionCheckOutFailedEvent(_ConnectionEvent):
|
||||
"""Published when the driver's attempt to check out a connection fails.
|
||||
|
||||
:Parameters:
|
||||
@ -1042,19 +1041,12 @@ class ConnectionCheckOutFailedEvent(object):
|
||||
.. versionadded:: 3.9
|
||||
"""
|
||||
|
||||
__slots__ = ("__address", "__reason")
|
||||
__slots__ = ("__reason",)
|
||||
|
||||
def __init__(self, address: _Address, reason: str) -> None:
|
||||
self.__address = address
|
||||
super().__init__(address)
|
||||
self.__reason = reason
|
||||
|
||||
@property
|
||||
def address(self) -> _Address:
|
||||
"""The address (host, port) pair of the server this connection is
|
||||
attempting to connect to.
|
||||
"""
|
||||
return self.__address
|
||||
|
||||
@property
|
||||
def reason(self) -> str:
|
||||
"""A reason explaining why connection check out failed.
|
||||
@ -1065,10 +1057,10 @@ class ConnectionCheckOutFailedEvent(object):
|
||||
return self.__reason
|
||||
|
||||
def __repr__(self):
|
||||
return "%s(%r, %r)" % (self.__class__.__name__, self.__address, self.__reason)
|
||||
return "%s(%r, %r)" % (self.__class__.__name__, self.address, self.__reason)
|
||||
|
||||
|
||||
class ConnectionCheckedOutEvent(_ConnectionEvent):
|
||||
class ConnectionCheckedOutEvent(_ConnectionIdEvent):
|
||||
"""Published when the driver successfully checks out a Connection.
|
||||
|
||||
:Parameters:
|
||||
@ -1082,7 +1074,7 @@ class ConnectionCheckedOutEvent(_ConnectionEvent):
|
||||
__slots__ = ()
|
||||
|
||||
|
||||
class ConnectionCheckedInEvent(_ConnectionEvent):
|
||||
class ConnectionCheckedInEvent(_ConnectionIdEvent):
|
||||
"""Published when the driver checks in a Connection into the Pool.
|
||||
|
||||
:Parameters:
|
||||
|
||||
230
test/discovery_and_monitoring/unified/auth-error.json
Normal file
230
test/discovery_and_monitoring/unified/auth-error.json
Normal file
@ -0,0 +1,230 @@
|
||||
{
|
||||
"description": "auth-error",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"auth": true,
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"single",
|
||||
"replicaset",
|
||||
"sharded"
|
||||
]
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "auth-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Reset server and pool after AuthenticationFailure error",
|
||||
"operations": [
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "setupClient",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"saslContinue"
|
||||
],
|
||||
"appName": "authErrorTest",
|
||||
"errorCode": 18
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"appname": "authErrorTest"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "auth-error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"expectError": {
|
||||
"isError": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "auth-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "auth-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,230 @@
|
||||
{
|
||||
"description": "auth-misc-command-error",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"auth": true,
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"single",
|
||||
"replicaset",
|
||||
"sharded"
|
||||
]
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "auth-misc-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Reset server and pool after misc command error",
|
||||
"operations": [
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "setupClient",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"saslContinue"
|
||||
],
|
||||
"appName": "authMiscErrorTest",
|
||||
"errorCode": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"appname": "authMiscErrorTest"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "auth-misc-error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"expectError": {
|
||||
"isError": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "auth-misc-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "auth-misc-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
230
test/discovery_and_monitoring/unified/auth-network-error.json
Normal file
230
test/discovery_and_monitoring/unified/auth-network-error.json
Normal file
@ -0,0 +1,230 @@
|
||||
{
|
||||
"description": "auth-network-error",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"auth": true,
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"single",
|
||||
"replicaset",
|
||||
"sharded"
|
||||
]
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "auth-network-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Reset server and pool after network error during authentication",
|
||||
"operations": [
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "setupClient",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"saslContinue"
|
||||
],
|
||||
"closeConnection": true,
|
||||
"appName": "authNetworkErrorTest"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"appname": "authNetworkErrorTest"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "auth-network-error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"expectError": {
|
||||
"isError": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "auth-network-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "auth-network-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,233 @@
|
||||
{
|
||||
"description": "auth-network-timeout-error",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"auth": true,
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"single",
|
||||
"replicaset",
|
||||
"sharded"
|
||||
]
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "auth-network-timeout-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Reset server and pool after network timeout error during authentication",
|
||||
"operations": [
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "setupClient",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"saslContinue"
|
||||
],
|
||||
"blockConnection": true,
|
||||
"blockTimeMS": 500,
|
||||
"appName": "authNetworkTimeoutErrorTest"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"appname": "authNetworkTimeoutErrorTest",
|
||||
"connectTimeoutMS": 250,
|
||||
"socketTimeoutMS": 250
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "auth-network-timeout-error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"expectError": {
|
||||
"isError": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "auth-network-timeout-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "auth-network-timeout-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
230
test/discovery_and_monitoring/unified/auth-shutdown-error.json
Normal file
230
test/discovery_and_monitoring/unified/auth-shutdown-error.json
Normal file
@ -0,0 +1,230 @@
|
||||
{
|
||||
"description": "auth-shutdown-error",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"auth": true,
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"single",
|
||||
"replicaset",
|
||||
"sharded"
|
||||
]
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "auth-shutdown-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Reset server and pool after shutdown error during authentication",
|
||||
"operations": [
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "setupClient",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"saslContinue"
|
||||
],
|
||||
"appName": "authShutdownErrorTest",
|
||||
"errorCode": 91
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"appname": "authShutdownErrorTest"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "auth-shutdown-error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"expectError": {
|
||||
"isError": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "auth-shutdown-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "auth-shutdown-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
201
test/discovery_and_monitoring/unified/cancel-server-check.json
Normal file
201
test/discovery_and_monitoring/unified/cancel-server-check.json
Normal file
@ -0,0 +1,201 @@
|
||||
{
|
||||
"description": "cancel-server-check",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.0",
|
||||
"topologies": [
|
||||
"replicaset"
|
||||
],
|
||||
"serverless": "forbid"
|
||||
},
|
||||
{
|
||||
"minServerVersion": "4.2",
|
||||
"topologies": [
|
||||
"sharded"
|
||||
],
|
||||
"serverless": "forbid"
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "cancel-server-check",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": []
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Cancel server check",
|
||||
"operations": [
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"observeEvents": [
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": true,
|
||||
"heartbeatFrequencyMS": 10000,
|
||||
"serverSelectionTimeoutMS": 5000,
|
||||
"appname": "cancelServerCheckTest"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "cancel-server-check"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"insert"
|
||||
],
|
||||
"closeConnection": true
|
||||
}
|
||||
},
|
||||
"client": "setupClient"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 2
|
||||
}
|
||||
},
|
||||
"expectResult": {
|
||||
"insertedId": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 3
|
||||
}
|
||||
},
|
||||
"expectResult": {
|
||||
"insertedId": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "cancel-server-check",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
221
test/discovery_and_monitoring/unified/connectTimeoutMS.json
Normal file
221
test/discovery_and_monitoring/unified/connectTimeoutMS.json
Normal file
@ -0,0 +1,221 @@
|
||||
{
|
||||
"description": "connectTimeoutMS",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"single",
|
||||
"replicaset",
|
||||
"sharded"
|
||||
]
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "connectTimeoutMS",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": []
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "connectTimeoutMS=0",
|
||||
"operations": [
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"connectTimeoutMS": 0,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "connectTimeoutMS=0"
|
||||
},
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "connectTimeoutMS"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 2
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"hello",
|
||||
"isMaster"
|
||||
],
|
||||
"appName": "connectTimeoutMS=0",
|
||||
"blockConnection": true,
|
||||
"blockTimeMS": 550
|
||||
}
|
||||
},
|
||||
"client": "setupClient"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "wait",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"ms": 750
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "connectTimeoutMS",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "connectTimeoutMS",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "connectTimeoutMS",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
234
test/discovery_and_monitoring/unified/find-network-error.json
Normal file
234
test/discovery_and_monitoring/unified/find-network-error.json
Normal file
@ -0,0 +1,234 @@
|
||||
{
|
||||
"description": "find-network-error",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"single",
|
||||
"replicaset",
|
||||
"sharded"
|
||||
]
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "find-network-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Reset server and pool after network error on find",
|
||||
"operations": [
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "setupClient",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"find"
|
||||
],
|
||||
"closeConnection": true,
|
||||
"appName": "findNetworkErrorTest"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"retryReads": false,
|
||||
"appname": "findNetworkErrorTest"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "find-network-error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "find",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
}
|
||||
},
|
||||
"expectError": {
|
||||
"isError": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"find": "find-network-error"
|
||||
},
|
||||
"commandName": "find",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "find-network-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "find-network-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,199 @@
|
||||
{
|
||||
"description": "find-network-timeout-error",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"single",
|
||||
"replicaset",
|
||||
"sharded"
|
||||
]
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "find-network-timeout-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Ignore network timeout error on find",
|
||||
"operations": [
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "setupClient",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"find"
|
||||
],
|
||||
"blockConnection": true,
|
||||
"blockTimeMS": 500,
|
||||
"appName": "findNetworkTimeoutErrorTest"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"retryReads": false,
|
||||
"appname": "findNetworkTimeoutErrorTest",
|
||||
"socketTimeoutMS": 250
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "find-network-timeout-error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "find",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
}
|
||||
},
|
||||
"expectError": {
|
||||
"isError": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"find": "find-network-timeout-error"
|
||||
},
|
||||
"commandName": "find",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "find-network-timeout-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "find-network-timeout-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
251
test/discovery_and_monitoring/unified/find-shutdown-error.json
Normal file
251
test/discovery_and_monitoring/unified/find-shutdown-error.json
Normal file
@ -0,0 +1,251 @@
|
||||
{
|
||||
"description": "find-shutdown-error",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"single",
|
||||
"replicaset",
|
||||
"sharded"
|
||||
]
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "find-shutdown-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": []
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Concurrent shutdown error on find",
|
||||
"operations": [
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"retryReads": false,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "shutdownErrorFindTest"
|
||||
},
|
||||
"observeEvents": [
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "find-shutdown-error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 2
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"find"
|
||||
],
|
||||
"appName": "shutdownErrorFindTest",
|
||||
"errorCode": 91,
|
||||
"blockConnection": true,
|
||||
"blockTimeMS": 500
|
||||
}
|
||||
},
|
||||
"client": "setupClient"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"thread": {
|
||||
"id": "thread0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"thread": {
|
||||
"id": "thread1"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "runOnThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"thread": "thread0",
|
||||
"operation": {
|
||||
"name": "find",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
}
|
||||
},
|
||||
"expectError": {
|
||||
"isError": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "runOnThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"thread": "thread1",
|
||||
"operation": {
|
||||
"name": "find",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
}
|
||||
},
|
||||
"expectError": {
|
||||
"isError": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"thread": "thread0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"thread": "thread1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 4
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "find-shutdown-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
376
test/discovery_and_monitoring/unified/hello-command-error.json
Normal file
376
test/discovery_and_monitoring/unified/hello-command-error.json
Normal file
@ -0,0 +1,376 @@
|
||||
{
|
||||
"description": "hello-command-error",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.9",
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"single",
|
||||
"replicaset",
|
||||
"sharded"
|
||||
]
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "hello-command-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": []
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Command error on Monitor handshake",
|
||||
"operations": [
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "setupClient",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 4
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"hello",
|
||||
"isMaster"
|
||||
],
|
||||
"appName": "commandErrorHandshakeTest",
|
||||
"closeConnection": false,
|
||||
"errorCode": 91
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"observeEvents": [
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent",
|
||||
"commandStartedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"connectTimeoutMS": 250,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "commandErrorHandshakeTest"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "hello-command-error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "hello-command-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "hello-command-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Command error on Monitor check",
|
||||
"operations": [
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"connectTimeoutMS": 1000,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "commandErrorCheckTest"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "hello-command-error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 2
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"hello",
|
||||
"isMaster"
|
||||
],
|
||||
"appName": "commandErrorCheckTest",
|
||||
"closeConnection": false,
|
||||
"blockConnection": true,
|
||||
"blockTimeMS": 750,
|
||||
"errorCode": 91
|
||||
}
|
||||
},
|
||||
"client": "setupClient"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "hello-command-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "hello-command-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "hello-command-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
346
test/discovery_and_monitoring/unified/hello-network-error.json
Normal file
346
test/discovery_and_monitoring/unified/hello-network-error.json
Normal file
@ -0,0 +1,346 @@
|
||||
{
|
||||
"description": "hello-network-error",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.9",
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"single",
|
||||
"replicaset",
|
||||
"sharded"
|
||||
]
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "hello-network-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": []
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Network error on Monitor handshake",
|
||||
"operations": [
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "setupClient",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 2
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"hello",
|
||||
"isMaster"
|
||||
],
|
||||
"appName": "networkErrorHandshakeTest",
|
||||
"closeConnection": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"connectTimeoutMS": 250,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "networkErrorHandshakeTest"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "hello-network-error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "hello-network-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "hello-network-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Network error on Monitor check",
|
||||
"operations": [
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"connectTimeoutMS": 250,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "networkErrorCheckTest"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "hello-network-error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 4
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"hello",
|
||||
"isMaster"
|
||||
],
|
||||
"appName": "networkErrorCheckTest",
|
||||
"closeConnection": true
|
||||
}
|
||||
},
|
||||
"client": "setupClient"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "hello-network-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "hello-network-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "hello-network-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
514
test/discovery_and_monitoring/unified/hello-timeout.json
Normal file
514
test/discovery_and_monitoring/unified/hello-timeout.json
Normal file
@ -0,0 +1,514 @@
|
||||
{
|
||||
"description": "hello-timeout",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"single",
|
||||
"replicaset",
|
||||
"sharded"
|
||||
]
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "hello-timeout",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": []
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Network timeout on Monitor handshake",
|
||||
"operations": [
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "setupClient",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 2
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"hello",
|
||||
"isMaster"
|
||||
],
|
||||
"appName": "timeoutMonitorHandshakeTest",
|
||||
"blockConnection": true,
|
||||
"blockTimeMS": 1000
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"connectTimeoutMS": 250,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "timeoutMonitorHandshakeTest"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "hello-timeout"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "hello-timeout",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "hello-timeout",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Network timeout on Monitor check",
|
||||
"operations": [
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"connectTimeoutMS": 750,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "timeoutMonitorCheckTest"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "hello-timeout"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 4
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"hello",
|
||||
"isMaster"
|
||||
],
|
||||
"appName": "timeoutMonitorCheckTest",
|
||||
"blockConnection": true,
|
||||
"blockTimeMS": 1000
|
||||
}
|
||||
},
|
||||
"client": "setupClient"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "hello-timeout",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "hello-timeout",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "hello-timeout",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Driver extends timeout while streaming",
|
||||
"operations": [
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"connectTimeoutMS": 250,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "extendsTimeoutTest"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "hello-timeout"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "wait",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"ms": 2000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "hello-timeout",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "hello-timeout",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "hello-timeout",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
246
test/discovery_and_monitoring/unified/insert-network-error.json
Normal file
246
test/discovery_and_monitoring/unified/insert-network-error.json
Normal file
@ -0,0 +1,246 @@
|
||||
{
|
||||
"description": "insert-network-error",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"single",
|
||||
"replicaset",
|
||||
"sharded"
|
||||
]
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "insert-network-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Reset server and pool after network error on insert",
|
||||
"operations": [
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "setupClient",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"insert"
|
||||
],
|
||||
"closeConnection": true,
|
||||
"appName": "insertNetworkErrorTest"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"appname": "insertNetworkErrorTest"
|
||||
},
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "insert-network-error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"expectError": {
|
||||
"isError": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "insert-network-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "insert-network-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "insert-network-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
250
test/discovery_and_monitoring/unified/insert-shutdown-error.json
Normal file
250
test/discovery_and_monitoring/unified/insert-shutdown-error.json
Normal file
@ -0,0 +1,250 @@
|
||||
{
|
||||
"description": "insert-shutdown-error",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"single",
|
||||
"replicaset",
|
||||
"sharded"
|
||||
]
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "insert-shutdown-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": []
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Concurrent shutdown error on insert",
|
||||
"operations": [
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"uriOptions": {
|
||||
"retryWrites": false,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "shutdownErrorInsertTest"
|
||||
},
|
||||
"observeEvents": [
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "insert-shutdown-error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 2
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"insert"
|
||||
],
|
||||
"appName": "shutdownErrorInsertTest",
|
||||
"errorCode": 91,
|
||||
"blockConnection": true,
|
||||
"blockTimeMS": 500
|
||||
}
|
||||
},
|
||||
"client": "setupClient"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"thread": {
|
||||
"id": "thread0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"thread": {
|
||||
"id": "thread1"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "runOnThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"thread": "thread0",
|
||||
"operation": {
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 2
|
||||
}
|
||||
},
|
||||
"expectError": {
|
||||
"isError": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "runOnThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"thread": "thread1",
|
||||
"operation": {
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 3
|
||||
}
|
||||
},
|
||||
"expectError": {
|
||||
"isError": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"thread": "thread0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"thread": "thread1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 4
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "insert-shutdown-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
177
test/discovery_and_monitoring/unified/minPoolSize-error.json
Normal file
177
test/discovery_and_monitoring/unified/minPoolSize-error.json
Normal file
@ -0,0 +1,177 @@
|
||||
{
|
||||
"description": "minPoolSize-error",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.9",
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"single"
|
||||
]
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "sdam-minPoolSize-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": []
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Network error on minPoolSize background creation",
|
||||
"operations": [
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "setupClient",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"skip": 3
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"hello",
|
||||
"isMaster"
|
||||
],
|
||||
"appName": "SDAMminPoolSizeError",
|
||||
"closeConnection": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"observeEvents": [
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent",
|
||||
"poolReadyEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"heartbeatFrequencyMS": 10000,
|
||||
"appname": "SDAMminPoolSizeError",
|
||||
"minPoolSize": 10,
|
||||
"serverSelectionTimeoutMS": 1000
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "sdam-minPoolSize-error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolReadyEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "runCommand",
|
||||
"object": "database",
|
||||
"arguments": {
|
||||
"command": {
|
||||
"ping": {}
|
||||
},
|
||||
"commandName": "ping"
|
||||
},
|
||||
"expectError": {
|
||||
"isError": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": "off"
|
||||
},
|
||||
"client": "setupClient"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "runCommand",
|
||||
"object": "database",
|
||||
"arguments": {
|
||||
"command": {
|
||||
"ping": 1
|
||||
},
|
||||
"commandName": "ping"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolReadyEvent": {}
|
||||
},
|
||||
"count": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,25 +1,72 @@
|
||||
{
|
||||
"runOn": [
|
||||
"description": "pool-cleared-error",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.9",
|
||||
"topology": [
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"replicaset",
|
||||
"sharded"
|
||||
]
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "pool-cleared-error",
|
||||
"data": [],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient",
|
||||
"useMultipleMongoses": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "pool-cleared-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": []
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "PoolClearedError does not mark server unknown",
|
||||
"clientOptions": {
|
||||
"retryWrites": true,
|
||||
"maxPoolSize": 1,
|
||||
"appname": "poolClearedErrorTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"useMultipleMongoses": false,
|
||||
"observeEvents": [
|
||||
"serverDescriptionChangedEvent",
|
||||
"poolClearedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"retryWrites": true,
|
||||
"maxPoolSize": 1,
|
||||
"appname": "poolClearedErrorTest"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "pool-cleared-error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
@ -30,7 +77,7 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "configureFailPoint",
|
||||
"name": "failPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
@ -47,56 +94,53 @@
|
||||
"closeConnection": true,
|
||||
"appName": "poolClearedErrorTest"
|
||||
}
|
||||
}
|
||||
},
|
||||
"client": "setupClient"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "startThread",
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "startThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "startThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "startThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "startThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "startThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread6"
|
||||
"entities": [
|
||||
{
|
||||
"thread": {
|
||||
"id": "thread0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"thread": {
|
||||
"id": "thread1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"thread": {
|
||||
"id": "thread2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"thread": {
|
||||
"id": "thread3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"thread": {
|
||||
"id": "thread4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"thread": {
|
||||
"id": "thread5"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "runOnThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread1",
|
||||
"thread": "thread0",
|
||||
"operation": {
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
@ -112,7 +156,7 @@
|
||||
"name": "runOnThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread2",
|
||||
"thread": "thread1",
|
||||
"operation": {
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
@ -128,7 +172,7 @@
|
||||
"name": "runOnThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread3",
|
||||
"thread": "thread2",
|
||||
"operation": {
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
@ -144,7 +188,7 @@
|
||||
"name": "runOnThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread4",
|
||||
"thread": "thread3",
|
||||
"operation": {
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
@ -160,7 +204,7 @@
|
||||
"name": "runOnThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread5",
|
||||
"thread": "thread4",
|
||||
"operation": {
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
@ -176,7 +220,7 @@
|
||||
"name": "runOnThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread6",
|
||||
"thread": "thread5",
|
||||
"operation": {
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
@ -192,49 +236,56 @@
|
||||
"name": "waitForThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread1"
|
||||
"thread": "thread0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread2"
|
||||
"thread": "thread1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread3"
|
||||
"thread": "thread2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread4"
|
||||
"thread": "thread3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread5"
|
||||
"thread": "thread4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread6"
|
||||
"thread": "thread5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
@ -242,7 +293,10 @@
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
@ -259,7 +313,14 @@
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"client": "client",
|
||||
"event": {
|
||||
"serverDescriptionChangedEvent": {
|
||||
"newDescription": {
|
||||
"type": "Unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
@ -267,14 +328,19 @@
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "pool-cleared-error",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
@ -301,7 +367,7 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,242 @@
|
||||
{
|
||||
"description": "rediscover-quickly-after-step-down",
|
||||
"schemaVersion": "1.10",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"serverless": "forbid",
|
||||
"topologies": [
|
||||
"replicaset"
|
||||
]
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "setupClient"
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "adminDatabase",
|
||||
"client": "setupClient",
|
||||
"databaseName": "admin"
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "test-replSetStepDown",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Rediscover quickly after replSetStepDown",
|
||||
"operations": [
|
||||
{
|
||||
"name": "createEntities",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"entities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"observeEvents": [
|
||||
"poolClearedEvent",
|
||||
"commandStartedEvent"
|
||||
],
|
||||
"uriOptions": {
|
||||
"appname": "replSetStepDownTest",
|
||||
"heartbeatFrequencyMS": 60000,
|
||||
"serverSelectionTimeoutMS": 5000,
|
||||
"w": "majority"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "test-replSetStepDown"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "recordTopologyDescription",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"id": "topologyDescription"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertTopologyType",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"topologyDescription": "topologyDescription",
|
||||
"topologyType": "ReplicaSetWithPrimary"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "runCommand",
|
||||
"object": "adminDatabase",
|
||||
"arguments": {
|
||||
"command": {
|
||||
"replSetFreeze": 0
|
||||
},
|
||||
"readPreference": {
|
||||
"mode": "Secondary"
|
||||
},
|
||||
"commandName": "replSetFreeze"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "runCommand",
|
||||
"object": "adminDatabase",
|
||||
"arguments": {
|
||||
"command": {
|
||||
"replSetStepDown": 30,
|
||||
"secondaryCatchUpPeriodSecs": 30,
|
||||
"force": false
|
||||
},
|
||||
"commandName": "replSetStepDown"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForPrimaryChange",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"priorTopologyDescription": "topologyDescription",
|
||||
"timeoutMS": 15000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"client": "client",
|
||||
"event": {
|
||||
"poolClearedEvent": {}
|
||||
},
|
||||
"count": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"eventType": "command",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "test-replSetStepDown",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "test-replSetStepDown",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "sdam-tests"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "test-replSetStepDown",
|
||||
"databaseName": "sdam-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,140 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"authEnabled": true
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "auth-error",
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Reset server and pool after AuthenticationFailure error",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"saslContinue"
|
||||
],
|
||||
"appName": "authErrorTest",
|
||||
"errorCode": 18
|
||||
}
|
||||
},
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"appname": "authErrorTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"error": true
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "auth-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,140 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"authEnabled": true
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "auth-misc-error",
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Reset server and pool after misc command error",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"saslContinue"
|
||||
],
|
||||
"appName": "authMiscErrorTest",
|
||||
"errorCode": 1
|
||||
}
|
||||
},
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"appname": "authMiscErrorTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"error": true
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "auth-misc-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,140 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"authEnabled": true
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "auth-network-error",
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Reset server and pool after network error during authentication",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"saslContinue"
|
||||
],
|
||||
"closeConnection": true,
|
||||
"appName": "authNetworkErrorTest"
|
||||
}
|
||||
},
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"appname": "authNetworkErrorTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"error": true
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "auth-network-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,143 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"authEnabled": true
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "auth-network-timeout-error",
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Reset server and pool after network timeout error during authentication",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"saslContinue"
|
||||
],
|
||||
"blockConnection": true,
|
||||
"blockTimeMS": 500,
|
||||
"appName": "authNetworkTimeoutErrorTest"
|
||||
}
|
||||
},
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"appname": "authNetworkTimeoutErrorTest",
|
||||
"connectTimeoutMS": 250,
|
||||
"socketTimeoutMS": 250
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"error": true
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "auth-network-timeout-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,140 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"authEnabled": true
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "auth-shutdown-error",
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Reset server and pool after shutdown error during authentication",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"saslContinue"
|
||||
],
|
||||
"appName": "authShutdownErrorTest",
|
||||
"errorCode": 91
|
||||
}
|
||||
},
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"appname": "authShutdownErrorTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"error": true
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "auth-shutdown-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,130 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.0",
|
||||
"topology": [
|
||||
"replicaset"
|
||||
]
|
||||
},
|
||||
{
|
||||
"minServerVersion": "4.2",
|
||||
"topology": [
|
||||
"sharded"
|
||||
]
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "cancel-server-check",
|
||||
"data": [],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Cancel server check",
|
||||
"clientOptions": {
|
||||
"retryWrites": true,
|
||||
"heartbeatFrequencyMS": 10000,
|
||||
"serverSelectionTimeoutMS": 5000,
|
||||
"appname": "cancelServerCheckTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "configureFailPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"insert"
|
||||
],
|
||||
"closeConnection": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 2
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"insertedId": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 3
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"insertedId": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,149 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.4"
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "connectTimeoutMS",
|
||||
"data": [],
|
||||
"tests": [
|
||||
{
|
||||
"description": "connectTimeoutMS=0",
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"connectTimeoutMS": 0,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "connectTimeoutMS=0"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "configureFailPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 2
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"hello",
|
||||
"isMaster"
|
||||
],
|
||||
"appName": "connectTimeoutMS=0",
|
||||
"blockConnection": true,
|
||||
"blockTimeMS": 550
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "wait",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"ms": 750
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "connectTimeoutMS",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "connectTimeoutMS",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,144 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.4"
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "find-network-error",
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Reset server and pool after network error on find",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"find"
|
||||
],
|
||||
"closeConnection": true,
|
||||
"appName": "findNetworkErrorTest"
|
||||
}
|
||||
},
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"retryReads": false,
|
||||
"appname": "findNetworkErrorTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "find",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
}
|
||||
},
|
||||
"error": true
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"find": "find-network-error"
|
||||
},
|
||||
"command_name": "find",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "find-network-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,119 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.4"
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "find-network-timeout-error",
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Ignore network timeout error on find",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"find"
|
||||
],
|
||||
"blockConnection": true,
|
||||
"blockTimeMS": 500,
|
||||
"appName": "findNetworkTimeoutErrorTest"
|
||||
}
|
||||
},
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"retryReads": false,
|
||||
"appname": "findNetworkTimeoutErrorTest",
|
||||
"socketTimeoutMS": 250
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "find",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
}
|
||||
},
|
||||
"error": true
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"find": "find-network-timeout-error"
|
||||
},
|
||||
"command_name": "find",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "find-network-timeout-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,168 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.4"
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "find-shutdown-error",
|
||||
"data": [],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Concurrent shutdown error on find",
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"retryReads": false,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "shutdownErrorFindTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "configureFailPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 2
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"find"
|
||||
],
|
||||
"appName": "shutdownErrorFindTest",
|
||||
"errorCode": 91,
|
||||
"blockConnection": true,
|
||||
"blockTimeMS": 500
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "startThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "startThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "runOnThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread1",
|
||||
"operation": {
|
||||
"name": "find",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
}
|
||||
},
|
||||
"error": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "runOnThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread2",
|
||||
"operation": {
|
||||
"name": "find",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
}
|
||||
},
|
||||
"error": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 4
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,223 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.9"
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "hello-command-error",
|
||||
"data": [],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Command error on Monitor handshake",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 2
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"hello",
|
||||
"isMaster"
|
||||
],
|
||||
"appName": "commandErrorHandshakeTest",
|
||||
"closeConnection": false,
|
||||
"errorCode": 91
|
||||
}
|
||||
},
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"connectTimeoutMS": 250,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "commandErrorHandshakeTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "hello-command-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Command error on Monitor check",
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"connectTimeoutMS": 1000,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "commandErrorCheckTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "configureFailPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 4
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"hello",
|
||||
"isMaster"
|
||||
],
|
||||
"appName": "commandErrorCheckTest",
|
||||
"closeConnection": false,
|
||||
"blockConnection": true,
|
||||
"blockTimeMS": 750,
|
||||
"errorCode": 91
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "hello-command-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "hello-command-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,219 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.9"
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "hello-network-error",
|
||||
"data": [],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Network error on Monitor handshake",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 2
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"hello",
|
||||
"isMaster"
|
||||
],
|
||||
"appName": "networkErrorHandshakeTest",
|
||||
"closeConnection": true
|
||||
}
|
||||
},
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"connectTimeoutMS": 250,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "networkErrorHandshakeTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "hello-network-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Network error on Monitor check",
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"connectTimeoutMS": 250,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "networkErrorCheckTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "configureFailPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 4
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"hello",
|
||||
"isMaster"
|
||||
],
|
||||
"appName": "networkErrorCheckTest",
|
||||
"closeConnection": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "hello-network-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "hello-network-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,337 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.4"
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "hello-timeout",
|
||||
"data": [],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Network timeout on Monitor handshake",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 2
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"hello",
|
||||
"isMaster"
|
||||
],
|
||||
"appName": "timeoutMonitorHandshakeTest",
|
||||
"blockConnection": true,
|
||||
"blockTimeMS": 1000
|
||||
}
|
||||
},
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"connectTimeoutMS": 250,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "timeoutMonitorHandshakeTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "hello-timeout",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Network timeout on Monitor check",
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"connectTimeoutMS": 750,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "timeoutMonitorCheckTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "configureFailPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 4
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"hello",
|
||||
"isMaster"
|
||||
],
|
||||
"appName": "timeoutMonitorCheckTest",
|
||||
"blockConnection": true,
|
||||
"blockTimeMS": 1000
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "hello-timeout",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "hello-timeout",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Driver extends timeout while streaming",
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"connectTimeoutMS": 250,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "extendsTimeoutTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "wait",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"ms": 2000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "hello-timeout",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "hello-timeout",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,156 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.4"
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "insert-network-error",
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Reset server and pool after network error on insert",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 1
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"insert"
|
||||
],
|
||||
"closeConnection": true,
|
||||
"appName": "insertNetworkErrorTest"
|
||||
}
|
||||
},
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"appname": "insertNetworkErrorTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"error": true
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "insert-network-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "insert-network-error",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,167 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.4"
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "insert-shutdown-error",
|
||||
"data": [],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Concurrent shutdown error on insert",
|
||||
"clientOptions": {
|
||||
"retryWrites": false,
|
||||
"heartbeatFrequencyMS": 500,
|
||||
"appname": "shutdownErrorInsertTest"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "configureFailPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"times": 2
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"insert"
|
||||
],
|
||||
"appName": "shutdownErrorInsertTest",
|
||||
"errorCode": 91,
|
||||
"blockConnection": true,
|
||||
"blockTimeMS": 500
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "startThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "startThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "runOnThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread1",
|
||||
"operation": {
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 2
|
||||
}
|
||||
},
|
||||
"error": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "runOnThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread2",
|
||||
"operation": {
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 3
|
||||
}
|
||||
},
|
||||
"error": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForThread",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"name": "thread2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 4
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,102 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.9"
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "sdam-minPoolSize-error",
|
||||
"data": [],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Network error on minPoolSize background creation",
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": {
|
||||
"skip": 3
|
||||
},
|
||||
"data": {
|
||||
"failCommands": [
|
||||
"hello",
|
||||
"isMaster"
|
||||
],
|
||||
"appName": "SDAMminPoolSizeError",
|
||||
"closeConnection": true
|
||||
}
|
||||
},
|
||||
"clientOptions": {
|
||||
"heartbeatFrequencyMS": 10000,
|
||||
"appname": "SDAMminPoolSizeError",
|
||||
"minPoolSize": 10,
|
||||
"serverSelectionTimeoutMS": 1000,
|
||||
"directConnection": true
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolReadyEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForEvent",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "ServerMarkedUnknownEvent",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "runCommand",
|
||||
"object": "database",
|
||||
"command_name": "ping",
|
||||
"arguments": {
|
||||
"command": {
|
||||
"ping": {}
|
||||
}
|
||||
},
|
||||
"error": true
|
||||
},
|
||||
{
|
||||
"name": "configureFailPoint",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"failPoint": {
|
||||
"configureFailPoint": "failCommand",
|
||||
"mode": "off"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "runCommand",
|
||||
"object": "database",
|
||||
"command_name": "ping",
|
||||
"arguments": {
|
||||
"command": {
|
||||
"ping": 1
|
||||
}
|
||||
},
|
||||
"error": false
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolReadyEvent",
|
||||
"count": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,165 +0,0 @@
|
||||
{
|
||||
"runOn": [
|
||||
{
|
||||
"minServerVersion": "4.4",
|
||||
"topology": [
|
||||
"replicaset"
|
||||
]
|
||||
}
|
||||
],
|
||||
"database_name": "sdam-tests",
|
||||
"collection_name": "test-replSetStepDown",
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Rediscover quickly after replSetStepDown",
|
||||
"clientOptions": {
|
||||
"appname": "replSetStepDownTest",
|
||||
"heartbeatFrequencyMS": 60000,
|
||||
"serverSelectionTimeoutMS": 5000,
|
||||
"w": "majority"
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "recordPrimary",
|
||||
"object": "testRunner"
|
||||
},
|
||||
{
|
||||
"name": "runAdminCommand",
|
||||
"object": "testRunner",
|
||||
"command_name": "replSetFreeze",
|
||||
"arguments": {
|
||||
"command": {
|
||||
"replSetFreeze": 0
|
||||
},
|
||||
"readPreference": {
|
||||
"mode": "Secondary"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "runAdminCommand",
|
||||
"object": "testRunner",
|
||||
"command_name": "replSetStepDown",
|
||||
"arguments": {
|
||||
"command": {
|
||||
"replSetStepDown": 30,
|
||||
"secondaryCatchUpPeriodSecs": 30,
|
||||
"force": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "waitForPrimaryChange",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"timeoutMS": 15000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "assertEventCount",
|
||||
"object": "testRunner",
|
||||
"arguments": {
|
||||
"event": "PoolClearedEvent",
|
||||
"count": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "test-replSetStepDown",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "test-replSetStepDown",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "sdam-tests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"data": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
},
|
||||
{
|
||||
"_id": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -17,16 +17,15 @@
|
||||
import os
|
||||
import sys
|
||||
import threading
|
||||
import time
|
||||
|
||||
sys.path[0:0] = [""]
|
||||
|
||||
from test import IntegrationTest, unittest
|
||||
from test.pymongo_mocks import DummyMonitor
|
||||
from test.unified_format import generate_test_classes
|
||||
from test.utils import (
|
||||
CMAPListener,
|
||||
HeartbeatEventListener,
|
||||
TestCreator,
|
||||
assertion_context,
|
||||
client_context,
|
||||
get_pool,
|
||||
@ -35,7 +34,6 @@ from test.utils import (
|
||||
single_client,
|
||||
wait_until,
|
||||
)
|
||||
from test.utils_spec_runner import SpecRunner, SpecRunnerThread
|
||||
|
||||
from bson import Timestamp, json_util
|
||||
from pymongo import common, monitoring
|
||||
@ -55,7 +53,7 @@ from pymongo.topology_description import TOPOLOGY_TYPE
|
||||
from pymongo.uri_parser import parse_uri
|
||||
|
||||
# Location of JSON test specifications.
|
||||
_TEST_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), "discovery_and_monitoring")
|
||||
SDAM_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), "discovery_and_monitoring")
|
||||
|
||||
|
||||
def create_mock_topology(uri, monitor_class=DummyMonitor):
|
||||
@ -216,8 +214,11 @@ def create_test(scenario_def):
|
||||
|
||||
|
||||
def create_tests():
|
||||
for dirpath, _, filenames in os.walk(_TEST_PATH):
|
||||
for dirpath, _, filenames in os.walk(SDAM_PATH):
|
||||
dirname = os.path.split(dirpath)[-1]
|
||||
# SDAM unified tests are handled separately.
|
||||
if dirname == "unified":
|
||||
continue
|
||||
|
||||
for filename in filenames:
|
||||
if os.path.splitext(filename)[1] != ".json":
|
||||
@ -340,107 +341,8 @@ class TestPoolManagement(IntegrationTest):
|
||||
listener.wait_for_event(monitoring.PoolReadyEvent, 1)
|
||||
|
||||
|
||||
class TestIntegration(SpecRunner):
|
||||
# Location of JSON test specifications.
|
||||
TEST_PATH = os.path.join(
|
||||
os.path.dirname(os.path.realpath(__file__)), "discovery_and_monitoring_integration"
|
||||
)
|
||||
|
||||
def _event_count(self, event):
|
||||
if event == "ServerMarkedUnknownEvent":
|
||||
|
||||
def marked_unknown(e):
|
||||
return (
|
||||
isinstance(e, monitoring.ServerDescriptionChangedEvent)
|
||||
and not e.new_description.is_server_type_known
|
||||
)
|
||||
|
||||
assert self.server_listener is not None
|
||||
return len(self.server_listener.matching(marked_unknown))
|
||||
# Only support CMAP events for now.
|
||||
self.assertTrue(event.startswith("Pool") or event.startswith("Conn"))
|
||||
event_type = getattr(monitoring, event)
|
||||
assert self.pool_listener is not None
|
||||
return self.pool_listener.event_count(event_type)
|
||||
|
||||
def assert_event_count(self, event, count):
|
||||
"""Run the assertEventCount test operation.
|
||||
|
||||
Assert the given event was published exactly `count` times.
|
||||
"""
|
||||
self.assertEqual(self._event_count(event), count, "expected %s not %r" % (count, event))
|
||||
|
||||
def wait_for_event(self, event, count):
|
||||
"""Run the waitForEvent test operation.
|
||||
|
||||
Wait for a number of events to be published, or fail.
|
||||
"""
|
||||
wait_until(
|
||||
lambda: self._event_count(event) >= count, "find %s %s event(s)" % (count, event)
|
||||
)
|
||||
|
||||
def configure_fail_point(self, fail_point):
|
||||
"""Run the configureFailPoint test operation."""
|
||||
self.set_fail_point(fail_point)
|
||||
self.addCleanup(
|
||||
self.set_fail_point,
|
||||
{"configureFailPoint": fail_point["configureFailPoint"], "mode": "off"},
|
||||
)
|
||||
|
||||
def run_admin_command(self, command, **kwargs):
|
||||
"""Run the runAdminCommand test operation."""
|
||||
self.client.admin.command(command, **kwargs)
|
||||
|
||||
def record_primary(self):
|
||||
"""Run the recordPrimary test operation."""
|
||||
self._previous_primary = self.scenario_client.primary
|
||||
|
||||
def wait_for_primary_change(self, timeout):
|
||||
"""Run the waitForPrimaryChange test operation."""
|
||||
|
||||
def primary_changed():
|
||||
primary = self.scenario_client.primary
|
||||
if primary is None:
|
||||
return False
|
||||
return primary != self._previous_primary
|
||||
|
||||
wait_until(primary_changed, "change primary", timeout=timeout)
|
||||
|
||||
def wait(self, ms):
|
||||
"""Run the "wait" test operation."""
|
||||
time.sleep(ms / 1000.0)
|
||||
|
||||
def start_thread(self, name):
|
||||
"""Run the 'startThread' thread operation."""
|
||||
thread = SpecRunnerThread(name)
|
||||
thread.start()
|
||||
self.targets[name] = thread
|
||||
|
||||
def run_on_thread(self, sessions, collection, name, operation):
|
||||
"""Run the 'runOnThread' operation."""
|
||||
thread = self.targets[name]
|
||||
thread.schedule(lambda: self._run_op(sessions, collection, operation, False))
|
||||
|
||||
def wait_for_thread(self, name):
|
||||
"""Run the 'waitForThread' operation."""
|
||||
thread = self.targets[name]
|
||||
thread.stop()
|
||||
thread.join(60)
|
||||
if thread.exc:
|
||||
raise thread.exc
|
||||
self.assertFalse(thread.is_alive(), "Thread %s is still running" % (name,))
|
||||
|
||||
|
||||
def create_spec_test(scenario_def, test, name):
|
||||
@client_context.require_test_commands
|
||||
def run_scenario(self):
|
||||
self.run_scenario(scenario_def, test)
|
||||
|
||||
return run_scenario
|
||||
|
||||
|
||||
test_creator = TestCreator(create_spec_test, TestIntegration, TestIntegration.TEST_PATH)
|
||||
test_creator.create_tests()
|
||||
# Generate unified tests.
|
||||
globals().update(generate_test_classes(os.path.join(SDAM_PATH, "unified"), module=__name__))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
{
|
||||
"description": "entity-thread-additionalProperties",
|
||||
"schemaVersion": "1.10",
|
||||
"createEntities": [
|
||||
{
|
||||
"thread": {
|
||||
"id": "thread0",
|
||||
"foo": "bar"
|
||||
}
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "foo",
|
||||
"operations": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
{
|
||||
"description": "entity-thread-id-required",
|
||||
"schemaVersion": "1.10",
|
||||
"createEntities": [
|
||||
{
|
||||
"thread": {}
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "foo",
|
||||
"operations": []
|
||||
}
|
||||
]
|
||||
}
|
||||
17
test/unified-test-format/invalid/entity-thread-id-type.json
Normal file
17
test/unified-test-format/invalid/entity-thread-id-type.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"description": "entity-thread-id-type",
|
||||
"schemaVersion": "1.10",
|
||||
"createEntities": [
|
||||
{
|
||||
"thread": {
|
||||
"id": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "foo",
|
||||
"operations": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
{
|
||||
"description": "expectedSdamEvent-serverDescriptionChangedEvent-additionalProperties",
|
||||
"schemaVersion": "1.10",
|
||||
"tests": [
|
||||
{
|
||||
"description": "foo",
|
||||
"operations": [],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client0",
|
||||
"eventType": "sdam",
|
||||
"events": [
|
||||
{
|
||||
"serverDescriptionChangedEvent": {
|
||||
"foo": "bar"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
{
|
||||
"description": "expectedSdamEvent-serverDescriptionChangedEvent-serverDescription-additionalProperties",
|
||||
"schemaVersion": "1.10",
|
||||
"tests": [
|
||||
{
|
||||
"description": "foo",
|
||||
"operations": [],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client0",
|
||||
"eventType": "sdam",
|
||||
"events": [
|
||||
{
|
||||
"serverDescriptionChangedEvent": {
|
||||
"previousDescription": {
|
||||
"foo": "bar"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
{
|
||||
"description": "expectedSdamEvent-serverDescriptionChangedEvent-serverDescription-type-enum",
|
||||
"schemaVersion": "1.10",
|
||||
"tests": [
|
||||
{
|
||||
"description": "foo",
|
||||
"operations": [],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client0",
|
||||
"eventType": "sdam",
|
||||
"events": [
|
||||
{
|
||||
"serverDescriptionChangedEvent": {
|
||||
"previousDescription": {
|
||||
"type": "not a server type"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
{
|
||||
"description": "expectedSdamEvent-serverDescriptionChangedEvent-serverDescription-type-type",
|
||||
"schemaVersion": "1.10",
|
||||
"tests": [
|
||||
{
|
||||
"description": "foo",
|
||||
"operations": [],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client0",
|
||||
"eventType": "sdam",
|
||||
"events": [
|
||||
{
|
||||
"serverDescriptionChangedEvent": {
|
||||
"previousDescription": {
|
||||
"type": 12
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -50,9 +50,11 @@ from test.utils import (
|
||||
rs_or_single_client,
|
||||
single_client,
|
||||
snake_to_camel,
|
||||
wait_until,
|
||||
)
|
||||
from test.utils_spec_runner import SpecRunnerThread
|
||||
from test.version import Version
|
||||
from typing import Any, List
|
||||
from typing import Any, Dict, List, Mapping, Optional
|
||||
|
||||
import pymongo
|
||||
from bson import SON, Code, DBRef, Decimal128, Int64, MaxKey, MinKey, json_util
|
||||
@ -94,11 +96,24 @@ from pymongo.monitoring import (
|
||||
PoolClosedEvent,
|
||||
PoolCreatedEvent,
|
||||
PoolReadyEvent,
|
||||
ServerClosedEvent,
|
||||
ServerDescriptionChangedEvent,
|
||||
ServerListener,
|
||||
ServerOpeningEvent,
|
||||
TopologyEvent,
|
||||
_CommandEvent,
|
||||
_ConnectionEvent,
|
||||
_PoolEvent,
|
||||
_ServerEvent,
|
||||
)
|
||||
from pymongo.read_concern import ReadConcern
|
||||
from pymongo.read_preferences import ReadPreference
|
||||
from pymongo.results import BulkWriteResult
|
||||
from pymongo.server_api import ServerApi
|
||||
from pymongo.server_description import ServerDescription
|
||||
from pymongo.server_selectors import Selection, writable_server_selector
|
||||
from pymongo.server_type import SERVER_TYPE
|
||||
from pymongo.topology_description import TopologyDescription
|
||||
from pymongo.write_concern import WriteConcern
|
||||
|
||||
JSON_OPTS = json_util.JSONOptions(tz_aware=False)
|
||||
@ -268,7 +283,7 @@ class NonLazyCursor(object):
|
||||
self.client = None
|
||||
|
||||
|
||||
class EventListenerUtil(CMAPListener, CommandListener):
|
||||
class EventListenerUtil(CMAPListener, CommandListener, ServerListener):
|
||||
def __init__(
|
||||
self, observe_events, ignore_commands, observe_sensitive_commands, store_events, entity_map
|
||||
):
|
||||
@ -292,9 +307,14 @@ class EventListenerUtil(CMAPListener, CommandListener):
|
||||
super(EventListenerUtil, self).__init__()
|
||||
|
||||
def get_events(self, event_type):
|
||||
assert event_type in ("command", "cmap", "sdam", "all"), event_type
|
||||
if event_type == "all":
|
||||
return list(self.events)
|
||||
if event_type == "command":
|
||||
return [e for e in self.events if "Command" in type(e).__name__]
|
||||
return [e for e in self.events if "Command" not in type(e).__name__]
|
||||
return [e for e in self.events if isinstance(e, _CommandEvent)]
|
||||
if event_type == "cmap":
|
||||
return [e for e in self.events if isinstance(e, (_ConnectionEvent, _PoolEvent))]
|
||||
return [e for e in self.events if isinstance(e, (_ServerEvent, TopologyEvent))]
|
||||
|
||||
def add_event(self, event):
|
||||
event_name = type(event).__name__.lower()
|
||||
@ -332,16 +352,25 @@ class EventListenerUtil(CMAPListener, CommandListener):
|
||||
def failed(self, event):
|
||||
self._command_event(event)
|
||||
|
||||
def opened(self, event: ServerOpeningEvent) -> None:
|
||||
self.add_event(event)
|
||||
|
||||
def description_changed(self, event: ServerDescriptionChangedEvent) -> None:
|
||||
self.add_event(event)
|
||||
|
||||
def closed(self, event: ServerClosedEvent) -> None:
|
||||
self.add_event(event)
|
||||
|
||||
|
||||
class EntityMapUtil(object):
|
||||
"""Utility class that implements an entity map as per the unified
|
||||
test format specification."""
|
||||
|
||||
def __init__(self, test_class):
|
||||
self._entities = {}
|
||||
self._listeners = {}
|
||||
self._session_lsids = {}
|
||||
self.test = test_class
|
||||
self._entities: Dict[str, Any] = {}
|
||||
self._listeners: Dict[str, EventListenerUtil] = {}
|
||||
self._session_lsids: Dict[str, Mapping[str, Any]] = {}
|
||||
self.test: UnifiedSpecTestMixinV1 = test_class
|
||||
|
||||
def __contains__(self, item):
|
||||
return item in self._entities
|
||||
@ -484,6 +513,12 @@ class EntityMapUtil(object):
|
||||
opts.get("kms_tls_options", KMS_TLS_OPTS),
|
||||
)
|
||||
return
|
||||
elif entity_type == "thread":
|
||||
name = spec["id"]
|
||||
thread = SpecRunnerThread(name)
|
||||
thread.start()
|
||||
self[name] = thread
|
||||
return
|
||||
|
||||
self.test.fail("Unable to create entity of unknown type %s" % (entity_type,))
|
||||
|
||||
@ -491,7 +526,7 @@ class EntityMapUtil(object):
|
||||
for spec in entity_spec:
|
||||
self._create_entity(spec, uri=uri)
|
||||
|
||||
def get_listener_for_client(self, client_name):
|
||||
def get_listener_for_client(self, client_name: str) -> EventListenerUtil:
|
||||
client = self[client_name]
|
||||
if not isinstance(client, MongoClient):
|
||||
self.test.fail(
|
||||
@ -710,6 +745,18 @@ class MatchEvaluatorUtil(object):
|
||||
else:
|
||||
self.test.assertIsNone(actual.service_id)
|
||||
|
||||
def match_server_description(self, actual: ServerDescription, spec: dict) -> None:
|
||||
if "type" in spec:
|
||||
self.test.assertEqual(actual.server_type_name, spec["type"])
|
||||
if "error" in spec:
|
||||
self.test.process_error(actual.error, spec["error"])
|
||||
if "minWireVersion" in spec:
|
||||
self.test.assertEqual(actual.min_wire_version, spec["minWireVersion"])
|
||||
if "maxWireVersion" in spec:
|
||||
self.test.assertEqual(actual.max_wire_version, spec["maxWireVersion"])
|
||||
if "topologyVersion" in spec:
|
||||
self.test.assertEqual(actual.topology_version, spec["topologyVersion"])
|
||||
|
||||
def match_event(self, event_type, expectation, actual):
|
||||
name, spec = next(iter(expectation.items()))
|
||||
|
||||
@ -770,8 +817,16 @@ class MatchEvaluatorUtil(object):
|
||||
self.test.assertIsInstance(actual, ConnectionCheckedOutEvent)
|
||||
elif name == "connectionCheckedInEvent":
|
||||
self.test.assertIsInstance(actual, ConnectionCheckedInEvent)
|
||||
elif name == "serverDescriptionChangedEvent":
|
||||
self.test.assertIsInstance(actual, ServerDescriptionChangedEvent)
|
||||
if "previousDescription" in spec:
|
||||
self.match_server_description(
|
||||
actual.previous_description, spec["previousDescription"]
|
||||
)
|
||||
if "newDescription" in spec:
|
||||
self.match_server_description(actual.new_description, spec["newDescription"])
|
||||
else:
|
||||
self.test.fail("Unsupported event type %s" % (name,))
|
||||
raise Exception("Unsupported event type %s" % (name,))
|
||||
|
||||
|
||||
def coerce_result(opname, result):
|
||||
@ -805,7 +860,7 @@ class UnifiedSpecTestMixinV1(IntegrationTest):
|
||||
a class attribute ``TEST_SPEC``.
|
||||
"""
|
||||
|
||||
SCHEMA_VERSION = Version.from_string("1.9")
|
||||
SCHEMA_VERSION = Version.from_string("1.10")
|
||||
RUN_ON_LOAD_BALANCER = True
|
||||
RUN_ON_SERVERLESS = True
|
||||
TEST_SPEC: Any
|
||||
@ -1339,6 +1394,90 @@ class UnifiedSpecTestMixinV1(IntegrationTest):
|
||||
pool = get_pool(client)
|
||||
self.assertEqual(spec["connections"], pool.active_sockets)
|
||||
|
||||
def _event_count(self, client_name, event):
|
||||
listener = self.entity_map.get_listener_for_client(client_name)
|
||||
actual_events = listener.get_events("all")
|
||||
count = 0
|
||||
for actual in actual_events:
|
||||
try:
|
||||
self.match_evaluator.match_event("all", event, actual)
|
||||
except AssertionError:
|
||||
continue
|
||||
else:
|
||||
count += 1
|
||||
return count
|
||||
|
||||
def _testOperation_assertEventCount(self, spec):
|
||||
"""Run the assertEventCount test operation.
|
||||
|
||||
Assert the given event was published exactly `count` times.
|
||||
"""
|
||||
client, event, count = spec["client"], spec["event"], spec["count"]
|
||||
self.assertEqual(
|
||||
self._event_count(client, event), count, "expected %s not %r" % (count, event)
|
||||
)
|
||||
|
||||
def _testOperation_waitForEvent(self, spec):
|
||||
"""Run the waitForEvent test operation.
|
||||
|
||||
Wait for a number of events to be published, or fail.
|
||||
"""
|
||||
client, event, count = spec["client"], spec["event"], spec["count"]
|
||||
wait_until(
|
||||
lambda: self._event_count(client, event) >= count,
|
||||
"find %s %s event(s)" % (count, event),
|
||||
)
|
||||
|
||||
def _testOperation_wait(self, spec):
|
||||
"""Run the "wait" test operation."""
|
||||
time.sleep(spec["ms"] / 1000.0)
|
||||
|
||||
def _testOperation_recordTopologyDescription(self, spec):
|
||||
"""Run the recordTopologyDescription test operation."""
|
||||
self.entity_map[spec["id"]] = self.entity_map[spec["client"]].topology_description
|
||||
|
||||
def _testOperation_assertTopologyType(self, spec):
|
||||
"""Run the assertTopologyType test operation."""
|
||||
description = self.entity_map[spec["topologyDescription"]]
|
||||
self.assertIsInstance(description, TopologyDescription)
|
||||
self.assertEqual(description.topology_type_name, spec["topologyType"])
|
||||
|
||||
def _testOperation_waitForPrimaryChange(self, spec):
|
||||
"""Run the waitForPrimaryChange test operation."""
|
||||
client = self.entity_map[spec["client"]]
|
||||
old_description: TopologyDescription = self.entity_map[spec["priorTopologyDescription"]]
|
||||
timeout = spec["timeoutMS"] / 1000.0
|
||||
|
||||
def get_primary(td: TopologyDescription) -> Optional[ServerDescription]:
|
||||
servers = writable_server_selector(Selection.from_topology_description(td))
|
||||
if servers and servers[0].server_type == SERVER_TYPE.RSPrimary:
|
||||
return servers[0]
|
||||
return None
|
||||
|
||||
old_primary = get_primary(old_description)
|
||||
|
||||
def primary_changed():
|
||||
primary = client.primary
|
||||
if primary is None:
|
||||
return False
|
||||
return primary != old_primary
|
||||
|
||||
wait_until(primary_changed, "change primary", timeout=timeout)
|
||||
|
||||
def _testOperation_runOnThread(self, spec):
|
||||
"""Run the 'runOnThread' operation."""
|
||||
thread = self.entity_map[spec["thread"]]
|
||||
thread.schedule(lambda: self.run_entity_operation(spec["operation"]))
|
||||
|
||||
def _testOperation_waitForThread(self, spec):
|
||||
"""Run the 'waitForThread' operation."""
|
||||
thread = self.entity_map[spec["thread"]]
|
||||
thread.stop()
|
||||
thread.join(10)
|
||||
if thread.exc:
|
||||
raise thread.exc
|
||||
self.assertFalse(thread.is_alive(), "Thread %s is still running" % (spec["thread"],))
|
||||
|
||||
def _testOperation_loop(self, spec):
|
||||
failure_key = spec.get("storeFailuresAsEntity")
|
||||
error_key = spec.get("storeErrorsAsEntity")
|
||||
@ -1398,14 +1537,10 @@ class UnifiedSpecTestMixinV1(IntegrationTest):
|
||||
for event_spec in spec:
|
||||
client_name = event_spec["client"]
|
||||
events = event_spec["events"]
|
||||
# Valid types: 'command', 'cmap'
|
||||
event_type = event_spec.get("eventType", "command")
|
||||
ignore_extra_events = event_spec.get("ignoreExtraEvents", False)
|
||||
server_connection_id = event_spec.get("serverConnectionId")
|
||||
has_server_connection_id = event_spec.get("hasServerConnectionId", False)
|
||||
|
||||
assert event_type in ("command", "cmap")
|
||||
|
||||
listener = self.entity_map.get_listener_for_client(client_name)
|
||||
actual_events = listener.get_events(event_type)
|
||||
if ignore_extra_events:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user