mongo 2.11.0.rc0 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/Rakefile +2 -0
  5. data/lib/mongo/auth.rb +11 -2
  6. data/lib/mongo/auth/cr/conversation.rb +1 -1
  7. data/lib/mongo/auth/ldap/conversation.rb +1 -1
  8. data/lib/mongo/auth/scram/conversation.rb +4 -1
  9. data/lib/mongo/auth/user.rb +15 -1
  10. data/lib/mongo/auth/user/view.rb +10 -4
  11. data/lib/mongo/auth/x509.rb +11 -1
  12. data/lib/mongo/auth/x509/conversation.rb +15 -6
  13. data/lib/mongo/background_thread.rb +28 -13
  14. data/lib/mongo/client.rb +23 -15
  15. data/lib/mongo/collection/view/change_stream.rb +5 -1
  16. data/lib/mongo/collection/view/readable.rb +5 -2
  17. data/lib/mongo/collection/view/writable.rb +3 -1
  18. data/lib/mongo/cursor/builder/get_more_command.rb +4 -1
  19. data/lib/mongo/cursor/builder/kill_cursors_command.rb +16 -5
  20. data/lib/mongo/cursor/builder/op_get_more.rb +2 -2
  21. data/lib/mongo/cursor/builder/op_kill_cursors.rb +17 -5
  22. data/lib/mongo/error/operation_failure.rb +3 -3
  23. data/lib/mongo/monitoring/command_log_subscriber.rb +5 -3
  24. data/lib/mongo/monitoring/event/command_started.rb +13 -3
  25. data/lib/mongo/monitoring/publishable.rb +4 -2
  26. data/lib/mongo/operation/create_user/command.rb +1 -0
  27. data/lib/mongo/operation/remove_user/command.rb +1 -0
  28. data/lib/mongo/operation/update_user/command.rb +1 -0
  29. data/lib/mongo/protocol/get_more.rb +2 -1
  30. data/lib/mongo/protocol/kill_cursors.rb +6 -13
  31. data/lib/mongo/protocol/serializers.rb +10 -4
  32. data/lib/mongo/retryable.rb +1 -1
  33. data/lib/mongo/server/connection.rb +6 -2
  34. data/lib/mongo/server/connection_base.rb +2 -1
  35. data/lib/mongo/server/monitor.rb +1 -1
  36. data/lib/mongo/server/pending_connection.rb +6 -0
  37. data/lib/mongo/socket/ssl.rb +1 -1
  38. data/lib/mongo/uri.rb +5 -41
  39. data/lib/mongo/version.rb +1 -1
  40. data/mongo.gemspec +11 -2
  41. data/spec/README.md +105 -9
  42. data/spec/USERS.md +72 -0
  43. data/spec/integration/auth_spec.rb +20 -6
  44. data/spec/integration/client_construction_spec.rb +3 -1
  45. data/spec/integration/client_options_spec.rb +437 -0
  46. data/spec/integration/command_monitoring_spec.rb +4 -1
  47. data/spec/integration/connection_pool_populator_spec.rb +4 -0
  48. data/spec/integration/connection_spec.rb +4 -2
  49. data/spec/integration/cursor_reaping_spec.rb +1 -1
  50. data/spec/integration/get_more_spec.rb +32 -0
  51. data/spec/integration/retryable_errors_spec.rb +99 -0
  52. data/spec/integration/retryable_writes_errors_spec.rb +11 -10
  53. data/spec/lite_spec_helper.rb +2 -1
  54. data/spec/mongo/auth/scram_spec.rb +1 -0
  55. data/spec/mongo/auth/user/view_spec.rb +102 -1
  56. data/spec/mongo/auth/user_spec.rb +56 -15
  57. data/spec/mongo/auth/x509_spec.rb +31 -1
  58. data/spec/mongo/bulk_write_spec.rb +2 -2
  59. data/spec/mongo/collection/view/change_stream_spec.rb +2 -2
  60. data/spec/mongo/collection/view/readable_spec.rb +8 -4
  61. data/spec/mongo/cursor/builder/get_more_command_spec.rb +4 -2
  62. data/spec/mongo/cursor/builder/op_get_more_spec.rb +4 -2
  63. data/spec/mongo/cursor_spec.rb +3 -3
  64. data/spec/mongo/retryable_spec.rb +31 -52
  65. data/spec/mongo/server/connection_auth_spec.rb +3 -0
  66. data/spec/mongo/server/connection_pool_spec.rb +4 -0
  67. data/spec/mongo/server/connection_spec.rb +12 -4
  68. data/spec/mongo/server/monitor_spec.rb +19 -1
  69. data/spec/mongo/socket/ssl_spec.rb +1 -1
  70. data/spec/mongo/uri/srv_protocol_spec.rb +0 -13
  71. data/spec/mongo/uri_option_parsing_spec.rb +0 -8
  72. data/spec/mongo/uri_spec.rb +6 -20
  73. data/spec/runners/connection_string.rb +116 -0
  74. data/spec/runners/read_write_concern_document.rb +67 -0
  75. data/spec/spec_tests/change_streams_spec.rb +17 -2
  76. data/spec/spec_tests/connection_string_spec.rb +2 -59
  77. data/spec/spec_tests/data/change_streams/change-streams-errors.yml +3 -3
  78. data/spec/spec_tests/data/change_streams/change-streams.yml +88 -20
  79. data/spec/spec_tests/data/cmap/connection-must-have-id.yml +6 -0
  80. data/spec/spec_tests/data/cmap/connection-must-order-ids.yml +6 -0
  81. data/spec/spec_tests/data/cmap/pool-checkin-destroy-closed.yml +3 -0
  82. data/spec/spec_tests/data/cmap/pool-checkin-destroy-stale.yml +3 -0
  83. data/spec/spec_tests/data/cmap/pool-checkin-make-available.yml +3 -0
  84. data/spec/spec_tests/data/cmap/pool-checkin.yml +1 -0
  85. data/spec/spec_tests/data/cmap/pool-checkout-connection.yml +2 -0
  86. data/spec/spec_tests/data/cmap/pool-checkout-error-closed.yml +5 -0
  87. data/spec/spec_tests/data/cmap/pool-checkout-multiple.yml +3 -0
  88. data/spec/spec_tests/data/cmap/pool-checkout-no-idle.yml +4 -0
  89. data/spec/spec_tests/data/cmap/pool-checkout-no-stale.yml +4 -0
  90. data/spec/spec_tests/data/cmap/pool-close-destroy-conns.yml +2 -0
  91. data/spec/spec_tests/data/cmap/pool-create-max-size.yml +15 -0
  92. data/spec/spec_tests/data/cmap/pool-create-min-size.yml +4 -0
  93. data/spec/spec_tests/data/cmap/wait-queue-fairness.yml +31 -1
  94. data/spec/spec_tests/data/cmap/wait-queue-timeout.yml +5 -0
  95. data/spec/spec_tests/data/read_write_concern/connection-string/read-concern.yml +32 -0
  96. data/spec/spec_tests/data/read_write_concern/connection-string/write-concern.yml +82 -0
  97. data/spec/spec_tests/data/read_write_concern/document/read-concern.yml +37 -0
  98. data/spec/spec_tests/data/read_write_concern/document/write-concern.yml +100 -0
  99. data/spec/spec_tests/data/retryable_reads/aggregate-merge.yml +39 -0
  100. data/spec/spec_tests/data/retryable_reads/aggregate-serverErrors.yml +1 -1
  101. data/spec/spec_tests/data/retryable_reads/changeStreams-client.watch-serverErrors.yml +2 -2
  102. data/spec/spec_tests/data/retryable_reads/changeStreams-client.watch.yml +1 -1
  103. data/spec/spec_tests/data/retryable_reads/changeStreams-db.coll.watch-serverErrors.yml +2 -2
  104. data/spec/spec_tests/data/retryable_reads/changeStreams-db.coll.watch.yml +1 -1
  105. data/spec/spec_tests/data/retryable_reads/changeStreams-db.watch-serverErrors.yml +2 -2
  106. data/spec/spec_tests/data/retryable_reads/changeStreams-db.watch.yml +1 -1
  107. data/spec/spec_tests/data/retryable_reads/count-serverErrors.yml +1 -1
  108. data/spec/spec_tests/data/retryable_reads/countDocuments-serverErrors.yml +1 -1
  109. data/spec/spec_tests/data/retryable_reads/distinct-serverErrors.yml +1 -1
  110. data/spec/spec_tests/data/retryable_reads/estimatedDocumentCount-serverErrors.yml +1 -1
  111. data/spec/spec_tests/data/retryable_reads/find-serverErrors.yml +1 -1
  112. data/spec/spec_tests/data/retryable_reads/findOne-serverErrors.yml +1 -1
  113. data/spec/spec_tests/data/retryable_reads/gridfs-download-serverErrors.yml +1 -1
  114. data/spec/spec_tests/data/retryable_reads/gridfs-downloadByName-serverErrors.yml +1 -1
  115. data/spec/spec_tests/data/retryable_reads/listCollectionNames-serverErrors.yml +1 -1
  116. data/spec/spec_tests/data/retryable_reads/listCollectionObjects-serverErrors.yml +1 -1
  117. data/spec/spec_tests/data/retryable_reads/listCollections-serverErrors.yml +1 -1
  118. data/spec/spec_tests/data/retryable_reads/listDatabaseNames-serverErrors.yml +1 -1
  119. data/spec/spec_tests/data/retryable_reads/listDatabaseObjects-serverErrors.yml +1 -1
  120. data/spec/spec_tests/data/retryable_reads/listDatabases-serverErrors.yml +1 -1
  121. data/spec/spec_tests/data/retryable_reads/listIndexNames-serverErrors.yml +1 -1
  122. data/spec/spec_tests/data/retryable_reads/listIndexes-serverErrors.yml +1 -1
  123. data/spec/spec_tests/data/transactions/read-concern.yml +6 -6
  124. data/spec/spec_tests/data/transactions/transaction-options-repl.yml +117 -0
  125. data/spec/spec_tests/data/transactions/transaction-options.yml +14 -121
  126. data/spec/spec_tests/data/transactions/write-concern.yml +3 -0
  127. data/spec/spec_tests/data/transactions_api/transaction-options.yml +11 -12
  128. data/spec/spec_tests/dns_seedlist_discovery_spec.rb +17 -7
  129. data/spec/spec_tests/read_write_concern_connection_string_spec.rb +8 -0
  130. data/spec/spec_tests/read_write_concern_document_spec.rb +74 -0
  131. data/spec/spec_tests/retryable_reads_spec.rb +32 -1
  132. data/spec/spec_tests/uri_options_spec.rb +4 -2
  133. data/spec/support/auth.rb +5 -14
  134. data/spec/support/certificates/client-x509.crt +78 -0
  135. data/spec/support/certificates/client-x509.key +27 -0
  136. data/spec/support/certificates/client-x509.pem +105 -0
  137. data/spec/support/change_streams.rb +8 -11
  138. data/spec/support/client_registry.rb +26 -12
  139. data/spec/support/cluster_tools.rb +2 -2
  140. data/spec/support/cmap.rb +11 -7
  141. data/spec/support/command_monitoring.rb +8 -8
  142. data/spec/support/connection_string.rb +56 -28
  143. data/spec/support/constraints.rb +8 -0
  144. data/spec/support/crud/spec.rb +5 -8
  145. data/spec/support/event_subscriber.rb +7 -0
  146. data/spec/support/gridfs.rb +4 -7
  147. data/spec/support/server_discovery_and_monitoring.rb +3 -8
  148. data/spec/support/server_selection.rb +4 -9
  149. data/spec/support/server_selection_rtt.rb +4 -7
  150. data/spec/support/spec_config.rb +47 -19
  151. data/spec/support/spec_setup.rb +5 -0
  152. data/spec/support/utils.rb +46 -8
  153. metadata +637 -597
  154. metadata.gz.sig +0 -0
@@ -6,15 +6,21 @@ operations:
6
6
  - name: checkOut
7
7
  events:
8
8
  - type: ConnectionCheckOutStarted
9
+ address: 42
9
10
  - type: ConnectionCreated
10
11
  connectionId: 42
12
+ address: 42
11
13
  - type: ConnectionCheckedOut
12
14
  connectionId: 42
15
+ address: 42
13
16
  - type: ConnectionCheckOutStarted
17
+ address: 42
14
18
  - type: ConnectionCreated
15
19
  connectionId: 42
20
+ address: 42
16
21
  - type: ConnectionCheckedOut
17
22
  connectionId: 42
23
+ address: 42
18
24
  ignore:
19
25
  - ConnectionPoolCreated
20
26
  - ConnectionPoolClosed
@@ -6,15 +6,21 @@ operations:
6
6
  - name: checkOut
7
7
  events:
8
8
  - type: ConnectionCheckOutStarted
9
+ address: 42
9
10
  - type: ConnectionCreated
10
11
  connectionId: 1
12
+ address: 42
11
13
  - type: ConnectionCheckedOut
12
14
  connectionId: 1
15
+ address: 42
13
16
  - type: ConnectionCheckOutStarted
17
+ address: 42
14
18
  - type: ConnectionCreated
15
19
  connectionId: 2
20
+ address: 42
16
21
  - type: ConnectionCheckedOut
17
22
  connectionId: 2
23
+ address: 42
18
24
  ignore:
19
25
  - ConnectionPoolCreated
20
26
  - ConnectionPoolClosed
@@ -10,13 +10,16 @@ operations:
10
10
  events:
11
11
  - type: ConnectionCheckedOut
12
12
  connectionId: 1
13
+ address: 42
13
14
  - type: ConnectionPoolClosed
14
15
  address: 42
15
16
  - type: ConnectionCheckedIn
16
17
  connectionId: 1
18
+ address: 42
17
19
  - type: ConnectionClosed
18
20
  connectionId: 1
19
21
  reason: poolClosed
22
+ address: 42
20
23
  ignore:
21
24
  - ConnectionPoolCreated
22
25
  - ConnectionCreated
@@ -10,13 +10,16 @@ operations:
10
10
  events:
11
11
  - type: ConnectionCheckedOut
12
12
  connectionId: 1
13
+ address: 42
13
14
  - type: ConnectionPoolCleared
14
15
  address: 42
15
16
  - type: ConnectionCheckedIn
16
17
  connectionId: 1
18
+ address: 42
17
19
  - type: ConnectionClosed
18
20
  connectionId: 1
19
21
  reason: stale
22
+ address: 42
20
23
  ignore:
21
24
  - ConnectionPoolCreated
22
25
  - ConnectionCreated
@@ -10,10 +10,13 @@ operations:
10
10
  events:
11
11
  - type: ConnectionCheckedOut
12
12
  connectionId: 1
13
+ address: 42
13
14
  - type: ConnectionCheckedIn
14
15
  connectionId: 1
16
+ address: 42
15
17
  - type: ConnectionCheckedOut
16
18
  connectionId: 1
19
+ address: 42
17
20
  ignore:
18
21
  - ConnectionPoolCreated
19
22
  - ConnectionCreated
@@ -9,6 +9,7 @@ operations:
9
9
  events:
10
10
  - type: ConnectionCheckedIn
11
11
  connectionId: 42
12
+ address: 42
12
13
  ignore:
13
14
  - ConnectionPoolCreated
14
15
  - ConnectionCreated
@@ -5,8 +5,10 @@ operations:
5
5
  - name: checkOut
6
6
  events:
7
7
  - type: ConnectionCheckOutStarted
8
+ address: 42
8
9
  - type: ConnectionCheckedOut
9
10
  connectionId: 1
11
+ address: 42
10
12
  ignore:
11
13
  - ConnectionPoolCreated
12
14
  - ConnectionCreated
@@ -16,14 +16,19 @@ events:
16
16
  address: 42
17
17
  options: 42
18
18
  - type: ConnectionCheckOutStarted
19
+ address: 42
19
20
  - type: ConnectionCheckedOut
21
+ address: 42
20
22
  connectionId: 42
21
23
  - type: ConnectionCheckedIn
24
+ address: 42
22
25
  connectionId: 42
23
26
  - type: ConnectionPoolClosed
24
27
  address: 42
25
28
  - type: ConnectionCheckOutStarted
29
+ address: 42
26
30
  - type: ConnectionCheckOutFailed
31
+ address: 42
27
32
  reason: poolClosed
28
33
  ignore:
29
34
  - ConnectionCreated
@@ -23,10 +23,13 @@ operations:
23
23
  events:
24
24
  - type: ConnectionCheckedOut
25
25
  connectionId: 42
26
+ address: 42
26
27
  - type: ConnectionCheckedOut
27
28
  connectionId: 42
29
+ address: 42
28
30
  - type: ConnectionCheckedOut
29
31
  connectionId: 42
32
+ address: 42
30
33
  ignore:
31
34
  - ConnectionCreated
32
35
  - ConnectionReady
@@ -17,14 +17,18 @@ events:
17
17
  options: 42
18
18
  - type: ConnectionCheckedOut
19
19
  connectionId: 1
20
+ address: 42
20
21
  - type: ConnectionCheckedIn
21
22
  connectionId: 1
23
+ address: 42
22
24
  # In between these, wait so connection becomes idle
23
25
  - type: ConnectionClosed
24
26
  connectionId: 1
25
27
  reason: idle
28
+ address: 42
26
29
  - type: ConnectionCheckedOut
27
30
  connectionId: 2
31
+ address: 42
28
32
  ignore:
29
33
  - ConnectionReady
30
34
  - ConnectionCreated
@@ -14,15 +14,19 @@ events:
14
14
  options: 42
15
15
  - type: ConnectionCheckedOut
16
16
  connectionId: 1
17
+ address: 42
17
18
  - type: ConnectionCheckedIn
18
19
  connectionId: 1
20
+ address: 42
19
21
  - type: ConnectionPoolCleared
20
22
  address: 42
21
23
  - type: ConnectionClosed
22
24
  connectionId: 1
23
25
  reason: stale
26
+ address: 42
24
27
  - type: ConnectionCheckedOut
25
28
  connectionId: 2
29
+ address: 42
26
30
  ignore:
27
31
  - ConnectionReady
28
32
  - ConnectionCreated
@@ -12,9 +12,11 @@ operations:
12
12
  events:
13
13
  - type: ConnectionCheckedIn
14
14
  connectionId: 2
15
+ address: 42
15
16
  - type: ConnectionClosed
16
17
  connectionId: 2
17
18
  reason: poolClosed
19
+ address: 42
18
20
  - type: ConnectionPoolClosed
19
21
  address: 42
20
22
  ignore:
@@ -28,29 +28,44 @@ events:
28
28
  address: 42
29
29
  options: 42
30
30
  - type: ConnectionCheckOutStarted
31
+ address: 42
31
32
  - type: ConnectionCreated
32
33
  connectionId: 42
34
+ address: 42
33
35
  - type: ConnectionCheckedOut
34
36
  connectionId: 42
37
+ address: 42
35
38
  - type: ConnectionCheckOutStarted
39
+ address: 42
36
40
  - type: ConnectionCreated
37
41
  connectionId: 42
42
+ address: 42
38
43
  - type: ConnectionCheckedOut
39
44
  connectionId: 42
45
+ address: 42
40
46
  - type: ConnectionCheckOutStarted
47
+ address: 42
41
48
  - type: ConnectionCreated
42
49
  connectionId: 42
50
+ address: 42
43
51
  - type: ConnectionCheckedOut
44
52
  connectionId: 42
53
+ address: 42
45
54
  - type: ConnectionCheckedIn
46
55
  connectionId: 42
56
+ address: 42
47
57
  - type: ConnectionCheckOutStarted
58
+ address: 42
48
59
  - type: ConnectionCheckedOut
49
60
  connectionId: 42
61
+ address: 42
50
62
  - type: ConnectionCheckOutStarted
63
+ address: 42
51
64
  - type: ConnectionCheckedIn
52
65
  connectionId: 42
66
+ address: 42
53
67
  - type: ConnectionCheckedOut
54
68
  connectionId: 42
69
+ address: 42
55
70
  ignore:
56
71
  - ConnectionReady
@@ -14,13 +14,17 @@ events:
14
14
  options: 42
15
15
  - type: ConnectionCreated
16
16
  connectionId: 42
17
+ address: 42
17
18
  - type: ConnectionCreated
18
19
  connectionId: 42
20
+ address: 42
19
21
  - type: ConnectionCreated
20
22
  connectionId: 42
23
+ address: 42
21
24
  # Ensures that by the time pool is closed, there are at least 3 connections
22
25
  - type: ConnectionCheckedOut
23
26
  connectionId: 42
27
+ address: 42
24
28
  ignore:
25
29
  - ConnectionReady
26
30
  - ConnectionClosed
@@ -3,7 +3,7 @@ style: unit
3
3
  description: must issue Connections to threads in the order that the threads entered the queue
4
4
  poolOptions:
5
5
  maxPoolSize: 1
6
- waitQueueTimeoutMS: 1000
6
+ waitQueueTimeoutMS: 5000
7
7
  operations:
8
8
  # Check out sole connection in pool
9
9
  - name: checkOut
@@ -21,6 +21,10 @@ operations:
21
21
  - name: waitForEvent
22
22
  event: ConnectionCheckOutStarted
23
23
  count: 2
24
+ # Give thread1 some time to actually enter the wait queue since the
25
+ # ConnectionCheckOutStarted event is publish beforehand.
26
+ - name: wait
27
+ ms: 100
24
28
  - name: start
25
29
  target: thread2
26
30
  - name: checkOut
@@ -29,6 +33,10 @@ operations:
29
33
  - name: waitForEvent
30
34
  event: ConnectionCheckOutStarted
31
35
  count: 3
36
+ # Give thread2 some time to actually enter the wait queue since the
37
+ # ConnectionCheckOutStarted event is publish beforehand.
38
+ - name: wait
39
+ ms: 100
32
40
  - name: start
33
41
  target: thread3
34
42
  - name: checkOut
@@ -37,6 +45,10 @@ operations:
37
45
  - name: waitForEvent
38
46
  event: ConnectionCheckOutStarted
39
47
  count: 4
48
+ # Give thread3 some time to actually enter the wait queue since the
49
+ # ConnectionCheckOutStarted event is publish beforehand.
50
+ - name: wait
51
+ ms: 100
40
52
  - name: start
41
53
  target: thread4
42
54
  - name: checkOut
@@ -45,6 +57,10 @@ operations:
45
57
  - name: waitForEvent
46
58
  event: ConnectionCheckOutStarted
47
59
  count: 5
60
+ # Give thread4 some time to actually enter the wait queue since the
61
+ # ConnectionCheckOutStarted event is publish beforehand.
62
+ - name: wait
63
+ ms: 100
48
64
  # From main thread, keep checking in connection and then wait for appropriate thread
49
65
  # Test will timeout if threads are not enqueued in proper order
50
66
  - name: checkIn
@@ -65,28 +81,42 @@ operations:
65
81
  target: thread4
66
82
  events:
67
83
  - type: ConnectionCheckOutStarted
84
+ address: 42
68
85
  - type: ConnectionCheckedOut
69
86
  connectionId: 42
87
+ address: 42
70
88
  - type: ConnectionCheckOutStarted
89
+ address: 42
71
90
  - type: ConnectionCheckOutStarted
91
+ address: 42
72
92
  - type: ConnectionCheckOutStarted
93
+ address: 42
73
94
  - type: ConnectionCheckOutStarted
95
+ address: 42
74
96
  - type: ConnectionCheckedIn
75
97
  connectionId: 42
98
+ address: 42
76
99
  - type: ConnectionCheckedOut
77
100
  connectionId: 42
101
+ address: 42
78
102
  - type: ConnectionCheckedIn
79
103
  connectionId: 42
104
+ address: 42
80
105
  - type: ConnectionCheckedOut
81
106
  connectionId: 42
107
+ address: 42
82
108
  - type: ConnectionCheckedIn
83
109
  connectionId: 42
110
+ address: 42
84
111
  - type: ConnectionCheckedOut
85
112
  connectionId: 42
113
+ address: 42
86
114
  - type: ConnectionCheckedIn
87
115
  connectionId: 42
116
+ address: 42
88
117
  - type: ConnectionCheckedOut
89
118
  connectionId: 42
119
+ address: 42
90
120
  ignore:
91
121
  - ConnectionCreated
92
122
  - ConnectionReady
@@ -27,13 +27,18 @@ error:
27
27
  message: Timed out while checking out a connection from connection pool
28
28
  events:
29
29
  - type: ConnectionCheckOutStarted
30
+ address: 42
30
31
  - type: ConnectionCheckedOut
31
32
  connectionId: 42
33
+ address: 42
32
34
  - type: ConnectionCheckOutStarted
35
+ address: 42
33
36
  - type: ConnectionCheckOutFailed
34
37
  reason: timeout
38
+ address: 42
35
39
  - type: ConnectionCheckedIn
36
40
  connectionId: 42
41
+ address: 42
37
42
  ignore:
38
43
  - ConnectionCreated
39
44
  - ConnectionReady
@@ -0,0 +1,32 @@
1
+ tests:
2
+ -
3
+ description: "Default"
4
+ uri: "mongodb://localhost/"
5
+ valid: true
6
+ warning: false
7
+ readConcern: { }
8
+ -
9
+ description: "local specified"
10
+ uri: "mongodb://localhost/?readConcernLevel=local"
11
+ valid: true
12
+ warning: false
13
+ readConcern: { level: "local" }
14
+ -
15
+ description: "majority specified"
16
+ uri: "mongodb://localhost/?readConcernLevel=majority"
17
+ valid: true
18
+ warning: false
19
+ readConcern: { level: "majority" }
20
+ -
21
+ description: "linearizable specified"
22
+ uri: "mongodb://localhost/?readConcernLevel=linearizable"
23
+ valid: true
24
+ warning: false
25
+ readConcern: { level: "linearizable" }
26
+ -
27
+ description: "available specified"
28
+ uri: "mongodb://localhost/?readConcernLevel=available"
29
+ valid: true
30
+ warning: false
31
+ readConcern: { level: "available" }
32
+
@@ -0,0 +1,82 @@
1
+ tests:
2
+ -
3
+ description: "Default"
4
+ uri: "mongodb://localhost/"
5
+ valid: true
6
+ warning: false
7
+ writeConcern: { }
8
+ -
9
+ description: "w as a valid number"
10
+ uri: "mongodb://localhost/?w=1"
11
+ valid: true
12
+ warning: false
13
+ writeConcern: { w: 1 }
14
+ -
15
+ description: "w as an invalid number"
16
+ uri: "mongodb://localhost/?w=-2"
17
+ # https://jira.mongodb.org/browse/SPEC-1459
18
+ valid: true
19
+ warning: ~
20
+ -
21
+ description: "w as a string"
22
+ uri: "mongodb://localhost/?w=majority"
23
+ valid: true
24
+ warning: false
25
+ writeConcern: { w: "majority" }
26
+ -
27
+ description: "wtimeoutMS as a valid number"
28
+ uri: "mongodb://localhost/?wtimeoutMS=500"
29
+ valid: true
30
+ warning: false
31
+ writeConcern: { wtimeoutMS: 500 }
32
+ -
33
+ description: "wtimeoutMS as a negative number"
34
+ uri: "mongodb://localhost/?wtimeoutMS=-500"
35
+ # https://jira.mongodb.org/browse/SPEC-1457
36
+ valid: true
37
+ warning: true
38
+ -
39
+ description: "journal as false"
40
+ uri: "mongodb://localhost/?journal=false"
41
+ valid: true
42
+ warning: false
43
+ writeConcern: { journal: false }
44
+ -
45
+ description: "journal as true"
46
+ uri: "mongodb://localhost/?journal=true"
47
+ valid: true
48
+ warning: false
49
+ writeConcern: { journal: true }
50
+ -
51
+ description: "All options combined"
52
+ uri: "mongodb://localhost/?w=3&wtimeoutMS=500&journal=true"
53
+ valid: true
54
+ warning: false
55
+ writeConcern: { w: 3, wtimeoutMS: 500, journal: true }
56
+ -
57
+ description: "Unacknowledged with w"
58
+ uri: "mongodb://localhost/?w=0"
59
+ valid: true
60
+ warning: false
61
+ writeConcern: { w: 0 }
62
+ -
63
+ description: "Unacknowledged with w and journal"
64
+ uri: "mongodb://localhost/?w=0&journal=false"
65
+ valid: true
66
+ warning: false
67
+ writeConcern: { w: 0, journal: false }
68
+ -
69
+ description: "Unacknowledged with w and wtimeoutMS"
70
+ uri: "mongodb://localhost/?w=0&wtimeoutMS=500"
71
+ valid: true
72
+ warning: false
73
+ writeConcern: { w: 0, wtimeoutMS: 500 }
74
+ -
75
+ description: "Acknowledged with w as 0 and journal true"
76
+ uri: "mongodb://localhost/?w=0&journal=true"
77
+ # Ruby allows w=0 with journal=true.
78
+ # The spec says this SHOULD be disallowed - not a requirement.
79
+ # https://jira.mongodb.org/browse/SPEC-1460
80
+ valid: true
81
+ warning: false
82
+ writeConcern: { w: 0, journal: true }