255 lines
8.3 KiB
YAML
255 lines
8.3 KiB
YAML
description: "connection-pool-options"
|
|
|
|
schemaVersion: "1.13"
|
|
|
|
runOnRequirements:
|
|
- topologies:
|
|
- single # The number of log messages is different for each topology since there is a connection pool per host.
|
|
|
|
tests:
|
|
- description: "Options should be included in connection pool created message when specified"
|
|
operations:
|
|
- name: createEntities
|
|
object: testRunner
|
|
arguments:
|
|
entities:
|
|
- client:
|
|
id: &client client
|
|
# Observe and wait on a connection ready event for the connection created in the background.
|
|
# This is to avoid raciness around whether the background thread has created the connection
|
|
# (and whether corresponding log messages have been generated) by the time log message assertions
|
|
# are made.
|
|
observeEvents:
|
|
- connectionReadyEvent
|
|
observeLogMessages:
|
|
connection: debug
|
|
uriOptions:
|
|
minPoolSize: 1
|
|
maxPoolSize: 5
|
|
maxIdleTimeMS: 10000
|
|
|
|
- name: waitForEvent
|
|
object: testRunner
|
|
arguments:
|
|
client: *client
|
|
event:
|
|
connectionReadyEvent: {}
|
|
count: 1
|
|
|
|
expectLogMessages:
|
|
- client: *client
|
|
messages:
|
|
- level: debug
|
|
component: connection
|
|
data:
|
|
message: "Connection pool created"
|
|
serverHost: { $$type: string }
|
|
serverPort: { $$type: [int, long] }
|
|
minPoolSize: 1
|
|
maxPoolSize: 5
|
|
maxIdleTimeMS: 10000
|
|
|
|
- level: debug
|
|
component: connection
|
|
data:
|
|
message: "Connection pool ready"
|
|
serverHost: { $$type: string }
|
|
serverPort: { $$type: [int, long] }
|
|
|
|
- level: debug
|
|
component: connection
|
|
data:
|
|
message: "Connection created"
|
|
driverConnectionId: { $$type: [int, long] }
|
|
serverHost: { $$type: string }
|
|
serverPort: { $$type: [int, long] }
|
|
|
|
- level: debug
|
|
component: connection
|
|
data:
|
|
message: "Connection ready"
|
|
driverConnectionId: { $$type: [int, long] }
|
|
serverHost: { $$type: string }
|
|
serverPort: { $$type: [int, long] }
|
|
durationMS: { $$type: [double, int, long] }
|
|
|
|
# Drivers who have not done DRIVERS-1943 will need to skip this test.
|
|
- description: "maxConnecting should be included in connection pool created message when specified"
|
|
operations:
|
|
- name: createEntities
|
|
object: testRunner
|
|
arguments:
|
|
entities:
|
|
- client:
|
|
id: &client client
|
|
# Observe and wait for a poolReadyEvent so we can ensure the pool has been created and is
|
|
# ready by the time we assert on log messages, in order to avoid raciness around which messages
|
|
# are emitted.
|
|
observeEvents:
|
|
- poolReadyEvent
|
|
observeLogMessages:
|
|
connection: debug
|
|
uriOptions:
|
|
maxConnecting: 5
|
|
|
|
- name: waitForEvent
|
|
object: testRunner
|
|
arguments:
|
|
client: *client
|
|
event:
|
|
poolReadyEvent: {}
|
|
count: 1
|
|
|
|
expectLogMessages:
|
|
- client: *client
|
|
messages:
|
|
- level: debug
|
|
component: connection
|
|
data:
|
|
message: "Connection pool created"
|
|
serverHost: { $$type: string }
|
|
serverPort: { $$type: [int, long] }
|
|
maxConnecting: 5
|
|
|
|
- level: debug
|
|
component: connection
|
|
data:
|
|
message: "Connection pool ready"
|
|
serverHost: { $$type: string }
|
|
serverPort: { $$type: [int, long] }
|
|
|
|
# Drivers that do not support waitQueueTimeoutMS will need to skip this test.
|
|
- description: "waitQueueTimeoutMS should be included in connection pool created message when specified"
|
|
operations:
|
|
- name: createEntities
|
|
object: testRunner
|
|
arguments:
|
|
entities:
|
|
- client:
|
|
id: &client client
|
|
# Observe and wait for a poolReadyEvent so we can ensure the pool has been created and is
|
|
# ready by the time we assert on log messages, in order to avoid raciness around which messages
|
|
# are emitted.
|
|
observeEvents:
|
|
- poolReadyEvent
|
|
observeLogMessages:
|
|
connection: debug
|
|
uriOptions:
|
|
waitQueueTimeoutMS: 10000
|
|
|
|
- name: waitForEvent
|
|
object: testRunner
|
|
arguments:
|
|
client: *client
|
|
event:
|
|
poolReadyEvent: {}
|
|
count: 1
|
|
|
|
expectLogMessages:
|
|
- client: *client
|
|
messages:
|
|
- level: debug
|
|
component: connection
|
|
data:
|
|
message: "Connection pool created"
|
|
serverHost: { $$type: string }
|
|
serverPort: { $$type: [int, long] }
|
|
waitQueueTimeoutMS: 10000
|
|
|
|
- level: debug
|
|
component: connection
|
|
data:
|
|
message: "Connection pool ready"
|
|
serverHost: { $$type: string }
|
|
serverPort: { $$type: [int, long] }
|
|
|
|
# Drivers that do not support waitQueueSize will need to skip this test.
|
|
- description: "waitQueueSize should be included in connection pool created message when specified"
|
|
operations:
|
|
- name: createEntities
|
|
object: testRunner
|
|
arguments:
|
|
entities:
|
|
- client:
|
|
id: &client client
|
|
# Observe and wait for a poolReadyEvent so we can ensure the pool has been created and is
|
|
# ready by the time we assert on log messages, in order to avoid raciness around which messages
|
|
# are emitted.
|
|
observeEvents:
|
|
- poolReadyEvent
|
|
observeLogMessages:
|
|
connection: debug
|
|
uriOptions:
|
|
waitQueueSize: 100
|
|
|
|
- name: waitForEvent
|
|
object: testRunner
|
|
arguments:
|
|
client: *client
|
|
event:
|
|
poolReadyEvent: {}
|
|
count: 1
|
|
|
|
expectLogMessages:
|
|
- client: *client
|
|
messages:
|
|
- level: debug
|
|
component: connection
|
|
data:
|
|
message: "Connection pool created"
|
|
serverHost: { $$type: string }
|
|
serverPort: { $$type: [int, long] }
|
|
waitQueueSize: 100
|
|
|
|
- level: debug
|
|
component: connection
|
|
data:
|
|
message: "Connection pool ready"
|
|
serverHost: { $$type: string }
|
|
serverPort: { $$type: [int, long] }
|
|
|
|
# Drivers that do not support waitQueueMultiple will need to skip this test.
|
|
- description: "waitQueueMultiple should be included in connection pool created message when specified"
|
|
operations:
|
|
- name: createEntities
|
|
object: testRunner
|
|
arguments:
|
|
entities:
|
|
- client:
|
|
id: &client client
|
|
# Observe and wait for a poolReadyEvent so we can ensure the pool has been created and is
|
|
# ready by the time we assert on log messages, in order to avoid raciness around which messages
|
|
# are emitted.
|
|
observeEvents:
|
|
- poolReadyEvent
|
|
observeLogMessages:
|
|
connection: debug
|
|
uriOptions:
|
|
waitQueueSize: 5
|
|
|
|
- name: waitForEvent
|
|
object: testRunner
|
|
arguments:
|
|
client: *client
|
|
event:
|
|
poolReadyEvent: {}
|
|
count: 1
|
|
|
|
expectLogMessages:
|
|
- client: *client
|
|
messages:
|
|
- level: debug
|
|
component: connection
|
|
data:
|
|
message: "Connection pool created"
|
|
serverHost: { $$type: string }
|
|
serverPort: { $$type: [int, long] }
|
|
waitQueueMultiple: 5
|
|
|
|
- level: debug
|
|
component: connection
|
|
data:
|
|
message: "Connection pool ready"
|
|
serverHost: { $$type: string }
|
|
serverPort: { $$type: [int, long] }
|