File: minPoolSize-error.yml

package info (click to toggle)
golang-mongodb-mongo-driver 1.8.1%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 18,500 kB
  • sloc: perl: 533; ansic: 491; python: 432; makefile: 187; sh: 72
file content (77 lines) | stat: -rw-r--r-- 2,408 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# Test SDAM error handling.
runOn:
    # failCommand appName requirements
    - minServerVersion: "4.9"

database_name: &database_name "sdam-tests"
collection_name: &collection_name "sdam-minPoolSize-error"

data: []

tests:
  - description: Network error on minPoolSize background creation
    # Configure the initial monitor handshake to succeed but the
    # first or second background minPoolSize establishments to fail.
    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:
      # Wait for monitor to succeed handshake and mark the pool as ready.
      - name: waitForEvent
        object: testRunner
        arguments:
          event: PoolReadyEvent
          count: 1
      # Background connection establishment ensuring minPoolSize should fail,
      # causing the pool to be cleared.
      - name: waitForEvent
        object: testRunner
        arguments:
          event: PoolClearedEvent
          count: 1
      # The server should be marked as Unknown as part of this.
      - name: waitForEvent
        object: testRunner
        arguments:
          event: ServerMarkedUnknownEvent
          count: 1
      # Executing a command should fail server selection due to not being able
      # to find the primary.
      - name: runCommand
        object: database
        command_name: ping
        arguments:
          command:
            ping: {}
        error: true
      # Disable the failpoint, allowing the monitor to discover the primary again.
      - name: configureFailPoint
        object: testRunner
        arguments:
          failPoint:
            configureFailPoint: failCommand
            mode: off
      # Perform an operation to ensure the node is discovered.
      - name: runCommand
        object: database
        command_name: ping
        arguments:
          command:
            ping: 1
        error: false
      # Assert that the monitor discovered the primary and mark the pool as ready again.
      - name: assertEventCount
        object: testRunner
        arguments:
          event: PoolReadyEvent
          count: 2