mongo 2.21.0 → 2.21.1

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 (1428) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/mongo/auth/aws/conversation.rb +1 -1
  4. data/lib/mongo/auth/credential_cache.rb +13 -6
  5. data/lib/mongo/client.rb +75 -28
  6. data/lib/mongo/client_encryption.rb +1 -1
  7. data/lib/mongo/cluster/sdam_flow.rb +1 -1
  8. data/lib/mongo/collection/view/aggregation.rb +1 -1
  9. data/lib/mongo/crypt/binary.rb +5 -5
  10. data/lib/mongo/crypt/binding.rb +65 -1
  11. data/lib/mongo/crypt/context.rb +55 -27
  12. data/lib/mongo/crypt/encryption_io.rb +4 -2
  13. data/lib/mongo/crypt/handle.rb +1 -1
  14. data/lib/mongo/cursor.rb +1 -1
  15. data/lib/mongo/error/kms_error.rb +9 -0
  16. data/lib/mongo/error/pool_cleared_error.rb +1 -0
  17. data/lib/mongo/error/sdam_error_detection.rb +3 -3
  18. data/lib/mongo/lint.rb +1 -1
  19. data/lib/mongo/monitoring/event/secure.rb +1 -1
  20. data/lib/mongo/monitoring.rb +1 -1
  21. data/lib/mongo/operation/shared/read_preference_supported.rb +2 -2
  22. data/lib/mongo/operation/shared/sessions_supported.rb +2 -2
  23. data/lib/mongo/protocol/compressed.rb +1 -1
  24. data/lib/mongo/protocol/msg.rb +1 -1
  25. data/lib/mongo/search_index/view.rb +4 -4
  26. data/lib/mongo/server/push_monitor.rb +1 -1
  27. data/lib/mongo/session/server_session/dirtyable.rb +1 -1
  28. data/lib/mongo/socket.rb +29 -22
  29. data/lib/mongo/uri/srv_protocol.rb +3 -1
  30. data/lib/mongo/version.rb +1 -1
  31. data/mongo.gemspec +4 -4
  32. metadata +19 -2799
  33. data/Rakefile +0 -196
  34. data/spec/NOTES.aws-auth.md +0 -296
  35. data/spec/README.aws-auth.md +0 -318
  36. data/spec/README.md +0 -733
  37. data/spec/USERS.md +0 -72
  38. data/spec/atlas/atlas_connectivity_spec.rb +0 -27
  39. data/spec/atlas/operations_spec.rb +0 -23
  40. data/spec/faas/ruby-sam-app/Gemfile +0 -9
  41. data/spec/faas/ruby-sam-app/mongodb/Gemfile +0 -4
  42. data/spec/faas/ruby-sam-app/mongodb/app.rb +0 -149
  43. data/spec/faas/ruby-sam-app/template.yaml +0 -48
  44. data/spec/integration/auth_spec.rb +0 -309
  45. data/spec/integration/awaited_ismaster_spec.rb +0 -31
  46. data/spec/integration/aws_auth_credentials_cache_spec.rb +0 -51
  47. data/spec/integration/aws_auth_request_spec.rb +0 -77
  48. data/spec/integration/aws_credentials_retriever_spec.rb +0 -136
  49. data/spec/integration/aws_lambda_examples_spec.rb +0 -68
  50. data/spec/integration/bson_symbol_spec.rb +0 -39
  51. data/spec/integration/bulk_insert_spec.rb +0 -83
  52. data/spec/integration/bulk_write_error_message_spec.rb +0 -74
  53. data/spec/integration/bulk_write_spec.rb +0 -86
  54. data/spec/integration/change_stream_examples_spec.rb +0 -208
  55. data/spec/integration/change_stream_spec.rb +0 -814
  56. data/spec/integration/check_clean_slate_spec.rb +0 -19
  57. data/spec/integration/client_authentication_options_spec.rb +0 -514
  58. data/spec/integration/client_connectivity_spec.rb +0 -41
  59. data/spec/integration/client_construction_aws_auth_spec.rb +0 -203
  60. data/spec/integration/client_construction_spec.rb +0 -381
  61. data/spec/integration/client_side_encryption/auto_encryption_bulk_writes_spec.rb +0 -360
  62. data/spec/integration/client_side_encryption/auto_encryption_command_monitoring_spec.rb +0 -306
  63. data/spec/integration/client_side_encryption/auto_encryption_mongocryptd_spawn_spec.rb +0 -75
  64. data/spec/integration/client_side_encryption/auto_encryption_old_wire_version_spec.rb +0 -82
  65. data/spec/integration/client_side_encryption/auto_encryption_reconnect_spec.rb +0 -260
  66. data/spec/integration/client_side_encryption/auto_encryption_spec.rb +0 -754
  67. data/spec/integration/client_side_encryption/automatic_data_encryption_keys_prose_spec.rb +0 -153
  68. data/spec/integration/client_side_encryption/bson_size_limit_spec.rb +0 -190
  69. data/spec/integration/client_side_encryption/bypass_mongocryptd_spawn_spec.rb +0 -81
  70. data/spec/integration/client_side_encryption/client_close_spec.rb +0 -66
  71. data/spec/integration/client_side_encryption/corpus_spec.rb +0 -273
  72. data/spec/integration/client_side_encryption/custom_endpoint_spec.rb +0 -132
  73. data/spec/integration/client_side_encryption/data_key_spec.rb +0 -258
  74. data/spec/integration/client_side_encryption/decryption_events_prose_spec.rb +0 -159
  75. data/spec/integration/client_side_encryption/explicit_encryption_spec.rb +0 -176
  76. data/spec/integration/client_side_encryption/explicit_queryable_encryption_spec.rb +0 -150
  77. data/spec/integration/client_side_encryption/external_key_vault_spec.rb +0 -144
  78. data/spec/integration/client_side_encryption/kms_tls_options_spec.rb +0 -436
  79. data/spec/integration/client_side_encryption/kms_tls_spec.rb +0 -92
  80. data/spec/integration/client_side_encryption/mongocryptd_prose_spec.rb +0 -105
  81. data/spec/integration/client_side_encryption/on_demand_aws_credentials_spec.rb +0 -49
  82. data/spec/integration/client_side_encryption/on_demand_azure_credentials_spec.rb +0 -46
  83. data/spec/integration/client_side_encryption/on_demand_gcp_credentials_spec.rb +0 -47
  84. data/spec/integration/client_side_encryption/queryable_encryption_examples_spec.rb +0 -114
  85. data/spec/integration/client_side_encryption/range_explicit_encryption_prose_spec.rb +0 -583
  86. data/spec/integration/client_side_encryption/rewrap_prose_spec.rb +0 -114
  87. data/spec/integration/client_side_encryption/unique_index_on_key_alt_names_prose_spec.rb +0 -89
  88. data/spec/integration/client_side_encryption/views_spec.rb +0 -47
  89. data/spec/integration/client_side_operations_timeout/encryption_prose_spec.rb +0 -131
  90. data/spec/integration/client_spec.rb +0 -54
  91. data/spec/integration/client_update_spec.rb +0 -161
  92. data/spec/integration/collection_indexes_prose_spec.rb +0 -58
  93. data/spec/integration/command_monitoring_spec.rb +0 -184
  94. data/spec/integration/command_spec.rb +0 -157
  95. data/spec/integration/connect_single_rs_name_spec.rb +0 -75
  96. data/spec/integration/connection/faas_env_spec.rb +0 -62
  97. data/spec/integration/connection_pool_populator_spec.rb +0 -327
  98. data/spec/integration/connection_spec.rb +0 -353
  99. data/spec/integration/crud_spec.rb +0 -378
  100. data/spec/integration/cursor_pinning_spec.rb +0 -80
  101. data/spec/integration/cursor_reaping_spec.rb +0 -143
  102. data/spec/integration/docs_examples_spec.rb +0 -207
  103. data/spec/integration/error_detection_spec.rb +0 -42
  104. data/spec/integration/find_options_spec.rb +0 -227
  105. data/spec/integration/fork_reconnect_spec.rb +0 -207
  106. data/spec/integration/get_more_spec.rb +0 -42
  107. data/spec/integration/grid_fs_bucket_spec.rb +0 -51
  108. data/spec/integration/heartbeat_events_spec.rb +0 -102
  109. data/spec/integration/map_reduce_spec.rb +0 -81
  110. data/spec/integration/mmapv1_spec.rb +0 -31
  111. data/spec/integration/mongos_pinning_spec.rb +0 -37
  112. data/spec/integration/ocsp_connectivity_spec.rb +0 -29
  113. data/spec/integration/ocsp_verifier_cache_spec.rb +0 -191
  114. data/spec/integration/ocsp_verifier_spec.rb +0 -358
  115. data/spec/integration/operation_failure_code_spec.rb +0 -29
  116. data/spec/integration/operation_failure_message_spec.rb +0 -91
  117. data/spec/integration/query_cache_spec.rb +0 -1343
  118. data/spec/integration/query_cache_transactions_spec.rb +0 -193
  119. data/spec/integration/read_concern_spec.rb +0 -92
  120. data/spec/integration/read_preference_spec.rb +0 -548
  121. data/spec/integration/reconnect_spec.rb +0 -200
  122. data/spec/integration/retryable_errors_spec.rb +0 -286
  123. data/spec/integration/retryable_reads_errors_spec.rb +0 -275
  124. data/spec/integration/retryable_writes/retryable_writes_36_and_older_spec.rb +0 -764
  125. data/spec/integration/retryable_writes/retryable_writes_40_and_newer_spec.rb +0 -405
  126. data/spec/integration/retryable_writes/shared/adds_diagnostics.rb +0 -18
  127. data/spec/integration/retryable_writes/shared/does_not_support_retries.rb +0 -27
  128. data/spec/integration/retryable_writes/shared/only_supports_legacy_retries.rb +0 -28
  129. data/spec/integration/retryable_writes/shared/performs_legacy_retries.rb +0 -220
  130. data/spec/integration/retryable_writes/shared/performs_modern_retries.rb +0 -235
  131. data/spec/integration/retryable_writes/shared/performs_no_retries.rb +0 -113
  132. data/spec/integration/retryable_writes/shared/supports_legacy_retries.rb +0 -22
  133. data/spec/integration/retryable_writes/shared/supports_modern_retries.rb +0 -28
  134. data/spec/integration/retryable_writes/shared/supports_retries.rb +0 -19
  135. data/spec/integration/retryable_writes_errors_spec.rb +0 -348
  136. data/spec/integration/sdam_error_handling_spec.rb +0 -490
  137. data/spec/integration/sdam_events_spec.rb +0 -178
  138. data/spec/integration/sdam_prose_spec.rb +0 -67
  139. data/spec/integration/search_indexes_prose_spec.rb +0 -172
  140. data/spec/integration/secondary_reads_spec.rb +0 -103
  141. data/spec/integration/server_description_spec.rb +0 -48
  142. data/spec/integration/server_monitor_spec.rb +0 -57
  143. data/spec/integration/server_selection_spec.rb +0 -39
  144. data/spec/integration/server_selector_spec.rb +0 -107
  145. data/spec/integration/server_spec.rb +0 -67
  146. data/spec/integration/shell_examples_spec.rb +0 -984
  147. data/spec/integration/size_limit_spec.rb +0 -118
  148. data/spec/integration/snappy_compression_spec.rb +0 -28
  149. data/spec/integration/snapshot_query_examples_spec.rb +0 -129
  150. data/spec/integration/srv_monitoring_spec.rb +0 -445
  151. data/spec/integration/srv_spec.rb +0 -60
  152. data/spec/integration/ssl_uri_options_spec.rb +0 -28
  153. data/spec/integration/step_down_spec.rb +0 -225
  154. data/spec/integration/time_zone_querying_spec.rb +0 -55
  155. data/spec/integration/transaction_pinning_spec.rb +0 -134
  156. data/spec/integration/transactions_api_examples_spec.rb +0 -64
  157. data/spec/integration/transactions_examples_spec.rb +0 -235
  158. data/spec/integration/truncated_utf8_spec.rb +0 -26
  159. data/spec/integration/versioned_api_examples_spec.rb +0 -120
  160. data/spec/integration/x509_auth_spec.rb +0 -112
  161. data/spec/integration/zlib_compression_spec.rb +0 -28
  162. data/spec/integration/zstd_compression_spec.rb +0 -29
  163. data/spec/kerberos/kerberos_spec.rb +0 -98
  164. data/spec/lite_spec_helper.rb +0 -211
  165. data/spec/mongo/address/ipv4_spec.rb +0 -102
  166. data/spec/mongo/address/ipv6_spec.rb +0 -137
  167. data/spec/mongo/address/unix_spec.rb +0 -45
  168. data/spec/mongo/address/validator_spec.rb +0 -54
  169. data/spec/mongo/address_spec.rb +0 -357
  170. data/spec/mongo/auth/aws/credential_cache_spec.rb +0 -63
  171. data/spec/mongo/auth/aws/credentials_retriever_spec.rb +0 -90
  172. data/spec/mongo/auth/aws/credentials_spec.rb +0 -46
  173. data/spec/mongo/auth/aws/request_region_spec.rb +0 -45
  174. data/spec/mongo/auth/aws/request_spec.rb +0 -79
  175. data/spec/mongo/auth/cr_spec.rb +0 -58
  176. data/spec/mongo/auth/gssapi/conversation_spec.rb +0 -124
  177. data/spec/mongo/auth/invalid_mechanism_spec.rb +0 -14
  178. data/spec/mongo/auth/ldap/conversation_spec.rb +0 -46
  179. data/spec/mongo/auth/ldap_spec.rb +0 -46
  180. data/spec/mongo/auth/scram/conversation_spec.rb +0 -205
  181. data/spec/mongo/auth/scram256/conversation_spec.rb +0 -174
  182. data/spec/mongo/auth/scram_negotiation_spec.rb +0 -532
  183. data/spec/mongo/auth/scram_spec.rb +0 -121
  184. data/spec/mongo/auth/stringprep/profiles/sasl_spec.rb +0 -116
  185. data/spec/mongo/auth/stringprep_spec.rb +0 -191
  186. data/spec/mongo/auth/user/view_spec.rb +0 -584
  187. data/spec/mongo/auth/user_spec.rb +0 -343
  188. data/spec/mongo/auth/x509/conversation_spec.rb +0 -72
  189. data/spec/mongo/auth/x509_spec.rb +0 -72
  190. data/spec/mongo/auth_spec.rb +0 -68
  191. data/spec/mongo/bson_spec.rb +0 -14
  192. data/spec/mongo/bulk_write/ordered_combiner_spec.rb +0 -287
  193. data/spec/mongo/bulk_write/result_spec.rb +0 -141
  194. data/spec/mongo/bulk_write/unordered_combiner_spec.rb +0 -242
  195. data/spec/mongo/bulk_write_spec.rb +0 -2514
  196. data/spec/mongo/caching_cursor_spec.rb +0 -73
  197. data/spec/mongo/client_construction_spec.rb +0 -2723
  198. data/spec/mongo/client_encryption_spec.rb +0 -403
  199. data/spec/mongo/client_spec.rb +0 -1357
  200. data/spec/mongo/cluster/cursor_reaper_spec.rb +0 -230
  201. data/spec/mongo/cluster/periodic_executor_spec.rb +0 -21
  202. data/spec/mongo/cluster/socket_reaper_spec.rb +0 -46
  203. data/spec/mongo/cluster/topology/replica_set_spec.rb +0 -601
  204. data/spec/mongo/cluster/topology/sharded_spec.rb +0 -158
  205. data/spec/mongo/cluster/topology/single_spec.rb +0 -192
  206. data/spec/mongo/cluster/topology/unknown_spec.rb +0 -103
  207. data/spec/mongo/cluster/topology_spec.rb +0 -211
  208. data/spec/mongo/cluster_spec.rb +0 -825
  209. data/spec/mongo/cluster_time_spec.rb +0 -151
  210. data/spec/mongo/collection/view/aggregation_spec.rb +0 -753
  211. data/spec/mongo/collection/view/builder/find_command_spec.rb +0 -528
  212. data/spec/mongo/collection/view/builder/op_query_spec.rb +0 -161
  213. data/spec/mongo/collection/view/change_stream_resume_spec.rb +0 -397
  214. data/spec/mongo/collection/view/change_stream_spec.rb +0 -547
  215. data/spec/mongo/collection/view/explainable_spec.rb +0 -119
  216. data/spec/mongo/collection/view/immutable_spec.rb +0 -57
  217. data/spec/mongo/collection/view/iterable_spec.rb +0 -41
  218. data/spec/mongo/collection/view/map_reduce_spec.rb +0 -907
  219. data/spec/mongo/collection/view/readable_spec.rb +0 -2283
  220. data/spec/mongo/collection/view/writable_spec.rb +0 -1976
  221. data/spec/mongo/collection/view_spec.rb +0 -424
  222. data/spec/mongo/collection_crud_spec.rb +0 -4472
  223. data/spec/mongo/collection_ddl_spec.rb +0 -587
  224. data/spec/mongo/collection_spec.rb +0 -849
  225. data/spec/mongo/condition_variable_spec.rb +0 -104
  226. data/spec/mongo/config/options_spec.rb +0 -76
  227. data/spec/mongo/config_spec.rb +0 -74
  228. data/spec/mongo/crypt/auto_decryption_context_spec.rb +0 -109
  229. data/spec/mongo/crypt/auto_encrypter_spec.rb +0 -450
  230. data/spec/mongo/crypt/auto_encryption_context_spec.rb +0 -126
  231. data/spec/mongo/crypt/binary_spec.rb +0 -113
  232. data/spec/mongo/crypt/binding/binary_spec.rb +0 -54
  233. data/spec/mongo/crypt/binding/context_spec.rb +0 -305
  234. data/spec/mongo/crypt/binding/helpers_spec.rb +0 -44
  235. data/spec/mongo/crypt/binding/mongocrypt_spec.rb +0 -113
  236. data/spec/mongo/crypt/binding/status_spec.rb +0 -97
  237. data/spec/mongo/crypt/binding/version_spec.rb +0 -67
  238. data/spec/mongo/crypt/binding_unloaded_spec.rb +0 -37
  239. data/spec/mongo/crypt/data_key_context_spec.rb +0 -146
  240. data/spec/mongo/crypt/encryption_io_spec.rb +0 -141
  241. data/spec/mongo/crypt/explicit_decryption_context_spec.rb +0 -106
  242. data/spec/mongo/crypt/explicit_encryption_context_spec.rb +0 -266
  243. data/spec/mongo/crypt/handle_spec.rb +0 -266
  244. data/spec/mongo/crypt/helpers/mongo_crypt_spec_helper.rb +0 -111
  245. data/spec/mongo/crypt/hooks_spec.rb +0 -30
  246. data/spec/mongo/crypt/kms/azure/credentials_retriever_spec.rb +0 -86
  247. data/spec/mongo/crypt/kms/credentials_spec.rb +0 -373
  248. data/spec/mongo/crypt/kms_spec.rb +0 -62
  249. data/spec/mongo/crypt/status_spec.rb +0 -150
  250. data/spec/mongo/crypt_spec.rb +0 -21
  251. data/spec/mongo/cursor/builder/get_more_command_spec.rb +0 -195
  252. data/spec/mongo/cursor/builder/op_get_more_spec.rb +0 -68
  253. data/spec/mongo/cursor_spec.rb +0 -851
  254. data/spec/mongo/database_spec.rb +0 -1365
  255. data/spec/mongo/distinguishing_semaphore_spec.rb +0 -66
  256. data/spec/mongo/error/bulk_write_error_spec.rb +0 -52
  257. data/spec/mongo/error/crypt_error_spec.rb +0 -29
  258. data/spec/mongo/error/max_bson_size_spec.rb +0 -38
  259. data/spec/mongo/error/no_server_available_spec.rb +0 -35
  260. data/spec/mongo/error/notable_spec.rb +0 -62
  261. data/spec/mongo/error/operation_failure_heavy_spec.rb +0 -110
  262. data/spec/mongo/error/operation_failure_spec.rb +0 -553
  263. data/spec/mongo/error/parser_spec.rb +0 -519
  264. data/spec/mongo/error/unsupported_option_spec.rb +0 -57
  265. data/spec/mongo/event/publisher_spec.rb +0 -53
  266. data/spec/mongo/event/subscriber_spec.rb +0 -37
  267. data/spec/mongo/grid/file/chunk_spec.rb +0 -230
  268. data/spec/mongo/grid/file/info_spec.rb +0 -107
  269. data/spec/mongo/grid/file_spec.rb +0 -194
  270. data/spec/mongo/grid/fs_bucket_spec.rb +0 -1269
  271. data/spec/mongo/grid/stream/read_spec.rb +0 -292
  272. data/spec/mongo/grid/stream/write_spec.rb +0 -559
  273. data/spec/mongo/grid/stream_spec.rb +0 -51
  274. data/spec/mongo/id_spec.rb +0 -38
  275. data/spec/mongo/index/view_spec.rb +0 -1296
  276. data/spec/mongo/lint_spec.rb +0 -231
  277. data/spec/mongo/logger_spec.rb +0 -62
  278. data/spec/mongo/monitoring/command_log_subscriber_spec.rb +0 -79
  279. data/spec/mongo/monitoring/event/cmap/connection_check_out_failed_spec.rb +0 -26
  280. data/spec/mongo/monitoring/event/cmap/connection_check_out_started_spec.rb +0 -22
  281. data/spec/mongo/monitoring/event/cmap/connection_checked_in_spec.rb +0 -33
  282. data/spec/mongo/monitoring/event/cmap/connection_checked_out_spec.rb +0 -33
  283. data/spec/mongo/monitoring/event/cmap/connection_closed_spec.rb +0 -30
  284. data/spec/mongo/monitoring/event/cmap/connection_created_spec.rb +0 -27
  285. data/spec/mongo/monitoring/event/cmap/connection_ready_spec.rb +0 -27
  286. data/spec/mongo/monitoring/event/cmap/pool_cleared_spec.rb +0 -22
  287. data/spec/mongo/monitoring/event/cmap/pool_closed_spec.rb +0 -29
  288. data/spec/mongo/monitoring/event/cmap/pool_created_spec.rb +0 -36
  289. data/spec/mongo/monitoring/event/command_failed_spec.rb +0 -87
  290. data/spec/mongo/monitoring/event/command_started_spec.rb +0 -51
  291. data/spec/mongo/monitoring/event/command_succeeded_spec.rb +0 -88
  292. data/spec/mongo/monitoring/event/secure_spec.rb +0 -123
  293. data/spec/mongo/monitoring/event/server_closed_spec.rb +0 -38
  294. data/spec/mongo/monitoring/event/server_description_changed_spec.rb +0 -38
  295. data/spec/mongo/monitoring/event/server_heartbeat_failed_spec.rb +0 -34
  296. data/spec/mongo/monitoring/event/server_heartbeat_started_spec.rb +0 -34
  297. data/spec/mongo/monitoring/event/server_heartbeat_succeeded_spec.rb +0 -34
  298. data/spec/mongo/monitoring/event/server_opening_spec.rb +0 -38
  299. data/spec/mongo/monitoring/event/topology_changed_spec.rb +0 -44
  300. data/spec/mongo/monitoring/event/topology_closed_spec.rb +0 -38
  301. data/spec/mongo/monitoring/event/topology_opening_spec.rb +0 -38
  302. data/spec/mongo/monitoring_spec.rb +0 -196
  303. data/spec/mongo/operation/aggregate/result_spec.rb +0 -90
  304. data/spec/mongo/operation/aggregate_spec.rb +0 -76
  305. data/spec/mongo/operation/collections_info_spec.rb +0 -48
  306. data/spec/mongo/operation/command_spec.rb +0 -86
  307. data/spec/mongo/operation/context_spec.rb +0 -79
  308. data/spec/mongo/operation/create/op_msg_spec.rb +0 -240
  309. data/spec/mongo/operation/create_index_spec.rb +0 -62
  310. data/spec/mongo/operation/create_user_spec.rb +0 -53
  311. data/spec/mongo/operation/delete/bulk_spec.rb +0 -245
  312. data/spec/mongo/operation/delete/op_msg_spec.rb +0 -267
  313. data/spec/mongo/operation/delete_spec.rb +0 -203
  314. data/spec/mongo/operation/drop_index_spec.rb +0 -61
  315. data/spec/mongo/operation/find/builder/flags_spec.rb +0 -109
  316. data/spec/mongo/operation/find/builder/modifiers_spec.rb +0 -213
  317. data/spec/mongo/operation/find/op_msg_spec.rb +0 -66
  318. data/spec/mongo/operation/get_more/op_msg_spec.rb +0 -65
  319. data/spec/mongo/operation/indexes_spec.rb +0 -41
  320. data/spec/mongo/operation/insert/bulk_spec.rb +0 -273
  321. data/spec/mongo/operation/insert/op_msg_spec.rb +0 -293
  322. data/spec/mongo/operation/insert_spec.rb +0 -258
  323. data/spec/mongo/operation/limited_spec.rb +0 -55
  324. data/spec/mongo/operation/map_reduce_spec.rb +0 -131
  325. data/spec/mongo/operation/read_preference_legacy_spec.rb +0 -360
  326. data/spec/mongo/operation/read_preference_op_msg_spec.rb +0 -332
  327. data/spec/mongo/operation/remove_user_spec.rb +0 -52
  328. data/spec/mongo/operation/result_spec.rb +0 -369
  329. data/spec/mongo/operation/shared/csot/examples.rb +0 -113
  330. data/spec/mongo/operation/specifiable_spec.rb +0 -87
  331. data/spec/mongo/operation/update/bulk_spec.rb +0 -239
  332. data/spec/mongo/operation/update/op_msg_spec.rb +0 -272
  333. data/spec/mongo/operation/update_spec.rb +0 -235
  334. data/spec/mongo/operation/update_user_spec.rb +0 -52
  335. data/spec/mongo/options/redacted_spec.rb +0 -353
  336. data/spec/mongo/protocol/caching_hash_spec.rb +0 -37
  337. data/spec/mongo/protocol/compressed_spec.rb +0 -83
  338. data/spec/mongo/protocol/get_more_spec.rb +0 -164
  339. data/spec/mongo/protocol/kill_cursors_spec.rb +0 -121
  340. data/spec/mongo/protocol/msg_spec.rb +0 -507
  341. data/spec/mongo/protocol/query_spec.rb +0 -347
  342. data/spec/mongo/protocol/registry_spec.rb +0 -34
  343. data/spec/mongo/protocol/reply_spec.rb +0 -198
  344. data/spec/mongo/query_cache_middleware_spec.rb +0 -55
  345. data/spec/mongo/query_cache_spec.rb +0 -471
  346. data/spec/mongo/retryable/write_worker_spec.rb +0 -39
  347. data/spec/mongo/retryable_spec.rb +0 -624
  348. data/spec/mongo/semaphore_spec.rb +0 -54
  349. data/spec/mongo/server/app_metadata/environment_spec.rb +0 -344
  350. data/spec/mongo/server/app_metadata/truncator_spec.rb +0 -158
  351. data/spec/mongo/server/app_metadata_spec.rb +0 -158
  352. data/spec/mongo/server/connection_auth_spec.rb +0 -138
  353. data/spec/mongo/server/connection_common_spec.rb +0 -87
  354. data/spec/mongo/server/connection_pool/populator_spec.rb +0 -120
  355. data/spec/mongo/server/connection_pool_spec.rb +0 -1609
  356. data/spec/mongo/server/connection_spec.rb +0 -1310
  357. data/spec/mongo/server/description/features_spec.rb +0 -274
  358. data/spec/mongo/server/description_query_methods_spec.rb +0 -291
  359. data/spec/mongo/server/description_spec.rb +0 -846
  360. data/spec/mongo/server/monitor/app_metadata_spec.rb +0 -25
  361. data/spec/mongo/server/monitor/connection_spec.rb +0 -197
  362. data/spec/mongo/server/monitor_spec.rb +0 -326
  363. data/spec/mongo/server/push_monitor_spec.rb +0 -95
  364. data/spec/mongo/server/round_trip_time_calculator_spec.rb +0 -120
  365. data/spec/mongo/server_selector/nearest_spec.rb +0 -338
  366. data/spec/mongo/server_selector/primary_preferred_spec.rb +0 -372
  367. data/spec/mongo/server_selector/primary_spec.rb +0 -181
  368. data/spec/mongo/server_selector/secondary_preferred_spec.rb +0 -350
  369. data/spec/mongo/server_selector/secondary_spec.rb +0 -278
  370. data/spec/mongo/server_selector_spec.rb +0 -736
  371. data/spec/mongo/server_spec.rb +0 -463
  372. data/spec/mongo/session/server_session_spec.rb +0 -62
  373. data/spec/mongo/session/session_pool_spec.rb +0 -257
  374. data/spec/mongo/session_spec.rb +0 -368
  375. data/spec/mongo/session_transaction_spec.rb +0 -222
  376. data/spec/mongo/socket/ssl_spec.rb +0 -830
  377. data/spec/mongo/socket/tcp_spec.rb +0 -17
  378. data/spec/mongo/socket/unix_spec.rb +0 -56
  379. data/spec/mongo/socket_spec.rb +0 -119
  380. data/spec/mongo/srv/monitor_spec.rb +0 -233
  381. data/spec/mongo/srv/result_spec.rb +0 -57
  382. data/spec/mongo/timeout_spec.rb +0 -42
  383. data/spec/mongo/tls_context_hooks_spec.rb +0 -40
  384. data/spec/mongo/uri/options_mapper_spec.rb +0 -1605
  385. data/spec/mongo/uri/srv_protocol_spec.rb +0 -1367
  386. data/spec/mongo/uri_option_parsing_spec.rb +0 -625
  387. data/spec/mongo/uri_spec.rb +0 -1443
  388. data/spec/mongo/utils_spec.rb +0 -42
  389. data/spec/mongo/write_concern/acknowledged_spec.rb +0 -58
  390. data/spec/mongo/write_concern/unacknowledged_spec.rb +0 -29
  391. data/spec/mongo/write_concern_spec.rb +0 -227
  392. data/spec/runners/auth.rb +0 -140
  393. data/spec/runners/change_streams/outcome.rb +0 -45
  394. data/spec/runners/change_streams/spec.rb +0 -60
  395. data/spec/runners/change_streams/test.rb +0 -232
  396. data/spec/runners/cmap/verifier.rb +0 -48
  397. data/spec/runners/cmap.rb +0 -516
  398. data/spec/runners/command_monitoring.rb +0 -346
  399. data/spec/runners/connection_string.rb +0 -393
  400. data/spec/runners/crud/context.rb +0 -30
  401. data/spec/runners/crud/operation.rb +0 -480
  402. data/spec/runners/crud/outcome.rb +0 -56
  403. data/spec/runners/crud/requirement.rb +0 -139
  404. data/spec/runners/crud/spec.rb +0 -76
  405. data/spec/runners/crud/test.rb +0 -115
  406. data/spec/runners/crud/test_base.rb +0 -53
  407. data/spec/runners/crud/verifier.rb +0 -224
  408. data/spec/runners/crud.rb +0 -257
  409. data/spec/runners/gridfs.rb +0 -641
  410. data/spec/runners/read_write_concern_document.rb +0 -70
  411. data/spec/runners/sdam/verifier.rb +0 -112
  412. data/spec/runners/sdam.rb +0 -279
  413. data/spec/runners/server_selection.rb +0 -365
  414. data/spec/runners/server_selection_rtt.rb +0 -41
  415. data/spec/runners/transactions/operation.rb +0 -332
  416. data/spec/runners/transactions/spec.rb +0 -29
  417. data/spec/runners/transactions/test.rb +0 -379
  418. data/spec/runners/transactions.rb +0 -107
  419. data/spec/runners/unified/ambiguous_operations.rb +0 -13
  420. data/spec/runners/unified/assertions.rb +0 -396
  421. data/spec/runners/unified/change_stream_operations.rb +0 -42
  422. data/spec/runners/unified/client_side_encryption_operations.rb +0 -83
  423. data/spec/runners/unified/crud_operations.rb +0 -367
  424. data/spec/runners/unified/ddl_operations.rb +0 -286
  425. data/spec/runners/unified/entity_map.rb +0 -42
  426. data/spec/runners/unified/error.rb +0 -29
  427. data/spec/runners/unified/event_subscriber.rb +0 -110
  428. data/spec/runners/unified/exceptions.rb +0 -24
  429. data/spec/runners/unified/grid_fs_operations.rb +0 -114
  430. data/spec/runners/unified/search_index_operations.rb +0 -63
  431. data/spec/runners/unified/support_operations.rb +0 -370
  432. data/spec/runners/unified/test.rb +0 -606
  433. data/spec/runners/unified/test_group.rb +0 -31
  434. data/spec/runners/unified/thread_operations.rb +0 -73
  435. data/spec/runners/unified.rb +0 -109
  436. data/spec/solo/clean_exit_spec.rb +0 -24
  437. data/spec/spec_helper.rb +0 -35
  438. data/spec/spec_tests/auth_spec.rb +0 -58
  439. data/spec/spec_tests/change_streams_unified_spec.rb +0 -14
  440. data/spec/spec_tests/client_side_encryption_spec.rb +0 -37
  441. data/spec/spec_tests/client_side_encryption_unified_spec.rb +0 -26
  442. data/spec/spec_tests/client_side_operations_timeout_spec.rb +0 -15
  443. data/spec/spec_tests/cmap_spec.rb +0 -126
  444. data/spec/spec_tests/collection_management_spec.rb +0 -13
  445. data/spec/spec_tests/command_monitoring_unified_spec.rb +0 -13
  446. data/spec/spec_tests/connection_string_spec.rb +0 -10
  447. data/spec/spec_tests/crud_spec.rb +0 -12
  448. data/spec/spec_tests/crud_unified_spec.rb +0 -13
  449. data/spec/spec_tests/data/auth/connection-string.yml +0 -366
  450. data/spec/spec_tests/data/change_streams_unified/change-streams-clusterTime.yml +0 -43
  451. data/spec/spec_tests/data/change_streams_unified/change-streams-disambiguatedPaths.yml +0 -105
  452. data/spec/spec_tests/data/change_streams_unified/change-streams-errors.yml +0 -122
  453. data/spec/spec_tests/data/change_streams_unified/change-streams-pre_and_post_images.yml +0 -351
  454. data/spec/spec_tests/data/change_streams_unified/change-streams-resume-allowlist.yml +0 -1169
  455. data/spec/spec_tests/data/change_streams_unified/change-streams-resume-errorLabels.yml +0 -1069
  456. data/spec/spec_tests/data/change_streams_unified/change-streams-showExpandedEvents.yml +0 -307
  457. data/spec/spec_tests/data/change_streams_unified/change-streams.yml +0 -927
  458. data/spec/spec_tests/data/client_side_encryption/aggregate.yml +0 -120
  459. data/spec/spec_tests/data/client_side_encryption/awsTemporary.yml +0 -57
  460. data/spec/spec_tests/data/client_side_encryption/azureKMS.yml +0 -46
  461. data/spec/spec_tests/data/client_side_encryption/badQueries.yml +0 -537
  462. data/spec/spec_tests/data/client_side_encryption/badSchema.yml +0 -73
  463. data/spec/spec_tests/data/client_side_encryption/basic.yml +0 -102
  464. data/spec/spec_tests/data/client_side_encryption/bulk.yml +0 -81
  465. data/spec/spec_tests/data/client_side_encryption/bypassAutoEncryption.yml +0 -100
  466. data/spec/spec_tests/data/client_side_encryption/bypassedCommand.yml +0 -43
  467. data/spec/spec_tests/data/client_side_encryption/count.yml +0 -54
  468. data/spec/spec_tests/data/client_side_encryption/countDocuments.yml +0 -52
  469. data/spec/spec_tests/data/client_side_encryption/create-and-createIndexes.yml +0 -58
  470. data/spec/spec_tests/data/client_side_encryption/delete.yml +0 -91
  471. data/spec/spec_tests/data/client_side_encryption/distinct.yml +0 -66
  472. data/spec/spec_tests/data/client_side_encryption/explain.yml +0 -57
  473. data/spec/spec_tests/data/client_side_encryption/find.yml +0 -105
  474. data/spec/spec_tests/data/client_side_encryption/findOneAndDelete.yml +0 -50
  475. data/spec/spec_tests/data/client_side_encryption/findOneAndReplace.yml +0 -50
  476. data/spec/spec_tests/data/client_side_encryption/findOneAndUpdate.yml +0 -50
  477. data/spec/spec_tests/data/client_side_encryption/fle2v2-BypassQueryAnalysis.yml +0 -90
  478. data/spec/spec_tests/data/client_side_encryption/fle2v2-Compact.yml +0 -83
  479. data/spec/spec_tests/data/client_side_encryption/fle2v2-CreateCollection-OldServer.yml +0 -61
  480. data/spec/spec_tests/data/client_side_encryption/fle2v2-CreateCollection.yml +0 -938
  481. data/spec/spec_tests/data/client_side_encryption/fle2v2-DecryptExistingData.yml +0 -67
  482. data/spec/spec_tests/data/client_side_encryption/fle2v2-Delete.yml +0 -101
  483. data/spec/spec_tests/data/client_side_encryption/fle2v2-EncryptedFields-vs-EncryptedFieldsMap.yml +0 -80
  484. data/spec/spec_tests/data/client_side_encryption/fle2v2-EncryptedFields-vs-jsonSchema.yml +0 -103
  485. data/spec/spec_tests/data/client_side_encryption/fle2v2-EncryptedFieldsMap-defaults.yml +0 -59
  486. data/spec/spec_tests/data/client_side_encryption/fle2v2-FindOneAndUpdate.yml +0 -201
  487. data/spec/spec_tests/data/client_side_encryption/fle2v2-InsertFind-Indexed.yml +0 -97
  488. data/spec/spec_tests/data/client_side_encryption/fle2v2-InsertFind-Unindexed.yml +0 -90
  489. data/spec/spec_tests/data/client_side_encryption/fle2v2-MissingKey.yml +0 -44
  490. data/spec/spec_tests/data/client_side_encryption/fle2v2-NoEncryption.yml +0 -45
  491. data/spec/spec_tests/data/client_side_encryption/fle2v2-Update.yml +0 -211
  492. data/spec/spec_tests/data/client_side_encryption/fle2v2-validatorAndPartialFieldExpression.yml +0 -170
  493. data/spec/spec_tests/data/client_side_encryption/gcpKMS.yml +0 -46
  494. data/spec/spec_tests/data/client_side_encryption/getMore.yml +0 -61
  495. data/spec/spec_tests/data/client_side_encryption/insert.yml +0 -88
  496. data/spec/spec_tests/data/client_side_encryption/keyAltName.yml +0 -64
  497. data/spec/spec_tests/data/client_side_encryption/localKMS.yml +0 -47
  498. data/spec/spec_tests/data/client_side_encryption/localSchema.yml +0 -65
  499. data/spec/spec_tests/data/client_side_encryption/malformedCiphertext.yml +0 -69
  500. data/spec/spec_tests/data/client_side_encryption/maxWireVersion.yml +0 -22
  501. data/spec/spec_tests/data/client_side_encryption/missingKey.yml +0 -42
  502. data/spec/spec_tests/data/client_side_encryption/noSchema.yml +0 -39
  503. data/spec/spec_tests/data/client_side_encryption/replaceOne.yml +0 -57
  504. data/spec/spec_tests/data/client_side_encryption/timeoutMS.yml +0 -67
  505. data/spec/spec_tests/data/client_side_encryption/types.yml +0 -501
  506. data/spec/spec_tests/data/client_side_encryption/unified/addKeyAltName.yml +0 -194
  507. data/spec/spec_tests/data/client_side_encryption/unified/createDataKey-kms_providers-invalid.yml +0 -67
  508. data/spec/spec_tests/data/client_side_encryption/unified/createDataKey.yml +0 -309
  509. data/spec/spec_tests/data/client_side_encryption/unified/deleteKey.yml +0 -159
  510. data/spec/spec_tests/data/client_side_encryption/unified/getKey.yml +0 -105
  511. data/spec/spec_tests/data/client_side_encryption/unified/getKeyByAltName.yml +0 -104
  512. data/spec/spec_tests/data/client_side_encryption/unified/getKeys.yml +0 -122
  513. data/spec/spec_tests/data/client_side_encryption/unified/removeKeyAltName.yml +0 -157
  514. data/spec/spec_tests/data/client_side_encryption/unified/rewrapManyDataKey-decrypt_failure.yml +0 -69
  515. data/spec/spec_tests/data/client_side_encryption/unified/rewrapManyDataKey-encrypt_failure.yml +0 -122
  516. data/spec/spec_tests/data/client_side_encryption/unified/rewrapManyDataKey.yml +0 -432
  517. data/spec/spec_tests/data/client_side_encryption/unsupportedCommand.yml +0 -25
  518. data/spec/spec_tests/data/client_side_encryption/updateMany.yml +0 -70
  519. data/spec/spec_tests/data/client_side_encryption/updateOne.yml +0 -164
  520. data/spec/spec_tests/data/client_side_encryption/validatorAndPartialFieldExpression.yml +0 -166
  521. data/spec/spec_tests/data/client_side_operations_timeout/bulkWrite.yml +0 -87
  522. data/spec/spec_tests/data/client_side_operations_timeout/change-streams.yml +0 -358
  523. data/spec/spec_tests/data/client_side_operations_timeout/close-cursors.yml +0 -129
  524. data/spec/spec_tests/data/client_side_operations_timeout/command-execution.yml +0 -250
  525. data/spec/spec_tests/data/client_side_operations_timeout/convenient-transactions.yml +0 -113
  526. data/spec/spec_tests/data/client_side_operations_timeout/cursors.yml +0 -70
  527. data/spec/spec_tests/data/client_side_operations_timeout/deprecated-options.yml +0 -3982
  528. data/spec/spec_tests/data/client_side_operations_timeout/error-transformations.yml +0 -96
  529. data/spec/spec_tests/data/client_side_operations_timeout/global-timeoutMS.yml +0 -3236
  530. data/spec/spec_tests/data/client_side_operations_timeout/gridfs-advanced.yml +0 -207
  531. data/spec/spec_tests/data/client_side_operations_timeout/gridfs-delete.yml +0 -152
  532. data/spec/spec_tests/data/client_side_operations_timeout/gridfs-download.yml +0 -182
  533. data/spec/spec_tests/data/client_side_operations_timeout/gridfs-find.yml +0 -100
  534. data/spec/spec_tests/data/client_side_operations_timeout/gridfs-upload.yml +0 -249
  535. data/spec/spec_tests/data/client_side_operations_timeout/legacy-timeouts.yml +0 -204
  536. data/spec/spec_tests/data/client_side_operations_timeout/non-tailable-cursors.yml +0 -307
  537. data/spec/spec_tests/data/client_side_operations_timeout/override-collection-timeoutMS.yml +0 -1877
  538. data/spec/spec_tests/data/client_side_operations_timeout/override-operation-timeoutMS.yml +0 -1918
  539. data/spec/spec_tests/data/client_side_operations_timeout/retryability-legacy-timeouts.yml +0 -1676
  540. data/spec/spec_tests/data/client_side_operations_timeout/retryability-timeoutMS.yml +0 -2824
  541. data/spec/spec_tests/data/client_side_operations_timeout/sessions-inherit-timeoutMS.yml +0 -168
  542. data/spec/spec_tests/data/client_side_operations_timeout/sessions-override-operation-timeoutMS.yml +0 -171
  543. data/spec/spec_tests/data/client_side_operations_timeout/sessions-override-timeoutMS.yml +0 -168
  544. data/spec/spec_tests/data/client_side_operations_timeout/tailable-awaitData.yml +0 -247
  545. data/spec/spec_tests/data/client_side_operations_timeout/tailable-non-awaitData.yml +0 -181
  546. data/spec/spec_tests/data/cmap/connection-must-have-id.yml +0 -29
  547. data/spec/spec_tests/data/cmap/connection-must-order-ids.yml +0 -29
  548. data/spec/spec_tests/data/cmap/pool-checkin-destroy-closed.yml +0 -29
  549. data/spec/spec_tests/data/cmap/pool-checkin-destroy-stale.yml +0 -29
  550. data/spec/spec_tests/data/cmap/pool-checkin-make-available.yml +0 -26
  551. data/spec/spec_tests/data/cmap/pool-checkin.yml +0 -24
  552. data/spec/spec_tests/data/cmap/pool-checkout-connection.yml +0 -21
  553. data/spec/spec_tests/data/cmap/pool-checkout-custom-maxConnecting-is-enforced.yml +0 -50
  554. data/spec/spec_tests/data/cmap/pool-checkout-error-closed.yml +0 -38
  555. data/spec/spec_tests/data/cmap/pool-checkout-maxConnecting-is-enforced.yml +0 -81
  556. data/spec/spec_tests/data/cmap/pool-checkout-maxConnecting-timeout.yml +0 -71
  557. data/spec/spec_tests/data/cmap/pool-checkout-minPoolSize-connection-maxConnecting.yml +0 -64
  558. data/spec/spec_tests/data/cmap/pool-checkout-multiple.yml +0 -39
  559. data/spec/spec_tests/data/cmap/pool-checkout-no-idle.yml +0 -41
  560. data/spec/spec_tests/data/cmap/pool-checkout-no-stale.yml +0 -41
  561. data/spec/spec_tests/data/cmap/pool-checkout-returned-connection-maxConnecting.yml +0 -88
  562. data/spec/spec_tests/data/cmap/pool-clear-interrupting-pending-connections.yml +0 -43
  563. data/spec/spec_tests/data/cmap/pool-clear-min-size.yml +0 -41
  564. data/spec/spec_tests/data/cmap/pool-clear-paused.yml +0 -18
  565. data/spec/spec_tests/data/cmap/pool-clear-ready.yml +0 -39
  566. data/spec/spec_tests/data/cmap/pool-clear-schedule-run-interruptInUseConnections-false.yml +0 -48
  567. data/spec/spec_tests/data/cmap/pool-close-destroy-conns.yml +0 -30
  568. data/spec/spec_tests/data/cmap/pool-close.yml +0 -11
  569. data/spec/spec_tests/data/cmap/pool-create-max-size.yml +0 -73
  570. data/spec/spec_tests/data/cmap/pool-create-min-size-error.yml +0 -43
  571. data/spec/spec_tests/data/cmap/pool-create-min-size.yml +0 -43
  572. data/spec/spec_tests/data/cmap/pool-create-with-options.yml +0 -21
  573. data/spec/spec_tests/data/cmap/pool-create.yml +0 -12
  574. data/spec/spec_tests/data/cmap/pool-ready-ready.yml +0 -22
  575. data/spec/spec_tests/data/cmap/pool-ready.yml +0 -30
  576. data/spec/spec_tests/data/cmap/wait-queue-fairness.yml +0 -126
  577. data/spec/spec_tests/data/cmap/wait-queue-timeout.yml +0 -51
  578. data/spec/spec_tests/data/collection_management/clustered-indexes.yml +0 -135
  579. data/spec/spec_tests/data/collection_management/createCollection-pre_and_post_images.yml +0 -50
  580. data/spec/spec_tests/data/collection_management/modifyCollection-errorResponse.yml +0 -59
  581. data/spec/spec_tests/data/collection_management/modifyCollection-pre_and_post_images.yml +0 -58
  582. data/spec/spec_tests/data/collection_management/timeseries-collection.yml +0 -164
  583. data/spec/spec_tests/data/command_monitoring_unified/bulkWrite.yml +0 -68
  584. data/spec/spec_tests/data/command_monitoring_unified/command.yml +0 -50
  585. data/spec/spec_tests/data/command_monitoring_unified/deleteMany.yml +0 -79
  586. data/spec/spec_tests/data/command_monitoring_unified/deleteOne.yml +0 -79
  587. data/spec/spec_tests/data/command_monitoring_unified/find.yml +0 -254
  588. data/spec/spec_tests/data/command_monitoring_unified/insertMany.yml +0 -79
  589. data/spec/spec_tests/data/command_monitoring_unified/insertOne.yml +0 -77
  590. data/spec/spec_tests/data/command_monitoring_unified/pre-42-server-connection-id.yml +0 -56
  591. data/spec/spec_tests/data/command_monitoring_unified/redacted-commands.yml +0 -348
  592. data/spec/spec_tests/data/command_monitoring_unified/server-connection-id.yml +0 -56
  593. data/spec/spec_tests/data/command_monitoring_unified/unacknowledgedBulkWrite.yml +0 -55
  594. data/spec/spec_tests/data/command_monitoring_unified/updateMany.yml +0 -87
  595. data/spec/spec_tests/data/command_monitoring_unified/updateOne.yml +0 -118
  596. data/spec/spec_tests/data/command_monitoring_unified/writeConcernError.yml +0 -80
  597. data/spec/spec_tests/data/connection_string/invalid-uris.yml +0 -251
  598. data/spec/spec_tests/data/connection_string/valid-auth.yml +0 -257
  599. data/spec/spec_tests/data/connection_string/valid-db-with-dotted-name.yml +0 -77
  600. data/spec/spec_tests/data/connection_string/valid-host_identifiers.yml +0 -121
  601. data/spec/spec_tests/data/connection_string/valid-options.yml +0 -30
  602. data/spec/spec_tests/data/connection_string/valid-unix_socket-absolute.yml +0 -197
  603. data/spec/spec_tests/data/connection_string/valid-unix_socket-relative.yml +0 -213
  604. data/spec/spec_tests/data/connection_string/valid-warnings.yml +0 -75
  605. data/spec/spec_tests/data/crud/read/aggregate-collation.yml +0 -18
  606. data/spec/spec_tests/data/crud/read/aggregate-out.yml +0 -44
  607. data/spec/spec_tests/data/crud/read/aggregate.yml +0 -21
  608. data/spec/spec_tests/data/crud/read/count-collation.yml +0 -26
  609. data/spec/spec_tests/data/crud/read/count-empty.yml +0 -29
  610. data/spec/spec_tests/data/crud/read/count.yml +0 -74
  611. data/spec/spec_tests/data/crud/read/distinct-collation.yml +0 -18
  612. data/spec/spec_tests/data/crud/read/distinct.yml +0 -32
  613. data/spec/spec_tests/data/crud/read/find-collation.yml +0 -16
  614. data/spec/spec_tests/data/crud/read/find.yml +0 -49
  615. data/spec/spec_tests/data/crud/write/bulkWrite-arrayFilters.yml +0 -45
  616. data/spec/spec_tests/data/crud/write/bulkWrite-collation.yml +0 -102
  617. data/spec/spec_tests/data/crud/write/bulkWrite.yml +0 -405
  618. data/spec/spec_tests/data/crud/write/deleteMany-collation.yml +0 -23
  619. data/spec/spec_tests/data/crud/write/deleteMany.yml +0 -35
  620. data/spec/spec_tests/data/crud/write/deleteOne-collation.yml +0 -23
  621. data/spec/spec_tests/data/crud/write/deleteOne.yml +0 -48
  622. data/spec/spec_tests/data/crud/write/findOneAndDelete-collation.yml +0 -24
  623. data/spec/spec_tests/data/crud/write/findOneAndDelete.yml +0 -53
  624. data/spec/spec_tests/data/crud/write/findOneAndReplace-collation.yml +0 -25
  625. data/spec/spec_tests/data/crud/write/findOneAndReplace-upsert.yml +0 -91
  626. data/spec/spec_tests/data/crud/write/findOneAndReplace-upsert_pre_2.6.yml +0 -88
  627. data/spec/spec_tests/data/crud/write/findOneAndReplace.yml +0 -113
  628. data/spec/spec_tests/data/crud/write/findOneAndUpdate-arrayFilters.yml +0 -69
  629. data/spec/spec_tests/data/crud/write/findOneAndUpdate-collation.yml +0 -28
  630. data/spec/spec_tests/data/crud/write/findOneAndUpdate.yml +0 -163
  631. data/spec/spec_tests/data/crud/write/insertMany.yml +0 -81
  632. data/spec/spec_tests/data/crud/write/insertOne.yml +0 -18
  633. data/spec/spec_tests/data/crud/write/replaceOne-collation.yml +0 -25
  634. data/spec/spec_tests/data/crud/write/replaceOne-pre_2.6.yml +0 -98
  635. data/spec/spec_tests/data/crud/write/replaceOne-upsert.yml +0 -48
  636. data/spec/spec_tests/data/crud/write/replaceOne.yml +0 -102
  637. data/spec/spec_tests/data/crud/write/updateMany-arrayFilters.yml +0 -66
  638. data/spec/spec_tests/data/crud/write/updateMany-collation.yml +0 -29
  639. data/spec/spec_tests/data/crud/write/updateMany-pre_2.6.yml +0 -86
  640. data/spec/spec_tests/data/crud/write/updateMany.yml +0 -87
  641. data/spec/spec_tests/data/crud/write/updateOne-arrayFilters.yml +0 -114
  642. data/spec/spec_tests/data/crud/write/updateOne-collation.yml +0 -26
  643. data/spec/spec_tests/data/crud/write/updateOne-pre_2.6.yml +0 -83
  644. data/spec/spec_tests/data/crud/write/updateOne.yml +0 -84
  645. data/spec/spec_tests/data/crud_unified/aggregate-allowdiskuse.yml +0 -75
  646. data/spec/spec_tests/data/crud_unified/aggregate-let.yml +0 -138
  647. data/spec/spec_tests/data/crud_unified/aggregate-merge-errorResponse.yml +0 -42
  648. data/spec/spec_tests/data/crud_unified/aggregate-merge.yml +0 -185
  649. data/spec/spec_tests/data/crud_unified/aggregate-out-readConcern.yml +0 -171
  650. data/spec/spec_tests/data/crud_unified/aggregate-write-readPreference.yml +0 -161
  651. data/spec/spec_tests/data/crud_unified/aggregate.yml +0 -215
  652. data/spec/spec_tests/data/crud_unified/bulkWrite-arrayFilters-clientError.yml +0 -98
  653. data/spec/spec_tests/data/crud_unified/bulkWrite-arrayFilters.yml +0 -174
  654. data/spec/spec_tests/data/crud_unified/bulkWrite-comment.yml +0 -189
  655. data/spec/spec_tests/data/crud_unified/bulkWrite-delete-hint-clientError.yml +0 -113
  656. data/spec/spec_tests/data/crud_unified/bulkWrite-delete-hint-serverError.yml +0 -142
  657. data/spec/spec_tests/data/crud_unified/bulkWrite-delete-hint.yml +0 -154
  658. data/spec/spec_tests/data/crud_unified/bulkWrite-deleteMany-hint-unacknowledged.yml +0 -98
  659. data/spec/spec_tests/data/crud_unified/bulkWrite-deleteMany-let.yml +0 -86
  660. data/spec/spec_tests/data/crud_unified/bulkWrite-deleteOne-hint-unacknowledged.yml +0 -97
  661. data/spec/spec_tests/data/crud_unified/bulkWrite-deleteOne-let.yml +0 -86
  662. data/spec/spec_tests/data/crud_unified/bulkWrite-errorResponse.yml +0 -50
  663. data/spec/spec_tests/data/crud_unified/bulkWrite-insertOne-dots_and_dollars.yml +0 -138
  664. data/spec/spec_tests/data/crud_unified/bulkWrite-replaceOne-dots_and_dollars.yml +0 -165
  665. data/spec/spec_tests/data/crud_unified/bulkWrite-replaceOne-hint-unacknowledged.yml +0 -103
  666. data/spec/spec_tests/data/crud_unified/bulkWrite-replaceOne-let.yml +0 -93
  667. data/spec/spec_tests/data/crud_unified/bulkWrite-update-hint-clientError.yml +0 -148
  668. data/spec/spec_tests/data/crud_unified/bulkWrite-update-hint-serverError.yml +0 -239
  669. data/spec/spec_tests/data/crud_unified/bulkWrite-update-hint.yml +0 -256
  670. data/spec/spec_tests/data/crud_unified/bulkWrite-update-validation.yml +0 -73
  671. data/spec/spec_tests/data/crud_unified/bulkWrite-updateMany-dots_and_dollars.yml +0 -150
  672. data/spec/spec_tests/data/crud_unified/bulkWrite-updateMany-hint-unacknowledged.yml +0 -104
  673. data/spec/spec_tests/data/crud_unified/bulkWrite-updateMany-let.yml +0 -96
  674. data/spec/spec_tests/data/crud_unified/bulkWrite-updateOne-dots_and_dollars.yml +0 -150
  675. data/spec/spec_tests/data/crud_unified/bulkWrite-updateOne-hint-unacknowledged.yml +0 -103
  676. data/spec/spec_tests/data/crud_unified/bulkWrite-updateOne-let.yml +0 -95
  677. data/spec/spec_tests/data/crud_unified/countDocuments-comment.yml +0 -92
  678. data/spec/spec_tests/data/crud_unified/db-aggregate-write-readPreference.yml +0 -157
  679. data/spec/spec_tests/data/crud_unified/db-aggregate.yml +0 -73
  680. data/spec/spec_tests/data/crud_unified/deleteMany-comment.yml +0 -97
  681. data/spec/spec_tests/data/crud_unified/deleteMany-hint-clientError.yml +0 -87
  682. data/spec/spec_tests/data/crud_unified/deleteMany-hint-serverError.yml +0 -107
  683. data/spec/spec_tests/data/crud_unified/deleteMany-hint-unacknowledged.yml +0 -90
  684. data/spec/spec_tests/data/crud_unified/deleteMany-hint.yml +0 -99
  685. data/spec/spec_tests/data/crud_unified/deleteMany-let.yml +0 -93
  686. data/spec/spec_tests/data/crud_unified/deleteOne-comment.yml +0 -98
  687. data/spec/spec_tests/data/crud_unified/deleteOne-errorResponse.yml +0 -46
  688. data/spec/spec_tests/data/crud_unified/deleteOne-hint-clientError.yml +0 -80
  689. data/spec/spec_tests/data/crud_unified/deleteOne-hint-serverError.yml +0 -100
  690. data/spec/spec_tests/data/crud_unified/deleteOne-hint-unacknowledged.yml +0 -89
  691. data/spec/spec_tests/data/crud_unified/deleteOne-hint.yml +0 -95
  692. data/spec/spec_tests/data/crud_unified/deleteOne-let.yml +0 -91
  693. data/spec/spec_tests/data/crud_unified/distinct-comment.yml +0 -98
  694. data/spec/spec_tests/data/crud_unified/estimatedDocumentCount-comment.yml +0 -95
  695. data/spec/spec_tests/data/crud_unified/estimatedDocumentCount.yml +0 -181
  696. data/spec/spec_tests/data/crud_unified/find-allowdiskuse-clientError.yml +0 -55
  697. data/spec/spec_tests/data/crud_unified/find-allowdiskuse-serverError.yml +0 -68
  698. data/spec/spec_tests/data/crud_unified/find-allowdiskuse.yml +0 -79
  699. data/spec/spec_tests/data/crud_unified/find-comment.yml +0 -166
  700. data/spec/spec_tests/data/crud_unified/find-let.yml +0 -71
  701. data/spec/spec_tests/data/crud_unified/find-test-all-options.yml +0 -377
  702. data/spec/spec_tests/data/crud_unified/find.yml +0 -68
  703. data/spec/spec_tests/data/crud_unified/findOneAndDelete-comment.yml +0 -96
  704. data/spec/spec_tests/data/crud_unified/findOneAndDelete-hint-clientError.yml +0 -91
  705. data/spec/spec_tests/data/crud_unified/findOneAndDelete-hint-serverError.yml +0 -107
  706. data/spec/spec_tests/data/crud_unified/findOneAndDelete-hint-unacknowledged.yml +0 -88
  707. data/spec/spec_tests/data/crud_unified/findOneAndDelete-hint.yml +0 -102
  708. data/spec/spec_tests/data/crud_unified/findOneAndDelete-let.yml +0 -86
  709. data/spec/spec_tests/data/crud_unified/findOneAndReplace-comment.yml +0 -101
  710. data/spec/spec_tests/data/crud_unified/findOneAndReplace-dots_and_dollars.yml +0 -140
  711. data/spec/spec_tests/data/crud_unified/findOneAndReplace-hint-clientError.yml +0 -83
  712. data/spec/spec_tests/data/crud_unified/findOneAndReplace-hint-serverError.yml +0 -99
  713. data/spec/spec_tests/data/crud_unified/findOneAndReplace-hint-unacknowledged.yml +0 -96
  714. data/spec/spec_tests/data/crud_unified/findOneAndReplace-hint.yml +0 -98
  715. data/spec/spec_tests/data/crud_unified/findOneAndReplace-let.yml +0 -94
  716. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-comment.yml +0 -95
  717. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-dots_and_dollars.yml +0 -127
  718. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-errorResponse.yml +0 -69
  719. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-hint-clientError.yml +0 -84
  720. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-hint-serverError.yml +0 -100
  721. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-hint-unacknowledged.yml +0 -92
  722. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-hint.yml +0 -99
  723. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-let.yml +0 -96
  724. data/spec/spec_tests/data/crud_unified/insertMany-comment.yml +0 -93
  725. data/spec/spec_tests/data/crud_unified/insertMany-dots_and_dollars.yml +0 -128
  726. data/spec/spec_tests/data/crud_unified/insertOne-comment.yml +0 -91
  727. data/spec/spec_tests/data/crud_unified/insertOne-dots_and_dollars.yml +0 -238
  728. data/spec/spec_tests/data/crud_unified/insertOne-errorResponse.yml +0 -46
  729. data/spec/spec_tests/data/crud_unified/replaceOne-comment.yml +0 -105
  730. data/spec/spec_tests/data/crud_unified/replaceOne-dots_and_dollars.yml +0 -180
  731. data/spec/spec_tests/data/crud_unified/replaceOne-hint-unacknowledged.yml +0 -95
  732. data/spec/spec_tests/data/crud_unified/replaceOne-hint.yml +0 -108
  733. data/spec/spec_tests/data/crud_unified/replaceOne-let.yml +0 -98
  734. data/spec/spec_tests/data/crud_unified/replaceOne-validation.yml +0 -37
  735. data/spec/spec_tests/data/crud_unified/updateMany-comment.yml +0 -104
  736. data/spec/spec_tests/data/crud_unified/updateMany-dots_and_dollars.yml +0 -138
  737. data/spec/spec_tests/data/crud_unified/updateMany-hint-clientError.yml +0 -91
  738. data/spec/spec_tests/data/crud_unified/updateMany-hint-serverError.yml +0 -115
  739. data/spec/spec_tests/data/crud_unified/updateMany-hint-unacknowledged.yml +0 -96
  740. data/spec/spec_tests/data/crud_unified/updateMany-hint.yml +0 -115
  741. data/spec/spec_tests/data/crud_unified/updateMany-let.yml +0 -107
  742. data/spec/spec_tests/data/crud_unified/updateMany-validation.yml +0 -39
  743. data/spec/spec_tests/data/crud_unified/updateOne-comment.yml +0 -104
  744. data/spec/spec_tests/data/crud_unified/updateOne-dots_and_dollars.yml +0 -138
  745. data/spec/spec_tests/data/crud_unified/updateOne-errorResponse.yml +0 -47
  746. data/spec/spec_tests/data/crud_unified/updateOne-hint-clientError.yml +0 -85
  747. data/spec/spec_tests/data/crud_unified/updateOne-hint-serverError.yml +0 -109
  748. data/spec/spec_tests/data/crud_unified/updateOne-hint-unacknowledged.yml +0 -95
  749. data/spec/spec_tests/data/crud_unified/updateOne-hint.yml +0 -109
  750. data/spec/spec_tests/data/crud_unified/updateOne-let.yml +0 -102
  751. data/spec/spec_tests/data/crud_unified/updateOne-validation.yml +0 -37
  752. data/spec/spec_tests/data/crud_unified/updateWithPipelines.yml +0 -299
  753. data/spec/spec_tests/data/gridfs/delete.yml +0 -123
  754. data/spec/spec_tests/data/gridfs/download.yml +0 -192
  755. data/spec/spec_tests/data/gridfs/download_by_name.yml +0 -113
  756. data/spec/spec_tests/data/gridfs/upload.yml +0 -158
  757. data/spec/spec_tests/data/gridfs_unified/delete.yml +0 -198
  758. data/spec/spec_tests/data/gridfs_unified/download.yml +0 -241
  759. data/spec/spec_tests/data/gridfs_unified/downloadByName.yml +0 -159
  760. data/spec/spec_tests/data/gridfs_unified/upload-disableMD5.yml +0 -92
  761. data/spec/spec_tests/data/gridfs_unified/upload.yml +0 -288
  762. data/spec/spec_tests/data/index_management/createSearchIndex.yml +0 -64
  763. data/spec/spec_tests/data/index_management/createSearchIndexes.yml +0 -86
  764. data/spec/spec_tests/data/index_management/dropSearchIndex.yml +0 -43
  765. data/spec/spec_tests/data/index_management/listSearchIndexes.yml +0 -91
  766. data/spec/spec_tests/data/index_management/updateSearchIndex.yml +0 -46
  767. data/spec/spec_tests/data/load_balancers/event-monitoring.yml +0 -99
  768. data/spec/spec_tests/data/load_balancers/lb-connection-establishment.yml +0 -36
  769. data/spec/spec_tests/data/load_balancers/non-lb-connection-establishment.yml +0 -56
  770. data/spec/spec_tests/data/load_balancers/server-selection.yml +0 -50
  771. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/DefaultNoMaxStaleness.yml +0 -26
  772. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Incompatible.yml +0 -25
  773. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/LastUpdateTime.yml +0 -33
  774. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/MaxStalenessTooSmall.yml +0 -15
  775. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Nearest.yml +0 -33
  776. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Nearest2.yml +0 -33
  777. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/NoKnownServers.yml +0 -16
  778. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/PrimaryPreferred.yml +0 -27
  779. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/PrimaryPreferred_tags.yml +0 -36
  780. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Secondary.yml +0 -51
  781. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/SecondaryPreferred.yml +0 -26
  782. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/SecondaryPreferred_tags.yml +0 -51
  783. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/ZeroMaxStaleness.yml +0 -23
  784. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/DefaultNoMaxStaleness.yml +0 -26
  785. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Incompatible.yml +0 -25
  786. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/LastUpdateTime.yml +0 -35
  787. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/LongHeartbeat.yml +0 -29
  788. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/LongHeartbeat2.yml +0 -25
  789. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/MaxStalenessTooSmall.yml +0 -26
  790. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/MaxStalenessWithModePrimary.yml +0 -23
  791. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Nearest.yml +0 -33
  792. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Nearest2.yml +0 -33
  793. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Nearest_tags.yml +0 -36
  794. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/PrimaryPreferred.yml +0 -27
  795. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/PrimaryPreferred_incompatible.yml +0 -27
  796. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/SecondaryPreferred.yml +0 -26
  797. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/SecondaryPreferred_tags.yml +0 -59
  798. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/SecondaryPreferred_tags2.yml +0 -43
  799. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Secondary_tags.yml +0 -59
  800. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Secondary_tags2.yml +0 -43
  801. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/ZeroMaxStaleness.yml +0 -23
  802. data/spec/spec_tests/data/max_staleness/Sharded/Incompatible.yml +0 -25
  803. data/spec/spec_tests/data/max_staleness/Sharded/SmallMaxStaleness.yml +0 -28
  804. data/spec/spec_tests/data/max_staleness/Single/Incompatible.yml +0 -18
  805. data/spec/spec_tests/data/max_staleness/Single/SmallMaxStaleness.yml +0 -20
  806. data/spec/spec_tests/data/max_staleness/Unknown/SmallMaxStaleness.yml +0 -15
  807. data/spec/spec_tests/data/read_write_concern/connection-string/read-concern.yml +0 -32
  808. data/spec/spec_tests/data/read_write_concern/connection-string/write-concern.yml +0 -79
  809. data/spec/spec_tests/data/read_write_concern/document/read-concern.yml +0 -37
  810. data/spec/spec_tests/data/read_write_concern/document/write-concern.yml +0 -100
  811. data/spec/spec_tests/data/read_write_concern/operation/default-write-concern-2.6.yml +0 -215
  812. data/spec/spec_tests/data/read_write_concern/operation/default-write-concern-3.2.yml +0 -58
  813. data/spec/spec_tests/data/read_write_concern/operation/default-write-concern-3.4.yml +0 -95
  814. data/spec/spec_tests/data/read_write_concern/operation/default-write-concern-4.2.yml +0 -36
  815. data/spec/spec_tests/data/retryable_reads/legacy/aggregate-merge.yml +0 -39
  816. data/spec/spec_tests/data/retryable_reads/legacy/aggregate-serverErrors.yml +0 -157
  817. data/spec/spec_tests/data/retryable_reads/legacy/aggregate.yml +0 -87
  818. data/spec/spec_tests/data/retryable_reads/legacy/changeStreams-client.watch-serverErrors.yml +0 -150
  819. data/spec/spec_tests/data/retryable_reads/legacy/changeStreams-client.watch.yml +0 -62
  820. data/spec/spec_tests/data/retryable_reads/legacy/changeStreams-db.coll.watch-serverErrors.yml +0 -150
  821. data/spec/spec_tests/data/retryable_reads/legacy/changeStreams-db.coll.watch.yml +0 -66
  822. data/spec/spec_tests/data/retryable_reads/legacy/changeStreams-db.watch-serverErrors.yml +0 -154
  823. data/spec/spec_tests/data/retryable_reads/legacy/changeStreams-db.watch.yml +0 -62
  824. data/spec/spec_tests/data/retryable_reads/legacy/count-serverErrors.yml +0 -150
  825. data/spec/spec_tests/data/retryable_reads/legacy/count.yml +0 -64
  826. data/spec/spec_tests/data/retryable_reads/legacy/countDocuments-serverErrors.yml +0 -150
  827. data/spec/spec_tests/data/retryable_reads/legacy/countDocuments.yml +0 -64
  828. data/spec/spec_tests/data/retryable_reads/legacy/distinct-serverErrors.yml +0 -156
  829. data/spec/spec_tests/data/retryable_reads/legacy/distinct.yml +0 -71
  830. data/spec/spec_tests/data/retryable_reads/legacy/estimatedDocumentCount-serverErrors.yml +0 -148
  831. data/spec/spec_tests/data/retryable_reads/legacy/estimatedDocumentCount.yml +0 -62
  832. data/spec/spec_tests/data/retryable_reads/legacy/find-serverErrors.yml +0 -160
  833. data/spec/spec_tests/data/retryable_reads/legacy/find.yml +0 -86
  834. data/spec/spec_tests/data/retryable_reads/legacy/findOne-serverErrors.yml +0 -154
  835. data/spec/spec_tests/data/retryable_reads/legacy/findOne.yml +0 -68
  836. data/spec/spec_tests/data/retryable_reads/legacy/gridfs-download-serverErrors.yml +0 -173
  837. data/spec/spec_tests/data/retryable_reads/legacy/gridfs-download.yml +0 -79
  838. data/spec/spec_tests/data/retryable_reads/legacy/gridfs-downloadByName-serverErrors.yml +0 -174
  839. data/spec/spec_tests/data/retryable_reads/legacy/gridfs-downloadByName.yml +0 -79
  840. data/spec/spec_tests/data/retryable_reads/legacy/listCollectionNames-serverErrors.yml +0 -143
  841. data/spec/spec_tests/data/retryable_reads/legacy/listCollectionNames.yml +0 -59
  842. data/spec/spec_tests/data/retryable_reads/legacy/listCollectionObjects-serverErrors.yml +0 -144
  843. data/spec/spec_tests/data/retryable_reads/legacy/listCollectionObjects.yml +0 -59
  844. data/spec/spec_tests/data/retryable_reads/legacy/listCollections-serverErrors.yml +0 -143
  845. data/spec/spec_tests/data/retryable_reads/legacy/listCollections.yml +0 -59
  846. data/spec/spec_tests/data/retryable_reads/legacy/listDatabaseNames-serverErrors.yml +0 -143
  847. data/spec/spec_tests/data/retryable_reads/legacy/listDatabaseNames.yml +0 -59
  848. data/spec/spec_tests/data/retryable_reads/legacy/listDatabaseObjects-serverErrors.yml +0 -144
  849. data/spec/spec_tests/data/retryable_reads/legacy/listDatabaseObjects.yml +0 -59
  850. data/spec/spec_tests/data/retryable_reads/legacy/listDatabases-serverErrors.yml +0 -144
  851. data/spec/spec_tests/data/retryable_reads/legacy/listDatabases.yml +0 -59
  852. data/spec/spec_tests/data/retryable_reads/legacy/listIndexNames-serverErrors.yml +0 -144
  853. data/spec/spec_tests/data/retryable_reads/legacy/listIndexNames.yml +0 -60
  854. data/spec/spec_tests/data/retryable_reads/legacy/listIndexes-serverErrors.yml +0 -145
  855. data/spec/spec_tests/data/retryable_reads/legacy/listIndexes.yml +0 -60
  856. data/spec/spec_tests/data/retryable_reads/legacy/mapReduce.yml +0 -62
  857. data/spec/spec_tests/data/retryable_reads/unified/handshakeError.yml +0 -1342
  858. data/spec/spec_tests/data/retryable_writes/legacy/bulkWrite-errorLabels.yml +0 -77
  859. data/spec/spec_tests/data/retryable_writes/legacy/bulkWrite-serverErrors.yml +0 -130
  860. data/spec/spec_tests/data/retryable_writes/legacy/bulkWrite.yml +0 -402
  861. data/spec/spec_tests/data/retryable_writes/legacy/deleteMany.yml +0 -22
  862. data/spec/spec_tests/data/retryable_writes/legacy/deleteOne-errorLabels.yml +0 -48
  863. data/spec/spec_tests/data/retryable_writes/legacy/deleteOne-serverErrors.yml +0 -73
  864. data/spec/spec_tests/data/retryable_writes/legacy/deleteOne.yml +0 -57
  865. data/spec/spec_tests/data/retryable_writes/legacy/findOneAndDelete-errorLabels.yml +0 -49
  866. data/spec/spec_tests/data/retryable_writes/legacy/findOneAndDelete-serverErrors.yml +0 -74
  867. data/spec/spec_tests/data/retryable_writes/legacy/findOneAndDelete.yml +0 -58
  868. data/spec/spec_tests/data/retryable_writes/legacy/findOneAndReplace-errorLabels.yml +0 -52
  869. data/spec/spec_tests/data/retryable_writes/legacy/findOneAndReplace-serverErrors.yml +0 -80
  870. data/spec/spec_tests/data/retryable_writes/legacy/findOneAndReplace.yml +0 -63
  871. data/spec/spec_tests/data/retryable_writes/legacy/findOneAndUpdate-errorLabels.yml +0 -52
  872. data/spec/spec_tests/data/retryable_writes/legacy/findOneAndUpdate-serverErrors.yml +0 -79
  873. data/spec/spec_tests/data/retryable_writes/legacy/findOneAndUpdate.yml +0 -62
  874. data/spec/spec_tests/data/retryable_writes/legacy/insertMany-errorLabels.yml +0 -54
  875. data/spec/spec_tests/data/retryable_writes/legacy/insertMany-serverErrors.yml +0 -84
  876. data/spec/spec_tests/data/retryable_writes/legacy/insertMany.yml +0 -74
  877. data/spec/spec_tests/data/retryable_writes/legacy/insertOne-errorLabels.yml +0 -44
  878. data/spec/spec_tests/data/retryable_writes/legacy/insertOne-serverErrors.yml +0 -527
  879. data/spec/spec_tests/data/retryable_writes/legacy/insertOne.yml +0 -61
  880. data/spec/spec_tests/data/retryable_writes/legacy/replaceOne-errorLabels.yml +0 -53
  881. data/spec/spec_tests/data/retryable_writes/legacy/replaceOne-serverErrors.yml +0 -82
  882. data/spec/spec_tests/data/retryable_writes/legacy/replaceOne.yml +0 -66
  883. data/spec/spec_tests/data/retryable_writes/legacy/updateMany.yml +0 -27
  884. data/spec/spec_tests/data/retryable_writes/legacy/updateOne-errorLabels.yml +0 -53
  885. data/spec/spec_tests/data/retryable_writes/legacy/updateOne-serverErrors.yml +0 -82
  886. data/spec/spec_tests/data/retryable_writes/legacy/updateOne.yml +0 -129
  887. data/spec/spec_tests/data/retryable_writes/unified/bulkWrite-serverErrors.yml +0 -93
  888. data/spec/spec_tests/data/retryable_writes/unified/handshakeError.yml +0 -785
  889. data/spec/spec_tests/data/retryable_writes/unified/insertOne-noWritesPerformedError.yml +0 -54
  890. data/spec/spec_tests/data/retryable_writes/unified/insertOne-serverErrors.yml +0 -75
  891. data/spec/spec_tests/data/run_command_unified/runCommand.yml +0 -319
  892. data/spec/spec_tests/data/sdam/errors/error_handling_handshake.yml +0 -55
  893. data/spec/spec_tests/data/sdam/errors/non-stale-network-error.yml +0 -47
  894. data/spec/spec_tests/data/sdam/errors/non-stale-network-timeout-error.yml +0 -38
  895. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-greater-InterruptedAtShutdown.yml +0 -61
  896. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-greater-InterruptedDueToReplStateChange.yml +0 -61
  897. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-greater-LegacyNotPrimary.yml +0 -61
  898. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-greater-NotPrimaryNoSecondaryOk.yml +0 -61
  899. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-greater-NotPrimaryOrSecondary.yml +0 -61
  900. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-greater-NotWritablePrimary.yml +0 -61
  901. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-greater-PrimarySteppedDown.yml +0 -61
  902. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-greater-ShutdownInProgress.yml +0 -61
  903. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-missing-InterruptedAtShutdown.yml +0 -52
  904. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-missing-InterruptedDueToReplStateChange.yml +0 -52
  905. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-missing-LegacyNotPrimary.yml +0 -52
  906. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-missing-NotPrimaryNoSecondaryOk.yml +0 -52
  907. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-missing-NotPrimaryOrSecondary.yml +0 -52
  908. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-missing-NotWritablePrimary.yml +0 -52
  909. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-missing-PrimarySteppedDown.yml +0 -52
  910. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-missing-ShutdownInProgress.yml +0 -52
  911. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-proccessId-changed-InterruptedAtShutdown.yml +0 -61
  912. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-proccessId-changed-InterruptedDueToReplStateChange.yml +0 -61
  913. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-proccessId-changed-LegacyNotPrimary.yml +0 -61
  914. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-proccessId-changed-NotPrimaryNoSecondaryOk.yml +0 -61
  915. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-proccessId-changed-NotPrimaryOrSecondary.yml +0 -61
  916. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-proccessId-changed-NotWritablePrimary.yml +0 -61
  917. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-proccessId-changed-PrimarySteppedDown.yml +0 -61
  918. data/spec/spec_tests/data/sdam/errors/non-stale-topologyVersion-proccessId-changed-ShutdownInProgress.yml +0 -61
  919. data/spec/spec_tests/data/sdam/errors/post-42-InterruptedAtShutdown.yml +0 -47
  920. data/spec/spec_tests/data/sdam/errors/post-42-InterruptedDueToReplStateChange.yml +0 -47
  921. data/spec/spec_tests/data/sdam/errors/post-42-LegacyNotPrimary.yml +0 -47
  922. data/spec/spec_tests/data/sdam/errors/post-42-NotPrimaryNoSecondaryOk.yml +0 -47
  923. data/spec/spec_tests/data/sdam/errors/post-42-NotPrimaryOrSecondary.yml +0 -47
  924. data/spec/spec_tests/data/sdam/errors/post-42-NotWritablePrimary.yml +0 -47
  925. data/spec/spec_tests/data/sdam/errors/post-42-PrimarySteppedDown.yml +0 -47
  926. data/spec/spec_tests/data/sdam/errors/post-42-ShutdownInProgress.yml +0 -47
  927. data/spec/spec_tests/data/sdam/errors/pre-42-InterruptedAtShutdown.yml +0 -47
  928. data/spec/spec_tests/data/sdam/errors/pre-42-InterruptedDueToReplStateChange.yml +0 -47
  929. data/spec/spec_tests/data/sdam/errors/pre-42-LegacyNotPrimary.yml +0 -47
  930. data/spec/spec_tests/data/sdam/errors/pre-42-NotPrimaryNoSecondaryOk.yml +0 -47
  931. data/spec/spec_tests/data/sdam/errors/pre-42-NotPrimaryOrSecondary.yml +0 -47
  932. data/spec/spec_tests/data/sdam/errors/pre-42-NotWritablePrimary.yml +0 -47
  933. data/spec/spec_tests/data/sdam/errors/pre-42-PrimarySteppedDown.yml +0 -47
  934. data/spec/spec_tests/data/sdam/errors/pre-42-ShutdownInProgress.yml +0 -47
  935. data/spec/spec_tests/data/sdam/errors/prefer-error-code.yml +0 -54
  936. data/spec/spec_tests/data/sdam/errors/stale-generation-InterruptedAtShutdown.yml +0 -91
  937. data/spec/spec_tests/data/sdam/errors/stale-generation-InterruptedDueToReplStateChange.yml +0 -91
  938. data/spec/spec_tests/data/sdam/errors/stale-generation-NotPrimaryNoSecondaryOk.yml +0 -91
  939. data/spec/spec_tests/data/sdam/errors/stale-generation-NotPrimaryOrSecondary.yml +0 -91
  940. data/spec/spec_tests/data/sdam/errors/stale-generation-NotWritablePrimary.yml +0 -91
  941. data/spec/spec_tests/data/sdam/errors/stale-generation-PrimarySteppedDown.yml +0 -91
  942. data/spec/spec_tests/data/sdam/errors/stale-generation-ShutdownInProgress.yml +0 -91
  943. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-InterruptedAtShutdown.yml +0 -91
  944. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-InterruptedDueToReplStateChange.yml +0 -91
  945. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-LegacyNotPrimary.yml +0 -91
  946. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-NotPrimaryNoSecondaryOk.yml +0 -91
  947. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-NotPrimaryOrSecondary.yml +0 -91
  948. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-NotWritablePrimary.yml +0 -91
  949. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-PrimarySteppedDown.yml +0 -91
  950. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-ShutdownInProgress.yml +0 -91
  951. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-network.yml +0 -82
  952. data/spec/spec_tests/data/sdam/errors/stale-generation-afterHandshakeCompletes-timeout.yml +0 -82
  953. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-InterruptedAtShutdown.yml +0 -91
  954. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-InterruptedDueToReplStateChange.yml +0 -91
  955. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-LegacyNotPrimary.yml +0 -91
  956. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-NotPrimaryNoSecondaryOk.yml +0 -91
  957. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-NotPrimaryOrSecondary.yml +0 -91
  958. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-NotWritablePrimary.yml +0 -91
  959. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-PrimarySteppedDown.yml +0 -91
  960. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-ShutdownInProgress.yml +0 -91
  961. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-network.yml +0 -82
  962. data/spec/spec_tests/data/sdam/errors/stale-generation-beforeHandshakeCompletes-timeout.yml +0 -82
  963. data/spec/spec_tests/data/sdam/errors/stale-topologyVersion-InterruptedAtShutdown.yml +0 -65
  964. data/spec/spec_tests/data/sdam/errors/stale-topologyVersion-InterruptedDueToReplStateChange.yml +0 -65
  965. data/spec/spec_tests/data/sdam/errors/stale-topologyVersion-LegacyNotPrimary.yml +0 -65
  966. data/spec/spec_tests/data/sdam/errors/stale-topologyVersion-NotPrimaryNoSecondaryOk.yml +0 -65
  967. data/spec/spec_tests/data/sdam/errors/stale-topologyVersion-NotPrimaryOrSecondary.yml +0 -65
  968. data/spec/spec_tests/data/sdam/errors/stale-topologyVersion-NotWritablePrimary.yml +0 -65
  969. data/spec/spec_tests/data/sdam/errors/stale-topologyVersion-PrimarySteppedDown.yml +0 -65
  970. data/spec/spec_tests/data/sdam/errors/stale-topologyVersion-ShutdownInProgress.yml +0 -65
  971. data/spec/spec_tests/data/sdam/errors/write_errors_ignored.yml +0 -42
  972. data/spec/spec_tests/data/sdam/load-balanced/discover_load_balancer.yml +0 -25
  973. data/spec/spec_tests/data/sdam/rs/compatible.yml +0 -45
  974. data/spec/spec_tests/data/sdam/rs/compatible_unknown.yml +0 -34
  975. data/spec/spec_tests/data/sdam/rs/discover_arbiters.yml +0 -44
  976. data/spec/spec_tests/data/sdam/rs/discover_arbiters_replicaset.yml +0 -44
  977. data/spec/spec_tests/data/sdam/rs/discover_ghost.yml +0 -36
  978. data/spec/spec_tests/data/sdam/rs/discover_ghost_replicaset.yml +0 -42
  979. data/spec/spec_tests/data/sdam/rs/discover_hidden.yml +0 -51
  980. data/spec/spec_tests/data/sdam/rs/discover_hidden_replicaset.yml +0 -51
  981. data/spec/spec_tests/data/sdam/rs/discover_passives.yml +0 -83
  982. data/spec/spec_tests/data/sdam/rs/discover_passives_replicaset.yml +0 -83
  983. data/spec/spec_tests/data/sdam/rs/discover_primary.yml +0 -43
  984. data/spec/spec_tests/data/sdam/rs/discover_primary_replicaset.yml +0 -43
  985. data/spec/spec_tests/data/sdam/rs/discover_rsother.yml +0 -50
  986. data/spec/spec_tests/data/sdam/rs/discover_rsother_replicaset.yml +0 -68
  987. data/spec/spec_tests/data/sdam/rs/discover_secondary.yml +0 -44
  988. data/spec/spec_tests/data/sdam/rs/discover_secondary_replicaset.yml +0 -44
  989. data/spec/spec_tests/data/sdam/rs/discovery.yml +0 -207
  990. data/spec/spec_tests/data/sdam/rs/electionId_precedence_setVersion.yml +0 -62
  991. data/spec/spec_tests/data/sdam/rs/equal_electionids.yml +0 -57
  992. data/spec/spec_tests/data/sdam/rs/hosts_differ_from_seeds.yml +0 -37
  993. data/spec/spec_tests/data/sdam/rs/incompatible_arbiter.yml +0 -36
  994. data/spec/spec_tests/data/sdam/rs/incompatible_ghost.yml +0 -34
  995. data/spec/spec_tests/data/sdam/rs/incompatible_other.yml +0 -36
  996. data/spec/spec_tests/data/sdam/rs/ls_timeout.yml +0 -249
  997. data/spec/spec_tests/data/sdam/rs/member_reconfig.yml +0 -74
  998. data/spec/spec_tests/data/sdam/rs/member_standalone.yml +0 -66
  999. data/spec/spec_tests/data/sdam/rs/new_primary.yml +0 -80
  1000. data/spec/spec_tests/data/sdam/rs/new_primary_new_electionid.yml +0 -119
  1001. data/spec/spec_tests/data/sdam/rs/new_primary_new_setversion.yml +0 -119
  1002. data/spec/spec_tests/data/sdam/rs/new_primary_wrong_set_name.yml +0 -77
  1003. data/spec/spec_tests/data/sdam/rs/non_rs_member.yml +0 -33
  1004. data/spec/spec_tests/data/sdam/rs/normalize_case.yml +0 -52
  1005. data/spec/spec_tests/data/sdam/rs/normalize_case_me.yml +0 -102
  1006. data/spec/spec_tests/data/sdam/rs/null_election_id-pre-6.0.yml +0 -175
  1007. data/spec/spec_tests/data/sdam/rs/null_election_id.yml +0 -177
  1008. data/spec/spec_tests/data/sdam/rs/primary_becomes_ghost.yml +0 -65
  1009. data/spec/spec_tests/data/sdam/rs/primary_becomes_mongos.yml +0 -58
  1010. data/spec/spec_tests/data/sdam/rs/primary_becomes_standalone.yml +0 -55
  1011. data/spec/spec_tests/data/sdam/rs/primary_changes_set_name.yml +0 -63
  1012. data/spec/spec_tests/data/sdam/rs/primary_disconnect.yml +0 -59
  1013. data/spec/spec_tests/data/sdam/rs/primary_disconnect_electionid.yml +0 -189
  1014. data/spec/spec_tests/data/sdam/rs/primary_disconnect_setversion.yml +0 -189
  1015. data/spec/spec_tests/data/sdam/rs/primary_hint_from_secondary_with_mismatched_me.yml +0 -64
  1016. data/spec/spec_tests/data/sdam/rs/primary_mismatched_me.yml +0 -27
  1017. data/spec/spec_tests/data/sdam/rs/primary_mismatched_me_not_removed.yml +0 -75
  1018. data/spec/spec_tests/data/sdam/rs/primary_reports_new_member.yml +0 -175
  1019. data/spec/spec_tests/data/sdam/rs/primary_to_no_primary_mismatched_me.yml +0 -81
  1020. data/spec/spec_tests/data/sdam/rs/primary_wrong_set_name.yml +0 -30
  1021. data/spec/spec_tests/data/sdam/rs/repeated.yml +0 -105
  1022. data/spec/spec_tests/data/sdam/rs/replicaset_rsnp.yml +0 -21
  1023. data/spec/spec_tests/data/sdam/rs/response_from_removed.yml +0 -69
  1024. data/spec/spec_tests/data/sdam/rs/ruby_primary_address_change.yml +0 -31
  1025. data/spec/spec_tests/data/sdam/rs/ruby_secondary_wrong_set_name_with_primary_second.yml +0 -73
  1026. data/spec/spec_tests/data/sdam/rs/sec_not_auth.yml +0 -55
  1027. data/spec/spec_tests/data/sdam/rs/secondary_ignore_ok_0-pre-6.0.yml +0 -87
  1028. data/spec/spec_tests/data/sdam/rs/secondary_ignore_ok_0.yml +0 -87
  1029. data/spec/spec_tests/data/sdam/rs/secondary_mismatched_me.yml +0 -28
  1030. data/spec/spec_tests/data/sdam/rs/secondary_wrong_set_name.yml +0 -31
  1031. data/spec/spec_tests/data/sdam/rs/secondary_wrong_set_name_with_primary.yml +0 -75
  1032. data/spec/spec_tests/data/sdam/rs/set_version_can_rollback.yml +0 -101
  1033. data/spec/spec_tests/data/sdam/rs/setversion_equal_max_without_electionid.yml +0 -78
  1034. data/spec/spec_tests/data/sdam/rs/setversion_greaterthan_max_without_electionid.yml +0 -79
  1035. data/spec/spec_tests/data/sdam/rs/setversion_without_electionid-pre-6.0.yml +0 -79
  1036. data/spec/spec_tests/data/sdam/rs/setversion_without_electionid.yml +0 -78
  1037. data/spec/spec_tests/data/sdam/rs/stepdown_change_set_name.yml +0 -65
  1038. data/spec/spec_tests/data/sdam/rs/too_new.yml +0 -45
  1039. data/spec/spec_tests/data/sdam/rs/too_old.yml +0 -41
  1040. data/spec/spec_tests/data/sdam/rs/topology_version_equal.yml +0 -68
  1041. data/spec/spec_tests/data/sdam/rs/topology_version_greater.yml +0 -194
  1042. data/spec/spec_tests/data/sdam/rs/topology_version_less.yml +0 -64
  1043. data/spec/spec_tests/data/sdam/rs/unexpected_mongos.yml +0 -29
  1044. data/spec/spec_tests/data/sdam/rs/use_setversion_without_electionid-pre-6.0.yml +0 -117
  1045. data/spec/spec_tests/data/sdam/rs/use_setversion_without_electionid.yml +0 -119
  1046. data/spec/spec_tests/data/sdam/rs/wrong_set_name.yml +0 -38
  1047. data/spec/spec_tests/data/sdam/sharded/compatible.yml +0 -40
  1048. data/spec/spec_tests/data/sdam/sharded/discover_single_mongos.yml +0 -24
  1049. data/spec/spec_tests/data/sdam/sharded/ls_timeout_mongos.yml +0 -101
  1050. data/spec/spec_tests/data/sdam/sharded/mongos_disconnect.yml +0 -113
  1051. data/spec/spec_tests/data/sdam/sharded/multiple_mongoses.yml +0 -52
  1052. data/spec/spec_tests/data/sdam/sharded/non_mongos_removed.yml +0 -47
  1053. data/spec/spec_tests/data/sdam/sharded/normalize_uri_case.yml +0 -32
  1054. data/spec/spec_tests/data/sdam/sharded/ruby_primary_different_address.yml +0 -21
  1055. data/spec/spec_tests/data/sdam/sharded/ruby_primary_mismatched_me.yml +0 -22
  1056. data/spec/spec_tests/data/sdam/sharded/too_new.yml +0 -38
  1057. data/spec/spec_tests/data/sdam/sharded/too_old.yml +0 -38
  1058. data/spec/spec_tests/data/sdam/single/compatible.yml +0 -27
  1059. data/spec/spec_tests/data/sdam/single/direct_connection_external_ip.yml +0 -37
  1060. data/spec/spec_tests/data/sdam/single/direct_connection_mongos.yml +0 -36
  1061. data/spec/spec_tests/data/sdam/single/direct_connection_replicaset.yml +0 -23
  1062. data/spec/spec_tests/data/sdam/single/direct_connection_rsarbiter.yml +0 -38
  1063. data/spec/spec_tests/data/sdam/single/direct_connection_rsprimary.yml +0 -37
  1064. data/spec/spec_tests/data/sdam/single/direct_connection_rssecondary.yml +0 -38
  1065. data/spec/spec_tests/data/sdam/single/direct_connection_standalone.yml +0 -35
  1066. data/spec/spec_tests/data/sdam/single/direct_connection_unavailable_seed.yml +0 -28
  1067. data/spec/spec_tests/data/sdam/single/direct_connection_wrong_set_name.yml +0 -40
  1068. data/spec/spec_tests/data/sdam/single/discover_standalone.yml +0 -35
  1069. data/spec/spec_tests/data/sdam/single/discover_unavailable_seed.yml +0 -28
  1070. data/spec/spec_tests/data/sdam/single/ls_timeout_standalone.yml +0 -36
  1071. data/spec/spec_tests/data/sdam/single/not_ok_response.yml +0 -44
  1072. data/spec/spec_tests/data/sdam/single/ruby_primary_different_address.yml +0 -24
  1073. data/spec/spec_tests/data/sdam/single/ruby_primary_mismatched_me.yml +0 -25
  1074. data/spec/spec_tests/data/sdam/single/standalone_removed.yml +0 -35
  1075. data/spec/spec_tests/data/sdam/single/standalone_using_legacy_hello.yml +0 -34
  1076. data/spec/spec_tests/data/sdam/single/too_new.yml +0 -27
  1077. data/spec/spec_tests/data/sdam/single/too_old.yml +0 -25
  1078. data/spec/spec_tests/data/sdam/single/too_old_then_upgraded.yml +0 -48
  1079. data/spec/spec_tests/data/sdam_monitoring/discovered_standalone.yml +0 -70
  1080. data/spec/spec_tests/data/sdam_monitoring/load_balancer.yml +0 -65
  1081. data/spec/spec_tests/data/sdam_monitoring/replica_set_other_chain.yml +0 -222
  1082. data/spec/spec_tests/data/sdam_monitoring/replica_set_other_change.yml +0 -225
  1083. data/spec/spec_tests/data/sdam_monitoring/replica_set_primary_address_change.yml +0 -251
  1084. data/spec/spec_tests/data/sdam_monitoring/replica_set_with_me_mismatch.yml +0 -111
  1085. data/spec/spec_tests/data/sdam_monitoring/replica_set_with_no_primary.yml +0 -112
  1086. data/spec/spec_tests/data/sdam_monitoring/replica_set_with_primary.yml +0 -111
  1087. data/spec/spec_tests/data/sdam_monitoring/replica_set_with_primary_and_secondary.yml +0 -198
  1088. data/spec/spec_tests/data/sdam_monitoring/replica_set_with_primary_removal.yml +0 -175
  1089. data/spec/spec_tests/data/sdam_monitoring/replica_set_with_removal.yml +0 -111
  1090. data/spec/spec_tests/data/sdam_monitoring/replica_set_with_second_seed_removal.yml +0 -106
  1091. data/spec/spec_tests/data/sdam_monitoring/required_replica_set.yml +0 -108
  1092. data/spec/spec_tests/data/sdam_monitoring/standalone.yml +0 -70
  1093. data/spec/spec_tests/data/sdam_monitoring/standalone_repeated.yml +0 -86
  1094. data/spec/spec_tests/data/sdam_monitoring/standalone_suppress_equal_description_changes.yml +0 -73
  1095. data/spec/spec_tests/data/sdam_monitoring/standalone_to_rs_with_me_mismatch.yml +0 -90
  1096. data/spec/spec_tests/data/sdam_unified/auth-error.yml +0 -130
  1097. data/spec/spec_tests/data/sdam_unified/auth-misc-command-error.yml +0 -132
  1098. data/spec/spec_tests/data/sdam_unified/auth-network-error.yml +0 -132
  1099. data/spec/spec_tests/data/sdam_unified/auth-network-timeout-error.yml +0 -138
  1100. data/spec/spec_tests/data/sdam_unified/auth-shutdown-error.yml +0 -133
  1101. data/spec/spec_tests/data/sdam_unified/cancel-server-check.yml +0 -143
  1102. data/spec/spec_tests/data/sdam_unified/connectTimeoutMS.yml +0 -130
  1103. data/spec/spec_tests/data/sdam_unified/find-network-error.yml +0 -135
  1104. data/spec/spec_tests/data/sdam_unified/find-network-timeout-error.yml +0 -119
  1105. data/spec/spec_tests/data/sdam_unified/find-shutdown-error.yml +0 -163
  1106. data/spec/spec_tests/data/sdam_unified/hello-command-error.yml +0 -233
  1107. data/spec/spec_tests/data/sdam_unified/hello-network-error.yml +0 -228
  1108. data/spec/spec_tests/data/sdam_unified/hello-timeout.yml +0 -318
  1109. data/spec/spec_tests/data/sdam_unified/insert-network-error.yml +0 -137
  1110. data/spec/spec_tests/data/sdam_unified/insert-shutdown-error.yml +0 -162
  1111. data/spec/spec_tests/data/sdam_unified/interruptInUse-pool-clear.yml +0 -340
  1112. data/spec/spec_tests/data/sdam_unified/minPoolSize-error.yml +0 -125
  1113. data/spec/spec_tests/data/sdam_unified/pool-cleared-error.yml +0 -239
  1114. data/spec/spec_tests/data/sdam_unified/rediscover-quickly-after-step-down.yml +0 -144
  1115. data/spec/spec_tests/data/seed_list_discovery/load-balanced/loadBalanced-directConnection.yml +0 -14
  1116. data/spec/spec_tests/data/seed_list_discovery/load-balanced/loadBalanced-no-results.yml +0 -5
  1117. data/spec/spec_tests/data/seed_list_discovery/load-balanced/loadBalanced-replicaSet-errors.yml +0 -6
  1118. data/spec/spec_tests/data/seed_list_discovery/load-balanced/loadBalanced-true-multiple-hosts.yml +0 -5
  1119. data/spec/spec_tests/data/seed_list_discovery/load-balanced/loadBalanced-true-txt.yml +0 -11
  1120. data/spec/spec_tests/data/seed_list_discovery/load-balanced/srvMaxHosts-conflicts_with_loadBalanced-true-txt.yml +0 -5
  1121. data/spec/spec_tests/data/seed_list_discovery/load-balanced/srvMaxHosts-conflicts_with_loadBalanced-true.yml +0 -5
  1122. data/spec/spec_tests/data/seed_list_discovery/load-balanced/srvMaxHosts-zero-txt.yml +0 -11
  1123. data/spec/spec_tests/data/seed_list_discovery/load-balanced/srvMaxHosts-zero.yml +0 -11
  1124. data/spec/spec_tests/data/seed_list_discovery/replica-set/direct-connection-false.yml +0 -10
  1125. data/spec/spec_tests/data/seed_list_discovery/replica-set/direct-connection-true.yml +0 -5
  1126. data/spec/spec_tests/data/seed_list_discovery/replica-set/encoded-userinfo-and-db.yml +0 -15
  1127. data/spec/spec_tests/data/seed_list_discovery/replica-set/loadBalanced-false-txt.yml +0 -10
  1128. data/spec/spec_tests/data/seed_list_discovery/replica-set/longer-parent-in-return.yml +0 -11
  1129. data/spec/spec_tests/data/seed_list_discovery/replica-set/misformatted-option.yml +0 -5
  1130. data/spec/spec_tests/data/seed_list_discovery/replica-set/no-results.yml +0 -5
  1131. data/spec/spec_tests/data/seed_list_discovery/replica-set/not-enough-parts.yml +0 -5
  1132. data/spec/spec_tests/data/seed_list_discovery/replica-set/one-result-default-port.yml +0 -10
  1133. data/spec/spec_tests/data/seed_list_discovery/replica-set/one-txt-record-multiple-strings.yml +0 -10
  1134. data/spec/spec_tests/data/seed_list_discovery/replica-set/one-txt-record.yml +0 -11
  1135. data/spec/spec_tests/data/seed_list_discovery/replica-set/parent-part-mismatch1.yml +0 -5
  1136. data/spec/spec_tests/data/seed_list_discovery/replica-set/parent-part-mismatch2.yml +0 -5
  1137. data/spec/spec_tests/data/seed_list_discovery/replica-set/parent-part-mismatch3.yml +0 -5
  1138. data/spec/spec_tests/data/seed_list_discovery/replica-set/parent-part-mismatch4.yml +0 -5
  1139. data/spec/spec_tests/data/seed_list_discovery/replica-set/parent-part-mismatch5.yml +0 -5
  1140. data/spec/spec_tests/data/seed_list_discovery/replica-set/returned-parent-too-short.yml +0 -5
  1141. data/spec/spec_tests/data/seed_list_discovery/replica-set/returned-parent-wrong.yml +0 -5
  1142. data/spec/spec_tests/data/seed_list_discovery/replica-set/srv-service-name.yml +0 -11
  1143. data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-conflicts_with_replicaSet-txt.yml +0 -5
  1144. data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-conflicts_with_replicaSet.yml +0 -5
  1145. data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-equal_to_srv_records.yml +0 -16
  1146. data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-greater_than_srv_records.yml +0 -15
  1147. data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-less_than_srv_records.yml +0 -15
  1148. data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-zero-txt.yml +0 -15
  1149. data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-zero.yml +0 -15
  1150. data/spec/spec_tests/data/seed_list_discovery/replica-set/two-results-default-port.yml +0 -11
  1151. data/spec/spec_tests/data/seed_list_discovery/replica-set/two-results-nonstandard-port.yml +0 -11
  1152. data/spec/spec_tests/data/seed_list_discovery/replica-set/two-txt-records.yml +0 -5
  1153. data/spec/spec_tests/data/seed_list_discovery/replica-set/txt-record-not-allowed-option.yml +0 -5
  1154. data/spec/spec_tests/data/seed_list_discovery/replica-set/txt-record-with-overridden-ssl-option.yml +0 -11
  1155. data/spec/spec_tests/data/seed_list_discovery/replica-set/txt-record-with-overridden-uri-option.yml +0 -11
  1156. data/spec/spec_tests/data/seed_list_discovery/replica-set/txt-record-with-unallowed-option.yml +0 -5
  1157. data/spec/spec_tests/data/seed_list_discovery/replica-set/uri-with-admin-database.yml +0 -13
  1158. data/spec/spec_tests/data/seed_list_discovery/replica-set/uri-with-auth.yml +0 -12
  1159. data/spec/spec_tests/data/seed_list_discovery/replica-set/uri-with-port.yml +0 -5
  1160. data/spec/spec_tests/data/seed_list_discovery/replica-set/uri-with-two-hosts.yml +0 -5
  1161. data/spec/spec_tests/data/seed_list_discovery/sharded/srvMaxHosts-equal_to_srv_records.yml +0 -13
  1162. data/spec/spec_tests/data/seed_list_discovery/sharded/srvMaxHosts-greater_than_srv_records.yml +0 -12
  1163. data/spec/spec_tests/data/seed_list_discovery/sharded/srvMaxHosts-less_than_srv_records.yml +0 -10
  1164. data/spec/spec_tests/data/seed_list_discovery/sharded/srvMaxHosts-zero.yml +0 -11
  1165. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Nearest.yml +0 -25
  1166. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Nearest_multiple.yml +0 -26
  1167. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Nearest_non_matching.yml +0 -20
  1168. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/PossiblePrimary.yml +0 -15
  1169. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/PossiblePrimaryNearest.yml +0 -15
  1170. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Primary.yml +0 -18
  1171. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/PrimaryPreferred.yml +0 -25
  1172. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/PrimaryPreferred_non_matching.yml +0 -20
  1173. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Secondary.yml +0 -25
  1174. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/SecondaryPreferred.yml +0 -25
  1175. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/SecondaryPreferred_non_matching.yml +0 -20
  1176. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Secondary_multi_tags.yml +0 -31
  1177. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Secondary_multi_tags2.yml +0 -31
  1178. data/spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Secondary_non_matching.yml +0 -20
  1179. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/Nearest.yml +0 -32
  1180. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/Nearest_multiple.yml +0 -33
  1181. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/Nearest_non_matching.yml +0 -25
  1182. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/Primary.yml +0 -26
  1183. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/PrimaryPreferred.yml +0 -28
  1184. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/PrimaryPreferred_non_matching.yml +0 -28
  1185. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/Secondary.yml +0 -30
  1186. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/SecondaryPreferred.yml +0 -30
  1187. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/SecondaryPreferred_non_matching.yml +0 -28
  1188. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/SecondaryPreferred_tags.yml +0 -28
  1189. data/spec/spec_tests/data/server_selection/ReplicaSetWithPrimary/read/Secondary_non_matching.yml +0 -25
  1190. data/spec/spec_tests/data/server_selection/Sharded/read/Nearest.yml +0 -21
  1191. data/spec/spec_tests/data/server_selection/Sharded/read/Primary.yml +0 -19
  1192. data/spec/spec_tests/data/server_selection/Sharded/read/PrimaryPreferred.yml +0 -21
  1193. data/spec/spec_tests/data/server_selection/Sharded/read/Secondary.yml +0 -21
  1194. data/spec/spec_tests/data/server_selection/Sharded/read/SecondaryPreferred.yml +0 -21
  1195. data/spec/spec_tests/data/server_selection/Single/read/SecondaryPreferred.yml +0 -18
  1196. data/spec/spec_tests/data/server_selection/Unknown/read/SecondaryPreferred.yml +0 -10
  1197. data/spec/spec_tests/data/server_selection/Unknown/read/ghost.yml +0 -11
  1198. data/spec/spec_tests/data/server_selection/Unknown/write/ghost.yml +0 -11
  1199. data/spec/spec_tests/data/server_selection_rtt/first_value.yml +0 -4
  1200. data/spec/spec_tests/data/server_selection_rtt/first_value_zero.yml +0 -4
  1201. data/spec/spec_tests/data/server_selection_rtt/value_test_1.yml +0 -4
  1202. data/spec/spec_tests/data/server_selection_rtt/value_test_2.yml +0 -4
  1203. data/spec/spec_tests/data/server_selection_rtt/value_test_3.yml +0 -4
  1204. data/spec/spec_tests/data/server_selection_rtt/value_test_4.yml +0 -4
  1205. data/spec/spec_tests/data/server_selection_rtt/value_test_5.yml +0 -4
  1206. data/spec/spec_tests/data/sessions_unified/driver-sessions-dirty-session-errors.yml +0 -351
  1207. data/spec/spec_tests/data/sessions_unified/driver-sessions-server-support.yml +0 -123
  1208. data/spec/spec_tests/data/sessions_unified/implicit-sessions-default-causal-consistency.yml +0 -119
  1209. data/spec/spec_tests/data/sessions_unified/snapshot-sessions-not-supported-client-error.yml +0 -75
  1210. data/spec/spec_tests/data/sessions_unified/snapshot-sessions-not-supported-server-error.yml +0 -102
  1211. data/spec/spec_tests/data/sessions_unified/snapshot-sessions-unsupported-ops.yml +0 -258
  1212. data/spec/spec_tests/data/sessions_unified/snapshot-sessions.yml +0 -482
  1213. data/spec/spec_tests/data/transactions/abort.yml +0 -413
  1214. data/spec/spec_tests/data/transactions/bulk.yml +0 -267
  1215. data/spec/spec_tests/data/transactions/causal-consistency.yml +0 -175
  1216. data/spec/spec_tests/data/transactions/commit.yml +0 -603
  1217. data/spec/spec_tests/data/transactions/count.yml +0 -67
  1218. data/spec/spec_tests/data/transactions/create-collection.yml +0 -131
  1219. data/spec/spec_tests/data/transactions/create-index.yml +0 -152
  1220. data/spec/spec_tests/data/transactions/delete.yml +0 -192
  1221. data/spec/spec_tests/data/transactions/error-labels.yml +0 -1030
  1222. data/spec/spec_tests/data/transactions/errors-client.yml +0 -55
  1223. data/spec/spec_tests/data/transactions/errors.yml +0 -133
  1224. data/spec/spec_tests/data/transactions/findOneAndDelete.yml +0 -134
  1225. data/spec/spec_tests/data/transactions/findOneAndReplace.yml +0 -148
  1226. data/spec/spec_tests/data/transactions/findOneAndUpdate.yml +0 -236
  1227. data/spec/spec_tests/data/transactions/insert.yml +0 -390
  1228. data/spec/spec_tests/data/transactions/isolation.yml +0 -133
  1229. data/spec/spec_tests/data/transactions/mongos-pin-auto.yml +0 -1674
  1230. data/spec/spec_tests/data/transactions/mongos-recovery-token.yml +0 -350
  1231. data/spec/spec_tests/data/transactions/pin-mongos.yml +0 -559
  1232. data/spec/spec_tests/data/transactions/read-concern.yml +0 -623
  1233. data/spec/spec_tests/data/transactions/read-pref.yml +0 -348
  1234. data/spec/spec_tests/data/transactions/reads.yml +0 -261
  1235. data/spec/spec_tests/data/transactions/retryable-abort-errorLabels.yml +0 -124
  1236. data/spec/spec_tests/data/transactions/retryable-abort.yml +0 -1315
  1237. data/spec/spec_tests/data/transactions/retryable-commit-errorLabels.yml +0 -132
  1238. data/spec/spec_tests/data/transactions/retryable-commit.yml +0 -1460
  1239. data/spec/spec_tests/data/transactions/retryable-writes.yml +0 -216
  1240. data/spec/spec_tests/data/transactions/run-command.yml +0 -197
  1241. data/spec/spec_tests/data/transactions/transaction-options-repl.yml +0 -117
  1242. data/spec/spec_tests/data/transactions/transaction-options.yml +0 -781
  1243. data/spec/spec_tests/data/transactions/update.yml +0 -246
  1244. data/spec/spec_tests/data/transactions/write-concern.yml +0 -554
  1245. data/spec/spec_tests/data/transactions_api/callback-aborts.yml +0 -170
  1246. data/spec/spec_tests/data/transactions_api/callback-commits.yml +0 -204
  1247. data/spec/spec_tests/data/transactions_api/callback-retry.yml +0 -215
  1248. data/spec/spec_tests/data/transactions_api/commit-retry.yml +0 -324
  1249. data/spec/spec_tests/data/transactions_api/commit-transienttransactionerror-4.2.yml +0 -139
  1250. data/spec/spec_tests/data/transactions_api/commit-transienttransactionerror.yml +0 -175
  1251. data/spec/spec_tests/data/transactions_api/commit-writeconcernerror.yml +0 -216
  1252. data/spec/spec_tests/data/transactions_api/commit.yml +0 -193
  1253. data/spec/spec_tests/data/transactions_api/transaction-options.yml +0 -274
  1254. data/spec/spec_tests/data/transactions_unified/do-not-retry-read-in-transaction.yml +0 -64
  1255. data/spec/spec_tests/data/transactions_unified/mongos-unpin.yml +0 -172
  1256. data/spec/spec_tests/data/transactions_unified/retryable-abort-handshake.yml +0 -118
  1257. data/spec/spec_tests/data/transactions_unified/retryable-commit-handshake.yml +0 -118
  1258. data/spec/spec_tests/data/unified/valid-fail/entity-findCursor-malformed.yml +0 -31
  1259. data/spec/spec_tests/data/unified/valid-fail/entity-findCursor.yml +0 -31
  1260. data/spec/spec_tests/data/unified/valid-fail/ignoreResultAndError-malformed.yml +0 -34
  1261. data/spec/spec_tests/data/unified/valid-fail/ignoreResultAndError.yml +0 -35
  1262. data/spec/spec_tests/data/unified/valid-fail/operation-failure.yml +0 -31
  1263. data/spec/spec_tests/data/unified/valid-fail/operation-unsupported.yml +0 -13
  1264. data/spec/spec_tests/data/unified/valid-pass/assertNumberConnectionsCheckedOut.yml +0 -17
  1265. data/spec/spec_tests/data/unified/valid-pass/collectionData-createOptions.yml +0 -37
  1266. data/spec/spec_tests/data/unified/valid-pass/entity-client-cmap-events.yml +0 -40
  1267. data/spec/spec_tests/data/unified/valid-pass/entity-client-storeEventsAsEntities.yml +0 -37
  1268. data/spec/spec_tests/data/unified/valid-pass/expectedError-errorResponse.yml +0 -39
  1269. data/spec/spec_tests/data/unified/valid-pass/expectedEventsForClient-eventType.yml +0 -66
  1270. data/spec/spec_tests/data/unified/valid-pass/expectedEventsForClient-ignoreExtraEvents.yml +0 -78
  1271. data/spec/spec_tests/data/unified/valid-pass/ignoreResultAndError.yml +0 -34
  1272. data/spec/spec_tests/data/unified/valid-pass/observeSensitiveCommands.yml +0 -255
  1273. data/spec/spec_tests/data/unified/valid-pass/poc-change-streams.yml +0 -241
  1274. data/spec/spec_tests/data/unified/valid-pass/poc-command-monitoring.yml +0 -102
  1275. data/spec/spec_tests/data/unified/valid-pass/poc-crud.yml +0 -190
  1276. data/spec/spec_tests/data/unified/valid-pass/poc-gridfs.yml +0 -155
  1277. data/spec/spec_tests/data/unified/valid-pass/poc-retryable-reads.yml +0 -193
  1278. data/spec/spec_tests/data/unified/valid-pass/poc-retryable-writes.yml +0 -210
  1279. data/spec/spec_tests/data/unified/valid-pass/poc-sessions.yml +0 -214
  1280. data/spec/spec_tests/data/unified/valid-pass/poc-transactions-convenient-api.yml +0 -235
  1281. data/spec/spec_tests/data/unified/valid-pass/poc-transactions-mongos-pin-auto.yml +0 -169
  1282. data/spec/spec_tests/data/unified/valid-pass/poc-transactions.yml +0 -171
  1283. data/spec/spec_tests/data/uri_options/auth-options.yml +0 -49
  1284. data/spec/spec_tests/data/uri_options/compression-options.yml +0 -51
  1285. data/spec/spec_tests/data/uri_options/concern-options.yml +0 -55
  1286. data/spec/spec_tests/data/uri_options/connection-options.yml +0 -209
  1287. data/spec/spec_tests/data/uri_options/connection-pool-options.yml +0 -26
  1288. data/spec/spec_tests/data/uri_options/read-preference-options.yml +0 -66
  1289. data/spec/spec_tests/data/uri_options/ruby-auth-options.yml +0 -12
  1290. data/spec/spec_tests/data/uri_options/ruby-connection-options.yml +0 -58
  1291. data/spec/spec_tests/data/uri_options/srv-options.yml +0 -96
  1292. data/spec/spec_tests/data/uri_options/tls-options.yml +0 -364
  1293. data/spec/spec_tests/data/versioned_api/crud-api-version-1-strict.yml +0 -419
  1294. data/spec/spec_tests/data/versioned_api/crud-api-version-1.yml +0 -413
  1295. data/spec/spec_tests/data/versioned_api/runcommand-helper-no-api-version-declared.yml +0 -75
  1296. data/spec/spec_tests/data/versioned_api/test-commands-deprecation-errors.yml +0 -47
  1297. data/spec/spec_tests/data/versioned_api/test-commands-strict-mode.yml +0 -46
  1298. data/spec/spec_tests/data/versioned_api/transaction-handling.yml +0 -128
  1299. data/spec/spec_tests/gridfs_spec.rb +0 -55
  1300. data/spec/spec_tests/gridfs_unified_spec.rb +0 -13
  1301. data/spec/spec_tests/index_management_unified_spec.rb +0 -13
  1302. data/spec/spec_tests/load_balancers_spec.rb +0 -15
  1303. data/spec/spec_tests/max_staleness_spec.rb +0 -12
  1304. data/spec/spec_tests/read_write_concern_connection_string_spec.rb +0 -13
  1305. data/spec/spec_tests/read_write_concern_document_spec.rb +0 -77
  1306. data/spec/spec_tests/read_write_concern_operaton_spec.rb +0 -13
  1307. data/spec/spec_tests/retryable_reads_spec.rb +0 -55
  1308. data/spec/spec_tests/retryable_reads_unified_spec.rb +0 -22
  1309. data/spec/spec_tests/retryable_writes_spec.rb +0 -25
  1310. data/spec/spec_tests/retryable_writes_unified_spec.rb +0 -21
  1311. data/spec/spec_tests/run_command_unified_spec.rb +0 -13
  1312. data/spec/spec_tests/sdam_monitoring_spec.rb +0 -101
  1313. data/spec/spec_tests/sdam_spec.rb +0 -246
  1314. data/spec/spec_tests/sdam_unified_spec.rb +0 -15
  1315. data/spec/spec_tests/seed_list_discovery_spec.rb +0 -127
  1316. data/spec/spec_tests/server_selection_rtt_spec.rb +0 -33
  1317. data/spec/spec_tests/server_selection_spec.rb +0 -12
  1318. data/spec/spec_tests/sessions_unified_spec.rb +0 -13
  1319. data/spec/spec_tests/transactions_api_spec.rb +0 -13
  1320. data/spec/spec_tests/transactions_spec.rb +0 -13
  1321. data/spec/spec_tests/transactions_unified_spec.rb +0 -14
  1322. data/spec/spec_tests/unified_spec.rb +0 -18
  1323. data/spec/spec_tests/uri_options_spec.rb +0 -93
  1324. data/spec/spec_tests/versioned_api_spec.rb +0 -13
  1325. data/spec/stress/cleanup_spec.rb +0 -61
  1326. data/spec/stress/connection_pool_stress_spec.rb +0 -143
  1327. data/spec/stress/connection_pool_timing_spec.rb +0 -160
  1328. data/spec/stress/fork_reconnect_stress_spec.rb +0 -108
  1329. data/spec/stress/push_monitor_close_spec.rb +0 -44
  1330. data/spec/support/authorization.rb +0 -161
  1331. data/spec/support/aws_utils/base.rb +0 -137
  1332. data/spec/support/aws_utils/inspector.rb +0 -227
  1333. data/spec/support/aws_utils/orchestrator.rb +0 -385
  1334. data/spec/support/aws_utils/provisioner.rb +0 -363
  1335. data/spec/support/aws_utils.rb +0 -66
  1336. data/spec/support/background_thread_registry.rb +0 -60
  1337. data/spec/support/certificates/README.md +0 -106
  1338. data/spec/support/certificates/atlas-ocsp-ca.crt +0 -113
  1339. data/spec/support/certificates/atlas-ocsp.crt +0 -147
  1340. data/spec/support/certificates/ca.crt +0 -76
  1341. data/spec/support/certificates/client-encrypted.key +0 -30
  1342. data/spec/support/certificates/client-int.crt +0 -78
  1343. data/spec/support/certificates/client-second-level-bundle.pem +0 -179
  1344. data/spec/support/certificates/client-second-level.crt +0 -74
  1345. data/spec/support/certificates/client-second-level.key +0 -27
  1346. data/spec/support/certificates/client-second-level.pem +0 -101
  1347. data/spec/support/certificates/client-x509.crt +0 -78
  1348. data/spec/support/certificates/client-x509.key +0 -27
  1349. data/spec/support/certificates/client-x509.pem +0 -105
  1350. data/spec/support/certificates/client.crt +0 -74
  1351. data/spec/support/certificates/client.key +0 -27
  1352. data/spec/support/certificates/client.pem +0 -101
  1353. data/spec/support/certificates/crl.pem +0 -12
  1354. data/spec/support/certificates/crl_client_revoked.pem +0 -13
  1355. data/spec/support/certificates/multi-ca.crt +0 -152
  1356. data/spec/support/certificates/python-ca.crt +0 -76
  1357. data/spec/support/certificates/retrieve-atlas-cert +0 -40
  1358. data/spec/support/certificates/server-int.crt +0 -78
  1359. data/spec/support/certificates/server-second-level-bundle.pem +0 -179
  1360. data/spec/support/certificates/server-second-level.crt +0 -74
  1361. data/spec/support/certificates/server-second-level.key +0 -27
  1362. data/spec/support/certificates/server-second-level.pem +0 -101
  1363. data/spec/support/certificates/server.pem +0 -101
  1364. data/spec/support/client_registry.rb +0 -258
  1365. data/spec/support/client_registry_macros.rb +0 -26
  1366. data/spec/support/cluster_tools.rb +0 -384
  1367. data/spec/support/common_shortcuts.rb +0 -421
  1368. data/spec/support/constraints.rb +0 -39
  1369. data/spec/support/crypt/corpus/corpus-encrypted.json +0 -9515
  1370. data/spec/support/crypt/corpus/corpus-key-aws.json +0 -33
  1371. data/spec/support/crypt/corpus/corpus-key-azure.json +0 -33
  1372. data/spec/support/crypt/corpus/corpus-key-gcp.json +0 -35
  1373. data/spec/support/crypt/corpus/corpus-key-kmip.json +0 -32
  1374. data/spec/support/crypt/corpus/corpus-key-local.json +0 -31
  1375. data/spec/support/crypt/corpus/corpus-schema.json +0 -6335
  1376. data/spec/support/crypt/corpus/corpus.json +0 -8619
  1377. data/spec/support/crypt/data_keys/key_document_aws.json +0 -34
  1378. data/spec/support/crypt/data_keys/key_document_azure.json +0 -33
  1379. data/spec/support/crypt/data_keys/key_document_gcp.json +0 -37
  1380. data/spec/support/crypt/data_keys/key_document_kmip.json +0 -32
  1381. data/spec/support/crypt/data_keys/key_document_local.json +0 -31
  1382. data/spec/support/crypt/encrypted_fields/encryptedFields.json +0 -32
  1383. data/spec/support/crypt/encrypted_fields/range-encryptedFields-Date.json +0 -30
  1384. data/spec/support/crypt/encrypted_fields/range-encryptedFields-DecimalNoPrecision.json +0 -21
  1385. data/spec/support/crypt/encrypted_fields/range-encryptedFields-DecimalPrecision.json +0 -29
  1386. data/spec/support/crypt/encrypted_fields/range-encryptedFields-DoubleNoPrecision.json +0 -21
  1387. data/spec/support/crypt/encrypted_fields/range-encryptedFields-DoublePrecision.json +0 -30
  1388. data/spec/support/crypt/encrypted_fields/range-encryptedFields-Int.json +0 -27
  1389. data/spec/support/crypt/encrypted_fields/range-encryptedFields-Long.json +0 -27
  1390. data/spec/support/crypt/external/external-key.json +0 -31
  1391. data/spec/support/crypt/external/external-schema.json +0 -19
  1392. data/spec/support/crypt/keys/key1-document.json +0 -30
  1393. data/spec/support/crypt/limits/limits-doc.json +0 -102
  1394. data/spec/support/crypt/limits/limits-key.json +0 -31
  1395. data/spec/support/crypt/limits/limits-schema.json +0 -1405
  1396. data/spec/support/crypt/schema_maps/schema_map_aws.json +0 -17
  1397. data/spec/support/crypt/schema_maps/schema_map_aws_key_alt_names.json +0 -12
  1398. data/spec/support/crypt/schema_maps/schema_map_azure.json +0 -17
  1399. data/spec/support/crypt/schema_maps/schema_map_azure_key_alt_names.json +0 -12
  1400. data/spec/support/crypt/schema_maps/schema_map_gcp.json +0 -17
  1401. data/spec/support/crypt/schema_maps/schema_map_gcp_key_alt_names.json +0 -12
  1402. data/spec/support/crypt/schema_maps/schema_map_kmip.json +0 -17
  1403. data/spec/support/crypt/schema_maps/schema_map_kmip_key_alt_names.json +0 -12
  1404. data/spec/support/crypt/schema_maps/schema_map_local.json +0 -18
  1405. data/spec/support/crypt/schema_maps/schema_map_local_key_alt_names.json +0 -12
  1406. data/spec/support/crypt.rb +0 -412
  1407. data/spec/support/dns.rb +0 -16
  1408. data/spec/support/json_ext_formatter.rb +0 -16
  1409. data/spec/support/keyword_struct.rb +0 -29
  1410. data/spec/support/local_resource_registry.rb +0 -37
  1411. data/spec/support/macros.rb +0 -29
  1412. data/spec/support/matchers.rb +0 -88
  1413. data/spec/support/mongos_macros.rb +0 -24
  1414. data/spec/support/monitoring_ext.rb +0 -19
  1415. data/spec/support/ocsp +0 -1
  1416. data/spec/support/primary_socket.rb +0 -24
  1417. data/spec/support/recording_logger.rb +0 -27
  1418. data/spec/support/sdam_formatter_integration.rb +0 -119
  1419. data/spec/support/shared/app_metadata.rb +0 -179
  1420. data/spec/support/shared/auth_context.rb +0 -17
  1421. data/spec/support/shared/protocol.rb +0 -36
  1422. data/spec/support/shared/scram_conversation.rb +0 -104
  1423. data/spec/support/shared/server_selector.rb +0 -233
  1424. data/spec/support/shared/session.rb +0 -916
  1425. data/spec/support/spec_config.rb +0 -767
  1426. data/spec/support/spec_setup.rb +0 -83
  1427. data/spec/support/using_hash.rb +0 -40
  1428. data/spec/support/utils.rb +0 -680
@@ -1,1609 +0,0 @@
1
- # frozen_string_literal: true
2
- # rubocop:todo all
3
-
4
- require 'spec_helper'
5
-
6
- describe Mongo::Server::ConnectionPool do
7
-
8
- let(:options) { {} }
9
-
10
- let(:server_options) do
11
- Mongo::Utils.shallow_symbolize_keys(Mongo::Client.canonicalize_ruby_options(
12
- SpecConfig.instance.all_test_options,
13
- )).tap do |opts|
14
- opts.delete(:min_pool_size)
15
- opts.delete(:max_pool_size)
16
- opts.delete(:wait_queue_timeout)
17
- end.update(options)
18
- end
19
-
20
- let(:address) do
21
- Mongo::Address.new(SpecConfig.instance.addresses.first)
22
- end
23
-
24
- let(:monitoring) do
25
- Mongo::Monitoring.new(monitoring: false)
26
- end
27
-
28
- let(:listeners) do
29
- Mongo::Event::Listeners.new
30
- end
31
-
32
- declare_topology_double
33
-
34
- let(:app_metadata) do
35
- Mongo::Server::AppMetadata.new(server_options)
36
- end
37
-
38
- let(:cluster) do
39
- double('cluster').tap do |cl|
40
- allow(cl).to receive(:topology).and_return(topology)
41
- allow(cl).to receive(:app_metadata).and_return(app_metadata)
42
- allow(cl).to receive(:options).and_return({})
43
- allow(cl).to receive(:update_cluster_time)
44
- allow(cl).to receive(:cluster_time).and_return(nil)
45
- allow(cl).to receive(:run_sdam_flow)
46
- end
47
- end
48
-
49
- let(:server) do
50
- register_server(
51
- Mongo::Server.new(address, cluster, monitoring, listeners,
52
- {monitoring_io: false}.update(server_options)
53
- ).tap do |server|
54
- allow(server).to receive(:description).and_return(ClusterConfig.instance.primary_description)
55
- end
56
- )
57
- end
58
-
59
- let(:pool) do
60
- register_pool(described_class.new(server, server_options)).tap do |pool|
61
- pool.ready
62
- end
63
- end
64
-
65
- let(:populate_semaphore) do
66
- pool.instance_variable_get(:@populate_semaphore)
67
- end
68
-
69
- let(:populator) do
70
- pool.instance_variable_get(:@populator)
71
- end
72
-
73
- describe '#initialize' do
74
-
75
- context 'when a min size is provided' do
76
- let (:options) do
77
- { min_pool_size: 2 }
78
- end
79
-
80
- it 'creates the pool with min size connections' do
81
- # Allow background thread to populate pool
82
- pool
83
- sleep 1
84
-
85
- expect(pool.size).to eq(2)
86
- expect(pool.available_count).to eq(2)
87
- end
88
-
89
- it 'does not use the same objects in the pool' do
90
- expect(pool.check_out).to_not equal(pool.check_out)
91
- end
92
- end
93
-
94
- context 'when min size exceeds default max size' do
95
- let (:options) do
96
- { min_pool_size: 50 }
97
- end
98
-
99
- it 'sets max size to equal provided min size' do
100
- expect(pool.max_size).to eq(50)
101
- end
102
- end
103
-
104
- context 'when min size is provided and max size is zero (unlimited)' do
105
- let (:options) do
106
- { min_size: 10, max_size: 0 }
107
- end
108
-
109
- it 'sets max size to zero (unlimited)' do
110
- expect(pool.max_size).to eq(0)
111
- end
112
- end
113
-
114
- context 'when no min size is provided' do
115
-
116
- it 'creates the pool with no connections' do
117
- expect(pool.size).to eq(0)
118
- expect(pool.available_count).to eq(0)
119
- end
120
-
121
- it "starts the populator" do
122
- expect(populator).to be_running
123
- end
124
- end
125
-
126
- context 'sizes given as min_size and max_size' do
127
- let (:options) do
128
- { min_size: 3, max_size: 7 }
129
- end
130
-
131
- it 'sets sizes correctly' do
132
- expect(pool.min_size).to eq(3)
133
- expect(pool.max_size).to eq(7)
134
- end
135
- end
136
-
137
- context 'sizes given as min_pool_size and max_pool_size' do
138
- let (:options) do
139
- { min_pool_size: 3, max_pool_size: 7 }
140
- end
141
-
142
- it 'sets sizes correctly' do
143
- expect(pool.min_size).to eq(3)
144
- expect(pool.max_size).to eq(7)
145
- end
146
- end
147
-
148
- context 'timeout given as wait_timeout' do
149
- let (:options) do
150
- { wait_timeout: 4 }
151
- end
152
-
153
- it 'sets wait timeout correctly' do
154
- expect(pool.wait_timeout).to eq(4)
155
- end
156
- end
157
-
158
- context 'timeout given as wait_queue_timeout' do
159
- let (:options) do
160
- { wait_queue_timeout: 4 }
161
- end
162
-
163
- it 'sets wait timeout correctly' do
164
- expect(pool.wait_timeout).to eq(4)
165
- end
166
- end
167
- end
168
-
169
- describe '#max_size' do
170
- context 'when a max pool size option is provided' do
171
- let (:options) do
172
- { max_pool_size: 3 }
173
- end
174
-
175
- it 'returns the max size' do
176
- expect(pool.max_size).to eq(3)
177
- end
178
- end
179
-
180
- context 'when no pool size option is provided' do
181
- it 'returns the default size' do
182
- expect(pool.max_size).to eq(20)
183
- end
184
- end
185
-
186
- context 'when pool is closed' do
187
- before do
188
- pool.close
189
- end
190
-
191
- it 'returns max size' do
192
- expect(pool.max_size).to eq(20)
193
- end
194
- end
195
- end
196
-
197
- describe '#wait_timeout' do
198
- context 'when the wait timeout option is provided' do
199
- let (:options) do
200
- { wait_queue_timeout: 3 }
201
- end
202
-
203
- it 'returns the wait timeout' do
204
- expect(pool.wait_timeout).to eq(3)
205
- end
206
- end
207
-
208
- context 'when the wait timeout option is not provided' do
209
- it 'returns the default wait timeout' do
210
- expect(pool.wait_timeout).to eq(10)
211
- end
212
- end
213
- end
214
-
215
- describe '#size' do
216
- context 'pool without connections' do
217
- it 'is 0' do
218
- expect(pool.size).to eq(0)
219
- end
220
- end
221
-
222
- context 'pool with a checked out connection' do
223
- before do
224
- pool.check_out
225
- end
226
-
227
- it 'is 1' do
228
- expect(pool.size).to eq(1)
229
- end
230
- end
231
-
232
- context 'pool with an available connection' do
233
- before do
234
- connection = pool.check_out
235
- pool.check_in(connection)
236
- end
237
-
238
- it 'is 1' do
239
- expect(pool.size).to eq(1)
240
- end
241
- end
242
-
243
- context 'when pool is closed' do
244
- before do
245
- pool.close
246
- end
247
-
248
- it 'raises PoolClosedError' do
249
- expect do
250
- pool.size
251
- end.to raise_error(Mongo::Error::PoolClosedError)
252
- end
253
- end
254
- end
255
-
256
- describe '#available_count' do
257
- context 'pool without connections' do
258
- it 'is 0' do
259
- expect(pool.available_count).to eq(0)
260
- end
261
- end
262
-
263
- context 'pool with a checked out connection' do
264
- before do
265
- pool.check_out
266
- end
267
-
268
- it 'is 0' do
269
- expect(pool.available_count).to eq(0)
270
- end
271
- end
272
-
273
- context 'pool with an available connection' do
274
- before do
275
- connection = pool.check_out
276
- pool.check_in(connection)
277
- end
278
-
279
- it 'is 1' do
280
- expect(pool.available_count).to eq(1)
281
- end
282
- end
283
-
284
- context 'when pool is closed' do
285
- before do
286
- pool.close
287
- end
288
-
289
- it 'raises PoolClosedError' do
290
- expect do
291
- pool.available_count
292
- end.to raise_error(Mongo::Error::PoolClosedError)
293
- end
294
- end
295
- end
296
-
297
- describe '#closed?' do
298
- context 'pool is not closed' do
299
- it 'is false' do
300
- expect(pool.closed?).to be false
301
- end
302
- end
303
-
304
- context 'pool is closed' do
305
- before do
306
- pool.close
307
- end
308
-
309
- it 'is true' do
310
- expect(pool.closed?).to be true
311
- end
312
-
313
- it "stops the populator" do
314
- expect(populator).to_not be_running
315
- end
316
- end
317
- end
318
-
319
- describe '#check_in' do
320
- let!(:pool) do
321
- server.pool
322
- end
323
-
324
- after do
325
- server.close
326
- end
327
-
328
- let(:options) do
329
- { max_pool_size: 2 }
330
- end
331
-
332
- let(:connection) do
333
- pool.check_out
334
- end
335
-
336
- context 'when a connection is checked out on the thread' do
337
-
338
- before do
339
- pool.check_in(connection)
340
- end
341
-
342
- it 'returns the connection to the pool' do
343
- expect(pool.size).to eq(1)
344
- end
345
- end
346
-
347
- shared_examples 'does not add connection to pool' do
348
- it 'disconnects connection and does not add connection to pool' do
349
- # connection was checked out
350
- expect(pool.available_count).to eq(0)
351
- expect(pool.size).to eq(1)
352
- expect(connection).to receive(:disconnect!)
353
- pool.check_in(connection)
354
- # connection is not added to the pool, and no replacement
355
- # connection has been created at this point
356
- expect(pool.available_count).to eq(0)
357
- expect(pool.size).to eq(0)
358
- expect(pool.check_out).not_to eq(connection)
359
- end
360
- end
361
-
362
- shared_examples 'adds connection to the pool' do
363
- it 'adds the connection to the pool' do
364
- # connection is checked out
365
- expect(pool.available_count).to eq(0)
366
- expect(pool.size).to eq(1)
367
- pool.check_in(connection)
368
- # now connection is in the queue
369
- expect(pool.available_count).to eq(1)
370
- expect(pool.size).to eq(1)
371
- expect(pool.check_out).to eq(connection)
372
- end
373
- end
374
-
375
- context 'connection of the same generation as pool' do
376
- # These tests are also applicable to load balancers, but
377
- # require different setup and assertions because load balancers
378
- # do not have a single global generation.
379
- require_topology :single, :replica_set, :sharded
380
-
381
- before do
382
- expect(pool.generation).to eq(connection.generation)
383
- end
384
-
385
- it_behaves_like 'adds connection to the pool'
386
- end
387
-
388
- context 'connection of earlier generation than pool' do
389
- # These tests are also applicable to load balancers, but
390
- # require different setup and assertions because load balancers
391
- # do not have a single global generation.
392
- require_topology :single, :replica_set, :sharded
393
-
394
- context 'when connection is not pinned' do
395
- let(:connection) do
396
- pool.check_out.tap do |connection|
397
- expect(connection).to receive(:generation).at_least(:once).and_return(0)
398
- expect(connection).not_to receive(:record_checkin!)
399
- end
400
- end
401
-
402
- before do
403
- expect(connection.generation).to be < pool.generation
404
- end
405
-
406
- it_behaves_like 'does not add connection to pool'
407
- end
408
-
409
- context 'when connection is pinned' do
410
- let(:connection) do
411
- pool.check_out.tap do |connection|
412
- allow(connection).to receive(:pinned?).and_return(true)
413
- expect(connection).to receive(:generation).at_least(:once).and_return(0)
414
- expect(connection).to receive(:record_checkin!)
415
- end
416
- end
417
-
418
- before do
419
- expect(connection.generation).to be < pool.generation
420
- end
421
-
422
- it_behaves_like 'adds connection to the pool'
423
- end
424
- end
425
-
426
- context 'connection of later generation than pool' do
427
- # These tests are also applicable to load balancers, but
428
- # require different setup and assertions because load balancers
429
- # do not have a single global generation.
430
- require_topology :single, :replica_set, :sharded
431
-
432
- let(:connection) do
433
- pool.check_out.tap do |connection|
434
- expect(connection).to receive(:generation).at_least(:once).and_return(7)
435
- expect(connection).not_to receive(:record_checkin!)
436
- end
437
- end
438
-
439
- before do
440
- expect(connection.generation > pool.generation).to be true
441
- end
442
-
443
- it_behaves_like 'does not add connection to pool'
444
- end
445
-
446
- context 'interrupted connection' do
447
- let!(:connection) do
448
- pool.check_out.tap do |connection|
449
- expect(connection).to receive(:interrupted?).at_least(:once).and_return(true)
450
- expect(connection).not_to receive(:record_checkin!)
451
- end
452
- end
453
-
454
- it_behaves_like 'does not add connection to pool'
455
- end
456
-
457
- context 'closed and interrupted connection' do
458
- let!(:connection) do
459
- pool.check_out.tap do |connection|
460
- expect(connection).to receive(:interrupted?).exactly(:once).and_return(true)
461
- expect(connection).to receive(:closed?).exactly(:once).and_return(true)
462
- expect(connection).not_to receive(:record_checkin!)
463
- expect(connection).not_to receive(:disconnect!)
464
- end
465
- end
466
-
467
- it "returns immediately" do
468
- expect(pool.check_in(connection)).to be_nil
469
- end
470
- end
471
-
472
- context 'when pool is closed' do
473
- before do
474
- connection
475
- pool.close
476
- end
477
-
478
- it 'closes connection' do
479
- expect(connection.closed?).to be false
480
- expect(pool.instance_variable_get('@available_connections').length).to eq(0)
481
- pool.check_in(connection)
482
- expect(connection.closed?).to be true
483
- expect(pool.instance_variable_get('@available_connections').length).to eq(0)
484
- end
485
- end
486
-
487
- context 'when connection is checked in twice' do
488
- it 'raises an ArgumentError and does not change pool state' do
489
- pool.check_in(connection)
490
- expect do
491
- pool.check_in(connection)
492
- end.to raise_error(ArgumentError, /Trying to check in a connection which is not currently checked out by this pool.*/)
493
- expect(pool.size).to eq(1)
494
- expect(pool.check_out).to eq(connection)
495
- end
496
- end
497
-
498
- context 'when connection is checked in to a different pool' do
499
- it 'raises an ArgumentError and does not change the state of either pool' do
500
- pool_other = register_pool(described_class.new(server))
501
-
502
- expect do
503
- pool_other.check_in(connection)
504
- end.to raise_error(ArgumentError, /Trying to check in a connection which was not checked out by this pool.*/)
505
- expect(pool.size).to eq(1)
506
- expect(pool_other.size).to eq(0)
507
- end
508
- end
509
- end
510
-
511
- describe '#check_out' do
512
- let!(:pool) do
513
- server.pool
514
- end
515
-
516
- context 'when max_size is zero (unlimited)' do
517
- let(:options) do
518
- { max_size: 0 }
519
- end
520
-
521
- it 'checks out a connection' do
522
- expect do
523
- pool.check_out
524
- end.not_to raise_error
525
- end
526
- end
527
-
528
- context 'when a connection is checked out on a different thread' do
529
-
530
- let!(:connection) do
531
- Thread.new { pool.check_out }.join
532
- end
533
-
534
- it 'returns a new connection' do
535
- expect(pool.check_out.address).to eq(server.address)
536
- end
537
-
538
- it 'does not return the same connection instance' do
539
- expect(pool.check_out).to_not eql(connection)
540
- end
541
- end
542
-
543
- context 'when connections are checked out and checked back in' do
544
-
545
- it 'pulls the connection from the front of the queue' do
546
- first = pool.check_out
547
- second = pool.check_out
548
- pool.check_in(second)
549
- pool.check_in(first)
550
- expect(pool.check_out).to be(first)
551
- end
552
- end
553
-
554
- context 'when there is an available connection which is stale' do
555
- # These tests are also applicable to load balancers, but
556
- # require different setup and assertions because load balancers
557
- # do not have a single global generation.
558
- require_topology :single, :replica_set, :sharded
559
-
560
- let(:options) do
561
- { max_pool_size: 2, max_idle_time: 0.1 }
562
- end
563
-
564
- context 'when connection is not pinned' do
565
- let(:connection) do
566
- pool.check_out.tap do |connection|
567
- allow(connection).to receive(:generation).and_return(pool.generation)
568
- allow(connection).to receive(:record_checkin!).and_return(connection)
569
- expect(connection).to receive(:last_checkin).at_least(:once).and_return(Time.now - 10)
570
- end
571
- end
572
-
573
- before do
574
- pool.check_in(connection)
575
- end
576
-
577
- it 'closes stale connection and creates a new one' do
578
- expect(connection).to receive(:disconnect!)
579
- expect(Mongo::Server::Connection).to receive(:new).and_call_original
580
- pool.check_out
581
- end
582
- end
583
-
584
- context 'when connection is pinned' do
585
- let(:connection) do
586
- pool.check_out.tap do |connection|
587
- allow(connection).to receive(:generation).and_return(pool.generation)
588
- allow(connection).to receive(:record_checkin!).and_return(connection)
589
- expect(connection).to receive(:pinned?).and_return(true)
590
- end
591
- end
592
-
593
- before do
594
- pool.check_in(connection)
595
- end
596
-
597
- it 'does not close stale connection' do
598
- expect(connection).not_to receive(:disconnect!)
599
- pool.check_out
600
- end
601
- end
602
-
603
- end
604
-
605
- context 'when there are no available connections' do
606
-
607
- let(:options) do
608
- { max_pool_size: 1, min_pool_size: 0 }
609
- end
610
-
611
- context 'when the max size is not reached' do
612
-
613
- it 'creates a new connection' do
614
- expect(Mongo::Server::Connection).to receive(:new).once.and_call_original
615
- expect(pool.check_out).to be_a(Mongo::Server::Connection)
616
- expect(pool.size).to eq(1)
617
- end
618
- end
619
-
620
- context 'when the max size is reached' do
621
-
622
- context 'without service_id' do
623
- it 'raises a timeout error' do
624
- expect(Mongo::Server::Connection).to receive(:new).once.and_call_original
625
- pool.check_out
626
- expect {
627
- pool.check_out
628
- }.to raise_error(::Timeout::Error)
629
- expect(pool.size).to eq(1)
630
- end
631
- end
632
-
633
- context 'with connection_global_id' do
634
- require_topology :load_balanced
635
-
636
- let(:connection_global_id) do
637
- pool.with_connection do |connection|
638
- connection.global_id.should_not be nil
639
- connection.global_id
640
- end
641
- end
642
-
643
- it 'raises a timeout error' do
644
- expect(Mongo::Server::Connection).to receive(:new).once.and_call_original
645
- connection_global_id
646
-
647
- pool.check_out(connection_global_id: connection_global_id)
648
-
649
- expect {
650
- pool.check_out(connection_global_id: connection_global_id)
651
- }.to raise_error(Mongo::Error::ConnectionCheckOutTimeout)
652
-
653
- expect(pool.size).to eq(1)
654
- end
655
-
656
- it 'waits for the timeout' do
657
- expect(Mongo::Server::Connection).to receive(:new).once.and_call_original
658
- connection_global_id
659
-
660
- pool.check_out(connection_global_id: connection_global_id)
661
-
662
- start_time = Mongo::Utils.monotonic_time
663
- expect {
664
- pool.check_out(connection_global_id: connection_global_id)
665
- }.to raise_error(Mongo::Error::ConnectionCheckOutTimeout)
666
- elapsed_time = Mongo::Utils.monotonic_time - start_time
667
-
668
- elapsed_time.should > 1
669
- end
670
- end
671
- end
672
- end
673
-
674
- context 'when waiting for a connection to be checked in' do
675
-
676
- let!(:connection) { pool.check_out }
677
-
678
- before do
679
- allow(connection).to receive(:record_checkin!).and_return(connection)
680
- Thread.new do
681
- sleep(0.5)
682
- pool.check_in(connection)
683
- end.join
684
- end
685
-
686
- it 'returns the checked in connection' do
687
- expect(pool.check_out).to eq(connection)
688
- end
689
- end
690
-
691
- context 'when pool is closed' do
692
- before do
693
- pool.close
694
- end
695
-
696
- it 'raises PoolClosedError' do
697
- expect do
698
- pool.check_out
699
- end.to raise_error(Mongo::Error::PoolClosedError)
700
- end
701
- end
702
-
703
- context 'when connection set up throws an error during check out' do
704
- let(:client) do
705
- authorized_client
706
- end
707
-
708
- let(:pool) do
709
- client.cluster.next_primary.pool
710
- end
711
-
712
- before do
713
- pool.ready
714
- end
715
-
716
- it 'raises an error and emits ConnectionCheckOutFailedEvent' do
717
- pool
718
-
719
- subscriber = Mrss::EventSubscriber.new
720
- client.subscribe(Mongo::Monitoring::CONNECTION_POOL, subscriber)
721
-
722
- subscriber.clear_events!
723
- expect(Mongo::Auth).to receive(:get).at_least(:once).and_raise(Mongo::Error)
724
- expect { pool.check_out }.to raise_error(Mongo::Error)
725
- expect(pool.size).to eq(0)
726
-
727
- checkout_failed_events = subscriber.published_events.select do |event|
728
- event.is_a?(Mongo::Monitoring::Event::Cmap::ConnectionCheckOutFailed)
729
- end
730
- expect(checkout_failed_events.size).to eq(1)
731
- expect(checkout_failed_events.first.reason).to be(:connection_error)
732
- end
733
-
734
- context "when the error is caused by close" do
735
- let(:pool) { server.pool }
736
- let(:options) { { max_size: 1 } }
737
-
738
- it "raises an error and returns immediately" do
739
- expect(pool.max_size).to eq(1)
740
- Timeout::timeout(1) do
741
- c1 = pool.check_out
742
- thread = Thread.new do
743
- c2 = pool.check_out
744
- end
745
-
746
- sleep 0.1
747
- expect do
748
- pool.close
749
- thread.join
750
- end.to raise_error(Mongo::Error::PoolClosedError)
751
- end
752
- end
753
- end
754
- end
755
-
756
- context "when the pool is paused" do
757
- require_no_linting
758
-
759
- before do
760
- pool.pause
761
- end
762
-
763
- it "raises a PoolPausedError" do
764
- expect do
765
- pool.check_out
766
- end.to raise_error(Mongo::Error::PoolPausedError)
767
- end
768
- end
769
- end
770
-
771
- describe "#ready" do
772
- require_no_linting
773
-
774
- let(:pool) do
775
- register_pool(described_class.new(server, server_options))
776
- end
777
-
778
- context "when the pool is closed" do
779
- before do
780
- pool.close
781
- end
782
-
783
- it "raises an error" do
784
- expect do
785
- pool.ready
786
- end.to raise_error(Mongo::Error::PoolClosedError)
787
- end
788
- end
789
-
790
- context "when readying an initialized pool" do
791
- before do
792
- pool.ready
793
- end
794
-
795
- it "starts the populator" do
796
- expect(populator).to be_running
797
- end
798
-
799
- it "readies the pool" do
800
- expect(pool).to be_ready
801
- end
802
- end
803
-
804
- context "when readying a paused pool" do
805
- before do
806
- pool.ready
807
- pool.pause
808
- end
809
-
810
- it "readies the pool" do
811
- pool.ready
812
- expect(pool).to be_ready
813
- end
814
-
815
- it "signals the populate semaphore" do
816
- RSpec::Mocks.with_temporary_scope do
817
- expect(populate_semaphore).to receive(:signal).and_wrap_original do |m, *args|
818
- m.call(*args)
819
- end
820
- pool.ready
821
- end
822
- end
823
- end
824
- end
825
-
826
- describe "#ready?" do
827
- require_no_linting
828
-
829
- let(:pool) do
830
- register_pool(described_class.new(server, server_options))
831
- end
832
-
833
- shared_examples "pool is ready" do
834
- it "is ready" do
835
- expect(pool).to be_ready
836
- end
837
- end
838
-
839
- shared_examples "pool is not ready" do
840
- it "is not ready" do
841
- expect(pool).to_not be_ready
842
- end
843
- end
844
-
845
- context "before readying the pool" do
846
- it_behaves_like "pool is not ready"
847
- end
848
-
849
- context "after readying the pool" do
850
- before do
851
- pool.ready
852
- end
853
-
854
- it_behaves_like "pool is ready"
855
- end
856
-
857
- context "after readying and pausing the pool" do
858
- before do
859
- pool.ready
860
- pool.pause
861
- end
862
-
863
- it_behaves_like "pool is not ready"
864
- end
865
-
866
- context "after readying, pausing, and readying the pool" do
867
- before do
868
- pool.ready
869
- pool.pause
870
- pool.ready
871
- end
872
-
873
- it_behaves_like "pool is ready"
874
- end
875
-
876
- context "after closing the pool" do
877
- before do
878
- pool.ready
879
- pool.close
880
- end
881
-
882
- it_behaves_like "pool is not ready"
883
- end
884
- end
885
-
886
- describe "#pause" do
887
- require_no_linting
888
-
889
- let(:pool) do
890
- register_pool(described_class.new(server, server_options))
891
- end
892
-
893
- context "when the pool is closed" do
894
- before do
895
- pool.close
896
- end
897
-
898
- it "raises an error" do
899
- expect do
900
- pool.pause
901
- end.to raise_error(Mongo::Error::PoolClosedError)
902
- end
903
- end
904
-
905
- context "when the pool is paused" do
906
- before do
907
- pool.ready
908
- pool.pause
909
- end
910
-
911
- it "is still paused" do
912
- expect(pool).to be_paused
913
- pool.pause
914
- expect(pool).to be_paused
915
- end
916
- end
917
-
918
- context "when the pool is ready" do
919
- before do
920
- pool.ready
921
- end
922
-
923
- it "is still paused" do
924
- expect(pool).to be_ready
925
- pool.pause
926
- expect(pool).to be_paused
927
- end
928
-
929
- it "does not stop the populator" do
930
- expect(populator).to be_running
931
- end
932
- end
933
- end
934
-
935
- describe "#paused?" do
936
- require_no_linting
937
-
938
- let(:pool) do
939
- register_pool(described_class.new(server, server_options))
940
- end
941
-
942
- shared_examples "pool is paused" do
943
- it "is paused" do
944
- expect(pool).to be_paused
945
- end
946
- end
947
-
948
- shared_examples "pool is not paused" do
949
- it "is not paused" do
950
- expect(pool).to_not be_paused
951
- end
952
- end
953
-
954
- context "before readying the pool" do
955
- it_behaves_like "pool is paused"
956
- end
957
-
958
- context "after readying the pool" do
959
- before do
960
- pool.ready
961
- end
962
-
963
- it_behaves_like "pool is not paused"
964
- end
965
-
966
- context "after readying and pausing the pool" do
967
- before do
968
- pool.ready
969
- pool.pause
970
- end
971
-
972
- it_behaves_like "pool is paused"
973
- end
974
-
975
- context "after readying, pausing, and readying the pool" do
976
- before do
977
- pool.ready
978
- pool.pause
979
- pool.ready
980
- end
981
-
982
- it_behaves_like "pool is not paused"
983
- end
984
-
985
- context "after closing the pool" do
986
- before do
987
- pool.ready
988
- pool.close
989
- end
990
-
991
- it "raises an error" do
992
- expect do
993
- pool.paused?
994
- end.to raise_error(Mongo::Error::PoolClosedError)
995
- end
996
- end
997
- end
998
-
999
- describe "#closed?" do
1000
- require_no_linting
1001
-
1002
- let(:pool) do
1003
- register_pool(described_class.new(server, server_options))
1004
- end
1005
-
1006
- shared_examples "pool is closed" do
1007
- it "is closed" do
1008
- expect(pool).to be_closed
1009
- end
1010
- end
1011
-
1012
- shared_examples "pool is not closed" do
1013
- it "is not closed" do
1014
- expect(pool).to_not be_closed
1015
- end
1016
- end
1017
-
1018
- context "before readying the pool" do
1019
- it_behaves_like "pool is not closed"
1020
- end
1021
-
1022
- context "after readying the pool" do
1023
- before do
1024
- pool.ready
1025
- end
1026
-
1027
- it_behaves_like "pool is not closed"
1028
- end
1029
-
1030
- context "after readying and pausing the pool" do
1031
- before do
1032
- pool.ready
1033
- pool.pause
1034
- end
1035
-
1036
- it_behaves_like "pool is not closed"
1037
- end
1038
-
1039
- context "after closing the pool" do
1040
- before do
1041
- pool.ready
1042
- pool.close
1043
- end
1044
-
1045
- it_behaves_like "pool is closed"
1046
- end
1047
- end
1048
-
1049
- describe '#disconnect!' do
1050
-
1051
- context 'when pool is closed' do
1052
- before do
1053
- pool.close
1054
- end
1055
-
1056
- it 'does nothing' do
1057
- expect do
1058
- pool.disconnect!
1059
- end.not_to raise_error
1060
- end
1061
- end
1062
- end
1063
-
1064
- describe '#clear' do
1065
- let(:checked_out_connections) { pool.instance_variable_get(:@checked_out_connections) }
1066
- let(:available_connections) { pool.instance_variable_get(:@available_connections) }
1067
- let(:pending_connections) { pool.instance_variable_get(:@pending_connections) }
1068
- let(:interrupt_connections) { pool.instance_variable_get(:@interrupt_connections) }
1069
-
1070
- def create_pool(min_pool_size)
1071
- opts = SpecConfig.instance.test_options.merge(max_pool_size: 3, min_pool_size: min_pool_size)
1072
- described_class.new(server, opts).tap do |pool|
1073
- pool.ready
1074
- # kill background thread to test disconnect behavior
1075
- pool.stop_populator
1076
- expect(pool.instance_variable_get('@populator').running?).to be false
1077
- # make pool be of size 2 so that it has enqueued connections
1078
- # when told to disconnect
1079
- c1 = pool.check_out
1080
- c2 = pool.check_out
1081
- allow(c1).to receive(:record_checkin!).and_return(c1)
1082
- allow(c2).to receive(:record_checkin!).and_return(c2)
1083
- pool.check_in(c1)
1084
- pool.check_in(c2)
1085
- expect(pool.size).to eq(2)
1086
- expect(pool.available_count).to eq(2)
1087
- end
1088
- end
1089
-
1090
- shared_examples_for 'disconnects and removes all connections in the pool and bumps generation' do
1091
- # These tests are also applicable to load balancers, but
1092
- # require different setup and assertions because load balancers
1093
- # do not have a single global generation.
1094
- require_topology :single, :replica_set, :sharded
1095
- require_no_linting
1096
-
1097
- it 'disconnects and removes and bumps' do
1098
- old_connections = []
1099
- pool.instance_variable_get('@available_connections').each do |connection|
1100
- expect(connection).to receive(:disconnect!)
1101
- old_connections << connection
1102
- end
1103
-
1104
- expect(pool.size).to eq(2)
1105
- expect(pool.available_count).to eq(2)
1106
-
1107
- RSpec::Mocks.with_temporary_scope do
1108
- allow(pool.server).to receive(:unknown?).and_return(true)
1109
- pool.disconnect!
1110
- end
1111
-
1112
- expect(pool.size).to eq(0)
1113
- expect(pool.available_count).to eq(0)
1114
- expect(pool).to be_paused
1115
-
1116
- pool.ready
1117
-
1118
- new_connection = pool.check_out
1119
- expect(old_connections).not_to include(new_connection)
1120
- expect(new_connection.generation).to eq(2)
1121
- end
1122
- end
1123
-
1124
- context 'min size is 0' do
1125
- let(:pool) do
1126
- register_pool(create_pool(0))
1127
- end
1128
-
1129
- it_behaves_like 'disconnects and removes all connections in the pool and bumps generation'
1130
- end
1131
-
1132
- context 'min size is not 0' do
1133
- let(:pool) do
1134
- register_pool(create_pool(1))
1135
- end
1136
-
1137
- it_behaves_like 'disconnects and removes all connections in the pool and bumps generation'
1138
- end
1139
-
1140
- context 'when pool is closed' do
1141
- before do
1142
- pool.close
1143
- end
1144
-
1145
- it 'raises PoolClosedError' do
1146
- expect do
1147
- pool.clear
1148
- end.to raise_error(Mongo::Error::PoolClosedError)
1149
- end
1150
- end
1151
-
1152
- context "when interrupting in use connections" do
1153
- context "when there's checked out connections" do
1154
- require_topology :single, :replica_set, :sharded
1155
- require_no_linting
1156
-
1157
- before do
1158
- 3.times { pool.check_out }
1159
- connection = pool.check_out
1160
- pool.check_in(connection)
1161
- expect(checked_out_connections.length).to eq(3)
1162
- expect(available_connections.length).to eq(1)
1163
-
1164
- pending_connections << pool.send(:create_connection)
1165
- end
1166
-
1167
- it "interrupts the connections" do
1168
- expect(pool).to receive(:populate).exactly(3).and_call_original
1169
- RSpec::Mocks.with_temporary_scope do
1170
- allow(pool.server).to receive(:unknown?).and_return(true)
1171
- pool.clear(lazy: true, interrupt_in_use_connections: true)
1172
- end
1173
-
1174
- ::Utils.wait_for_condition(3) do
1175
- pool.size == 0
1176
- end
1177
-
1178
- expect(pool.size).to eq(0)
1179
- expect(available_connections).to be_empty
1180
- expect(checked_out_connections).to be_empty
1181
- expect(pending_connections).to be_empty
1182
- end
1183
- end
1184
- end
1185
-
1186
- context "when in load-balanced mode" do
1187
- require_topology :load_balanced
1188
-
1189
- it "does not pause the pool" do
1190
- allow(pool.server).to receive(:unknown?).and_return(true)
1191
- pool.clear
1192
- expect(pool).to_not be_paused
1193
- end
1194
- end
1195
- end
1196
-
1197
- describe '#close' do
1198
- context 'when pool is not closed' do
1199
- it 'closes the pool' do
1200
- expect(pool).not_to be_closed
1201
-
1202
- pool.close
1203
-
1204
- expect(pool).to be_closed
1205
- end
1206
- end
1207
-
1208
- context 'when pool is closed' do
1209
- before do
1210
- pool.close
1211
- end
1212
-
1213
- it 'is a no-op' do
1214
- pool.close
1215
- expect(pool).to be_closed
1216
- end
1217
- end
1218
- end
1219
-
1220
- describe '#inspect' do
1221
- let(:options) do
1222
- { min_pool_size: 3, max_pool_size: 7, wait_timeout: 9, wait_queue_timeout: 9 }
1223
- end
1224
-
1225
- let!(:pool) do
1226
- server.pool
1227
- end
1228
-
1229
- after do
1230
- server.close
1231
- pool.close # this will no longer be needed after server close kills bg thread
1232
- end
1233
-
1234
- it 'includes the object id' do
1235
- expect(pool.inspect).to include(pool.object_id.to_s)
1236
- end
1237
-
1238
- it 'includes the min size' do
1239
- expect(pool.inspect).to include('min_size=3')
1240
- end
1241
-
1242
- it 'includes the max size' do
1243
- expect(pool.inspect).to include('max_size=7')
1244
- end
1245
-
1246
- it 'includes the wait timeout' do
1247
- expect(pool.inspect).to include('wait_timeout=9')
1248
- end
1249
-
1250
- it 'includes the current size' do
1251
- expect(pool.inspect).to include('current_size=')
1252
- end
1253
-
1254
- =begin obsolete
1255
- it 'includes the queue inspection' do
1256
- expect(pool.inspect).to include(pool.__send__(:queue).inspect)
1257
- end
1258
- =end
1259
-
1260
- it 'indicates the pool is not closed' do
1261
- expect(pool.inspect).not_to include('closed')
1262
- end
1263
-
1264
- context 'when pool is closed' do
1265
- before do
1266
- pool.close
1267
- end
1268
-
1269
- it 'returns inspection string' do
1270
- expect(pool.inspect).to include('min_size=')
1271
- end
1272
-
1273
- it 'indicates the pool is closed' do
1274
- expect(pool.inspect).to include('closed')
1275
- end
1276
- end
1277
- end
1278
-
1279
- describe '#with_connection' do
1280
- let!(:pool) do
1281
- server.pool
1282
- end
1283
-
1284
- context 'when a connection cannot be checked out' do
1285
-
1286
- it 'does not add the connection to the pool' do
1287
- # fails because with_connection raises the SocketError which is not caught anywhere
1288
- allow(pool).to receive(:check_out).and_raise(Mongo::Error::SocketError)
1289
- expect do
1290
- pool.with_connection { |c| c }
1291
- end.to raise_error(Mongo::Error::SocketError)
1292
-
1293
- expect(pool.size).to eq(0)
1294
- end
1295
- end
1296
-
1297
- context 'when pool is closed' do
1298
- before do
1299
- pool.close
1300
- end
1301
-
1302
- it 'raises PoolClosedError' do
1303
- expect do
1304
- pool.with_connection { |c| c }
1305
- end.to raise_error(Mongo::Error::PoolClosedError)
1306
- end
1307
- end
1308
- end
1309
-
1310
- describe '#close_idle_sockets' do
1311
- let!(:pool) do
1312
- server.pool
1313
- end
1314
-
1315
- context 'when there is a max_idle_time specified' do
1316
-
1317
- let(:options) do
1318
- { max_pool_size: 2, max_idle_time: 0.5 }
1319
- end
1320
-
1321
- after do
1322
- Timecop.return
1323
- end
1324
-
1325
- =begin obsolete
1326
- context 'when the connections have not been checked out' do
1327
-
1328
- before do
1329
- queue.each do |conn|
1330
- expect(conn).not_to receive(:disconnect!)
1331
- end
1332
- sleep(0.5)
1333
- pool.close_idle_sockets
1334
- end
1335
-
1336
- it 'does not close any sockets' do
1337
- expect(queue.none? { |c| c.connected? }).to be(true)
1338
- end
1339
- end
1340
- =end
1341
-
1342
- context 'when connections have been checked out and returned to the pool' do
1343
-
1344
- context 'when min size is 0' do
1345
-
1346
- let(:options) do
1347
- { max_pool_size: 2, min_pool_size: 0, max_idle_time: 0.5 }
1348
- end
1349
-
1350
- before do
1351
- c1 = pool.check_out
1352
- c2 = pool.check_out
1353
- pool.check_in(c1)
1354
- pool.check_in(c2)
1355
- sleep(0.5)
1356
- expect(c1).to receive(:disconnect!).and_call_original
1357
- expect(c2).to receive(:disconnect!).and_call_original
1358
- pool.close_idle_sockets
1359
- end
1360
-
1361
- it 'closes all idle sockets' do
1362
- expect(pool.size).to be(0)
1363
- end
1364
- end
1365
-
1366
- context 'when min size is > 0' do
1367
- before do
1368
- # Kill background thread to test close_idle_socket behavior
1369
- pool.stop_populator
1370
- expect(pool.instance_variable_get('@populator').running?).to be false
1371
- end
1372
-
1373
- context 'when more than the number of min_size are checked out' do
1374
- let(:options) do
1375
- { max_pool_size: 5, min_pool_size: 3, max_idle_time: 0.5 }
1376
- end
1377
-
1378
- it 'closes and removes connections with idle sockets and does not connect new ones' do
1379
- first = pool.check_out
1380
- second = pool.check_out
1381
- third = pool.check_out
1382
- fourth = pool.check_out
1383
- fifth = pool.check_out
1384
-
1385
- pool.check_in(fifth)
1386
-
1387
- expect(fifth).to receive(:disconnect!).and_call_original
1388
- expect(fifth).not_to receive(:connect!)
1389
-
1390
- Timecop.travel(Time.now + 1)
1391
- expect(pool.size).to be(5)
1392
- expect(pool.available_count).to be(1)
1393
- pool.close_idle_sockets
1394
-
1395
- expect(pool.size).to be(4)
1396
- expect(pool.available_count).to be(0)
1397
- expect(fifth.connected?).to be(false)
1398
- end
1399
- end
1400
-
1401
- context 'when between 0 and min_size number of connections are checked out' do
1402
-
1403
- let(:options) do
1404
- { max_pool_size: 5, min_pool_size: 3, max_idle_time: 0.5 }
1405
- end
1406
-
1407
- it 'closes and removes connections with idle sockets and does not connect new ones' do
1408
- first = pool.check_out
1409
- second = pool.check_out
1410
- third = pool.check_out
1411
- fourth = pool.check_out
1412
- fifth = pool.check_out
1413
-
1414
- pool.check_in(third)
1415
- pool.check_in(fourth)
1416
- pool.check_in(fifth)
1417
-
1418
-
1419
- expect(third).to receive(:disconnect!).and_call_original
1420
- expect(third).not_to receive(:connect!)
1421
-
1422
- expect(fourth).to receive(:disconnect!).and_call_original
1423
- expect(fourth).not_to receive(:connect!)
1424
-
1425
- expect(fifth).to receive(:disconnect!).and_call_original
1426
- expect(fifth).not_to receive(:connect!).and_call_original
1427
-
1428
- Timecop.travel(Time.now + 1)
1429
- expect(pool.size).to be(5)
1430
- expect(pool.available_count).to be(3)
1431
- pool.close_idle_sockets
1432
-
1433
- expect(pool.size).to be(2)
1434
- expect(pool.available_count).to be(0)
1435
-
1436
- expect(third.connected?).to be(false)
1437
- expect(fourth.connected?).to be(false)
1438
- expect(fifth.connected?).to be(false)
1439
- end
1440
- end
1441
- end
1442
- end
1443
- end
1444
-
1445
- context 'when available connections include idle and non-idle ones' do
1446
- let (:options) do
1447
- { max_pool_size: 2, max_idle_time: 0.5 }
1448
- end
1449
-
1450
- let(:connection) do
1451
- pool.check_out.tap do |con|
1452
- allow(con).to receive(:disconnect!)
1453
- end
1454
- end
1455
-
1456
- it 'disconnects all expired and only expired connections' do
1457
- # Since per-test cleanup will close the pool and disconnect
1458
- # the connection, we need to explicitly define the scope for the
1459
- # assertions
1460
- RSpec::Mocks.with_temporary_scope do
1461
- c1 = pool.check_out
1462
- expect(c1).to receive(:disconnect!)
1463
- c2 = pool.check_out
1464
- expect(c2).not_to receive(:disconnect!)
1465
-
1466
- pool.check_in(c1)
1467
- Timecop.travel(Time.now + 1)
1468
- pool.check_in(c2)
1469
-
1470
- expect(pool.size).to eq(2)
1471
- expect(pool.available_count).to eq(2)
1472
-
1473
- expect(c1).not_to receive(:connect!)
1474
- expect(c2).not_to receive(:connect!)
1475
-
1476
- pool.close_idle_sockets
1477
-
1478
- expect(pool.size).to eq(1)
1479
- expect(pool.available_count).to eq(1)
1480
- end
1481
- end
1482
- end
1483
-
1484
- context 'when there is no max_idle_time specified' do
1485
-
1486
- let(:connection) do
1487
- conn = pool.check_out
1488
- conn.connect!
1489
- pool.check_in(conn)
1490
- conn
1491
- end
1492
-
1493
- it 'does not close any sockets' do
1494
- # Since per-test cleanup will close the pool and disconnect
1495
- # the connection, we need to explicitly define the scope for the
1496
- # assertions
1497
- RSpec::Mocks.with_temporary_scope do
1498
- expect(connection).not_to receive(:disconnect!)
1499
- pool.close_idle_sockets
1500
- expect(connection.connected?).to be(true)
1501
- end
1502
- end
1503
- end
1504
- end
1505
-
1506
- describe '#populate' do
1507
- require_no_linting
1508
-
1509
- before do
1510
- # Disable the populator and clear the pool to isolate populate behavior
1511
- pool.stop_populator
1512
- pool.disconnect!
1513
- # Manually mark the pool ready.
1514
- pool.instance_variable_set('@ready', true)
1515
- end
1516
-
1517
- let(:options) { {min_pool_size: 2, max_pool_size: 3} }
1518
-
1519
- context 'when pool size is at least min_pool_size' do
1520
-
1521
- before do
1522
- first_connection = pool.check_out
1523
- second_connection = pool.check_out
1524
- expect(pool.size).to eq 2
1525
- expect(pool.available_count).to eq 0
1526
- end
1527
-
1528
- it 'does not create a connection and returns false' do
1529
- expect(pool.populate).to be false
1530
- expect(pool.size).to eq 2
1531
- expect(pool.available_count).to eq 0
1532
- end
1533
- end
1534
-
1535
- context 'when pool size is less than min_pool_size' do
1536
- before do
1537
- first_connection = pool.check_out
1538
- expect(pool.size).to eq 1
1539
- expect(pool.available_count).to eq 0
1540
- end
1541
-
1542
- it 'creates one connection, connects it, and returns true' do
1543
- expect(pool.populate).to be true
1544
- expect(pool.size).to eq 2
1545
- expect(pool.available_count).to eq 1
1546
- end
1547
- end
1548
-
1549
- context 'when pool is closed' do
1550
- before do
1551
- pool.close
1552
- end
1553
-
1554
- it 'does not create a connection and returns false' do
1555
- expect(pool.populate).to be false
1556
-
1557
- # Can't just check pool size; size errors when pool is closed
1558
- expect(pool.instance_variable_get('@available_connections').length).to eq(0)
1559
- expect(pool.instance_variable_get('@checked_out_connections').length).to eq(0)
1560
- expect(pool.instance_variable_get('@pending_connections').length).to eq(0)
1561
- end
1562
- end
1563
-
1564
- context 'when connect fails with socket related error once' do
1565
- before do
1566
- i = 0
1567
- expect(pool).to receive(:connect_connection).exactly(:twice).and_wrap_original{ |m, *args|
1568
- i += 1
1569
- if i == 1
1570
- raise Mongo::Error::SocketError
1571
- else
1572
- m.call(*args)
1573
- end
1574
- }
1575
- expect(pool.size).to eq 0
1576
- end
1577
-
1578
- it 'retries then succeeds in creating a connection' do
1579
- expect(pool.populate).to be true
1580
- expect(pool.size).to eq 1
1581
- expect(pool.available_count).to eq 1
1582
- end
1583
- end
1584
-
1585
- context 'when connect fails with socket related error twice' do
1586
- before do
1587
- expect(pool).to receive(:connect_connection).exactly(:twice).and_raise(Mongo::Error::SocketError)
1588
- expect(pool.size).to eq 0
1589
- end
1590
-
1591
- it 'retries, raises the second error, and fails to create a connection' do
1592
- expect{ pool.populate }.to raise_error(Mongo::Error::SocketError)
1593
- expect(pool.size).to eq 0
1594
- end
1595
- end
1596
-
1597
- context 'when connect fails with non socket related error' do
1598
- before do
1599
- expect(pool).to receive(:connect_connection).once.and_raise(Mongo::Auth::InvalidMechanism.new(""))
1600
- expect(pool.size).to eq 0
1601
- end
1602
-
1603
- it 'does not retry, raises the error, and fails to create a connection' do
1604
- expect{ pool.populate }.to raise_error(Mongo::Auth::InvalidMechanism)
1605
- expect(pool.size).to eq 0
1606
- end
1607
- end
1608
- end
1609
- end