...

Text file src/go.mongodb.org/mongo-driver/testdata/server-selection/logging/standalone.yml

Documentation: go.mongodb.org/mongo-driver/testdata/server-selection/logging

     1description: "standalone-logging"
     2
     3schemaVersion: "1.14"
     4
     5runOnRequirements:
     6  - topologies:
     7      - single
     8
     9createEntities:
    10  - client:
    11      id: &client client
    12      uriOptions:
    13        retryWrites: false # so we don't retry after hitting a failpoint
    14        heartbeatFrequencyMS: 500
    15        appName: &appName loggingClient
    16        serverSelectionTimeoutMS: 2000 # avoid hanging for 30s in test expecting SS failure due to timeout
    17      observeLogMessages:
    18        serverSelection: debug
    19      observeEvents:
    20        - serverDescriptionChangedEvent
    21        - topologyDescriptionChangedEvent
    22  - database:
    23      id: &database database
    24      client: *client
    25      databaseName: &databaseName logging-tests
    26  - collection:
    27      id: &collection collection
    28      database: *database
    29      collectionName: &collectionName server-selection
    30  - client:
    31      id: &failPointClient failPointClient
    32
    33tests:
    34  - description: "A successful operation"
    35    operations:
    36      # ensure we've discovered the server so it is immediately available
    37      # and no extra "waiting for suitable server" messages are emitted.
    38      # expected topology events reflect initial server discovery and server connect event.
    39      - name: waitForEvent
    40        object: testRunner
    41        arguments:
    42          client: *client
    43          event:
    44            topologyDescriptionChangedEvent: {}
    45          count: 2
    46      - name: insertOne
    47        object: *collection
    48        arguments:
    49          document: { x : 1 }
    50    expectLogMessages:
    51      - client: *client
    52        messages:
    53          - level: debug
    54            component: serverSelection
    55            data:
    56              message: "Server selection started"
    57              selector: { $$exists: true }
    58              operation: insert
    59              topologyDescription: { $$exists: true }
    60          - level: debug
    61            component: serverSelection
    62            data:
    63              message: "Server selection succeeded"
    64              selector: { $$exists: true }
    65              operation: insert
    66              topologyDescription: { $$exists: true }
    67              serverHost: { $$type: string }
    68              serverPort: { $$type: [int, long] }
    69
    70  - description: "Failure due to unreachable server"
    71    runOnRequirements:
    72      - minServerVersion: "4.4" # failCommand appname support
    73    operations:
    74      # fail all hello/legacy hello commands for the main client.
    75      - name: failPoint
    76        object: testRunner
    77        arguments:
    78          client: *failPointClient
    79          failPoint:
    80            configureFailPoint: failCommand
    81            mode: alwaysOn
    82            data:
    83              failCommands: ["hello", "ismaster"]
    84              appName: *appName
    85              closeConnection: true
    86      # wait until we've marked the server unknown due
    87      # to a failed heartbeat.
    88      - name: waitForEvent
    89        object: testRunner
    90        arguments:
    91          client: *client
    92          event:
    93            serverDescriptionChangedEvent:
    94              newDescription:
    95                type: Unknown
    96          count: 1
    97      - name: insertOne
    98        object: *collection
    99        arguments:
   100          document: { x : 1 }
   101        expectError:
   102          isClientError: true # server selection timeout
   103    expectLogMessages:
   104      - client: *client
   105        messages:
   106          - level: debug
   107            component: serverSelection
   108            data:
   109              message: "Server selection started"
   110              selector: { $$exists: true }
   111              operation: insert
   112              topologyDescription: { $$exists: true }
   113          - level: info
   114            component: serverSelection
   115            data:
   116              message: "Waiting for suitable server to become available"
   117              selector: { $$exists: true }
   118              operation: insert
   119              topologyDescription: { $$exists: true }
   120              remainingTimeMS: { $$type: [int, long] }
   121          - level: debug
   122            component: serverSelection
   123            data:
   124              message: "Server selection failed"
   125              selector: { $$exists: true }
   126              operation: insert
   127              topologyDescription: { $$exists: true }
   128              failure: { $$exists: true }

View as plain text