mongo 2.11.0.rc0 → 2.11.0

Sign up to get free protection for your applications and to get access to all the features.
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 }