129 lines
4.1 KiB
YAML
129 lines
4.1 KiB
YAML
description: "standalone-logging"
|
|
|
|
schemaVersion: "1.14"
|
|
|
|
runOnRequirements:
|
|
- topologies:
|
|
- single
|
|
|
|
createEntities:
|
|
- client:
|
|
id: &client client
|
|
uriOptions:
|
|
retryWrites: false # so we don't retry after hitting a failpoint
|
|
heartbeatFrequencyMS: 500
|
|
appName: &appName loggingClient
|
|
serverSelectionTimeoutMS: 2000 # avoid hanging for 30s in test expecting SS failure due to timeout
|
|
observeLogMessages:
|
|
serverSelection: debug
|
|
observeEvents:
|
|
- serverDescriptionChangedEvent
|
|
- topologyDescriptionChangedEvent
|
|
- database:
|
|
id: &database database
|
|
client: *client
|
|
databaseName: &databaseName logging-tests
|
|
- collection:
|
|
id: &collection collection
|
|
database: *database
|
|
collectionName: &collectionName server-selection
|
|
- client:
|
|
id: &failPointClient failPointClient
|
|
|
|
tests:
|
|
- description: "A successful operation"
|
|
operations:
|
|
# ensure we've discovered the server so it is immediately available
|
|
# and no extra "waiting for suitable server" messages are emitted.
|
|
# expected topology events reflect initial server discovery and server connect event.
|
|
- name: waitForEvent
|
|
object: testRunner
|
|
arguments:
|
|
client: *client
|
|
event:
|
|
topologyDescriptionChangedEvent: {}
|
|
count: 2
|
|
- name: insertOne
|
|
object: *collection
|
|
arguments:
|
|
document: { x : 1 }
|
|
expectLogMessages:
|
|
- client: *client
|
|
messages:
|
|
- level: debug
|
|
component: serverSelection
|
|
data:
|
|
message: "Server selection started"
|
|
selector: { $$exists: true }
|
|
operation: insert
|
|
topologyDescription: { $$exists: true }
|
|
- level: debug
|
|
component: serverSelection
|
|
data:
|
|
message: "Server selection succeeded"
|
|
selector: { $$exists: true }
|
|
operation: insert
|
|
topologyDescription: { $$exists: true }
|
|
serverHost: { $$type: string }
|
|
serverPort: { $$type: [int, long] }
|
|
|
|
- description: "Failure due to unreachable server"
|
|
runOnRequirements:
|
|
- minServerVersion: "4.4" # failCommand appname support
|
|
operations:
|
|
# fail all hello/legacy hello commands for the main client.
|
|
- name: failPoint
|
|
object: testRunner
|
|
arguments:
|
|
client: *failPointClient
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: alwaysOn
|
|
data:
|
|
failCommands: ["hello", "ismaster"]
|
|
appName: *appName
|
|
closeConnection: true
|
|
# wait until we've marked the server unknown due
|
|
# to a failed heartbeat.
|
|
- name: waitForEvent
|
|
object: testRunner
|
|
arguments:
|
|
client: *client
|
|
event:
|
|
serverDescriptionChangedEvent:
|
|
newDescription:
|
|
type: Unknown
|
|
count: 1
|
|
- name: insertOne
|
|
object: *collection
|
|
arguments:
|
|
document: { x : 1 }
|
|
expectError:
|
|
isClientError: true # server selection timeout
|
|
expectLogMessages:
|
|
- client: *client
|
|
messages:
|
|
- level: debug
|
|
component: serverSelection
|
|
data:
|
|
message: "Server selection started"
|
|
selector: { $$exists: true }
|
|
operation: insert
|
|
topologyDescription: { $$exists: true }
|
|
- level: info
|
|
component: serverSelection
|
|
data:
|
|
message: "Waiting for suitable server to become available"
|
|
selector: { $$exists: true }
|
|
operation: insert
|
|
topologyDescription: { $$exists: true }
|
|
remainingTimeMS: { $$type: [int, long] }
|
|
- level: debug
|
|
component: serverSelection
|
|
data:
|
|
message: "Server selection failed"
|
|
selector: { $$exists: true }
|
|
operation: insert
|
|
topologyDescription: { $$exists: true }
|
|
failure: { $$exists: true }
|