bson 4.15.0 → 5.0.2

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 (153) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +94 -10
  3. data/Rakefile +68 -39
  4. data/ext/bson/bson-native.h +12 -4
  5. data/ext/bson/extconf.rb +8 -3
  6. data/ext/bson/init.c +11 -11
  7. data/ext/bson/read.c +39 -9
  8. data/ext/bson/util.c +171 -16
  9. data/ext/bson/write.c +34 -39
  10. data/lib/bson/active_support.rb +1 -0
  11. data/lib/bson/array.rb +58 -32
  12. data/lib/bson/big_decimal.rb +16 -6
  13. data/lib/bson/binary.rb +271 -129
  14. data/lib/bson/boolean.rb +1 -0
  15. data/lib/bson/code.rb +10 -12
  16. data/lib/bson/code_with_scope.rb +9 -11
  17. data/lib/bson/config.rb +1 -27
  18. data/lib/bson/date.rb +2 -1
  19. data/lib/bson/date_time.rb +2 -1
  20. data/lib/bson/db_pointer.rb +12 -13
  21. data/lib/bson/dbref.rb +11 -9
  22. data/lib/bson/decimal128/builder.rb +10 -9
  23. data/lib/bson/decimal128.rb +25 -111
  24. data/lib/bson/document.rb +1 -0
  25. data/lib/bson/environment.rb +1 -0
  26. data/lib/bson/error/bson_decode_error.rb +11 -0
  27. data/lib/bson/error/ext_json_parse_error.rb +11 -0
  28. data/lib/bson/error/illegal_key.rb +23 -0
  29. data/lib/bson/error/invalid_binary_type.rb +37 -0
  30. data/lib/bson/error/invalid_dbref_argument.rb +12 -0
  31. data/lib/bson/error/invalid_decimal128_argument.rb +25 -0
  32. data/lib/bson/error/invalid_decimal128_range.rb +27 -0
  33. data/lib/bson/error/invalid_decimal128_string.rb +26 -0
  34. data/lib/bson/error/invalid_key.rb +24 -0
  35. data/lib/bson/error/invalid_object_id.rb +11 -0
  36. data/lib/bson/error/invalid_regexp_pattern.rb +13 -0
  37. data/lib/bson/error/unrepresentable_precision.rb +19 -0
  38. data/lib/bson/error/unserializable_class.rb +13 -0
  39. data/lib/bson/error/unsupported_binary_subtype.rb +12 -0
  40. data/lib/bson/error/unsupported_type.rb +11 -0
  41. data/lib/bson/error.rb +16 -28
  42. data/lib/bson/ext_json.rb +2 -1
  43. data/lib/bson/false_class.rb +2 -1
  44. data/lib/bson/float.rb +3 -2
  45. data/lib/bson/hash.rb +128 -73
  46. data/lib/bson/int32.rb +17 -5
  47. data/lib/bson/int64.rb +17 -5
  48. data/lib/bson/integer.rb +4 -5
  49. data/lib/bson/json.rb +1 -0
  50. data/lib/bson/max_key.rb +8 -10
  51. data/lib/bson/min_key.rb +8 -10
  52. data/lib/bson/nil_class.rb +1 -0
  53. data/lib/bson/object.rb +7 -27
  54. data/lib/bson/object_id.rb +84 -120
  55. data/lib/bson/open_struct.rb +3 -2
  56. data/lib/bson/regexp.rb +36 -65
  57. data/lib/bson/registry.rb +2 -6
  58. data/lib/bson/specialized.rb +2 -1
  59. data/lib/bson/string.rb +4 -27
  60. data/lib/bson/symbol.rb +23 -20
  61. data/lib/bson/time.rb +3 -2
  62. data/lib/bson/time_with_zone.rb +13 -1
  63. data/lib/bson/timestamp.rb +3 -2
  64. data/lib/bson/true_class.rb +2 -1
  65. data/lib/bson/undefined.rb +15 -1
  66. data/lib/bson/version.rb +3 -1
  67. data/lib/bson.rb +3 -2
  68. data/spec/bson/array_spec.rb +19 -60
  69. data/spec/bson/big_decimal_spec.rb +16 -4
  70. data/spec/bson/binary_spec.rb +129 -81
  71. data/spec/bson/binary_uuid_spec.rb +1 -0
  72. data/spec/bson/boolean_spec.rb +1 -0
  73. data/spec/bson/byte_buffer_read_spec.rb +1 -0
  74. data/spec/bson/byte_buffer_spec.rb +1 -0
  75. data/spec/bson/byte_buffer_write_spec.rb +1 -0
  76. data/spec/bson/code_spec.rb +5 -3
  77. data/spec/bson/code_with_scope_spec.rb +5 -3
  78. data/spec/bson/config_spec.rb +1 -35
  79. data/spec/bson/date_spec.rb +1 -0
  80. data/spec/bson/date_time_spec.rb +1 -0
  81. data/spec/bson/dbref_legacy_spec.rb +20 -3
  82. data/spec/bson/dbref_spec.rb +9 -9
  83. data/spec/bson/decimal128_spec.rb +40 -20
  84. data/spec/bson/document_as_spec.rb +1 -0
  85. data/spec/bson/document_spec.rb +1 -1
  86. data/spec/bson/ext_json_parse_spec.rb +1 -0
  87. data/spec/bson/false_class_spec.rb +8 -0
  88. data/spec/bson/float_spec.rb +8 -3
  89. data/spec/bson/hash_as_spec.rb +1 -0
  90. data/spec/bson/hash_spec.rb +87 -75
  91. data/spec/bson/int32_spec.rb +21 -6
  92. data/spec/bson/int64_spec.rb +21 -6
  93. data/spec/bson/integer_spec.rb +45 -13
  94. data/spec/bson/json_spec.rb +1 -0
  95. data/spec/bson/max_key_spec.rb +5 -3
  96. data/spec/bson/min_key_spec.rb +5 -3
  97. data/spec/bson/nil_class_spec.rb +1 -0
  98. data/spec/bson/object_id_spec.rb +57 -4
  99. data/spec/bson/object_spec.rb +2 -1
  100. data/spec/bson/open_struct_spec.rb +14 -71
  101. data/spec/bson/raw_spec.rb +9 -15
  102. data/spec/bson/regexp_spec.rb +4 -3
  103. data/spec/bson/registry_spec.rb +2 -1
  104. data/spec/bson/string_spec.rb +13 -38
  105. data/spec/bson/symbol_raw_spec.rb +25 -0
  106. data/spec/bson/symbol_spec.rb +15 -18
  107. data/spec/bson/time_spec.rb +1 -0
  108. data/spec/bson/time_with_zone_spec.rb +1 -0
  109. data/spec/bson/timestamp_spec.rb +1 -0
  110. data/spec/bson/true_class_spec.rb +8 -0
  111. data/spec/bson/undefined_spec.rb +27 -0
  112. data/spec/bson_spec.rb +1 -0
  113. data/spec/runners/common_driver.rb +6 -5
  114. data/spec/runners/corpus.rb +6 -0
  115. data/spec/runners/corpus_legacy.rb +1 -0
  116. data/spec/spec_helper.rb +1 -0
  117. data/spec/spec_tests/common_driver_spec.rb +9 -4
  118. data/spec/spec_tests/corpus_legacy_spec.rb +1 -0
  119. data/spec/spec_tests/corpus_spec.rb +13 -3
  120. data/spec/spec_tests/data/corpus/binary.json +5 -0
  121. data/spec/spec_tests/data/corpus/code.json +13 -13
  122. data/spec/spec_tests/data/corpus/decimal128-4.json +48 -0
  123. data/spec/spec_tests/data/corpus/decimal128-6.json +12 -0
  124. data/spec/spec_tests/data/corpus/decimal128-7.json +4 -0
  125. data/spec/spec_tests/data/corpus/document.json +20 -0
  126. data/spec/spec_tests/data/corpus/symbol.json +7 -7
  127. data/spec/spec_tests/data/corpus/top.json +18 -3
  128. data/spec/support/shared_examples.rb +28 -5
  129. data/spec/support/spec_config.rb +1 -0
  130. data/spec/support/utils.rb +49 -1
  131. metadata +114 -164
  132. checksums.yaml.gz.sig +0 -0
  133. data/spec/shared/LICENSE +0 -20
  134. data/spec/shared/bin/get-mongodb-download-url +0 -17
  135. data/spec/shared/bin/s3-copy +0 -45
  136. data/spec/shared/bin/s3-upload +0 -69
  137. data/spec/shared/lib/mrss/child_process_helper.rb +0 -80
  138. data/spec/shared/lib/mrss/cluster_config.rb +0 -231
  139. data/spec/shared/lib/mrss/constraints.rb +0 -386
  140. data/spec/shared/lib/mrss/docker_runner.rb +0 -271
  141. data/spec/shared/lib/mrss/event_subscriber.rb +0 -200
  142. data/spec/shared/lib/mrss/lite_constraints.rb +0 -191
  143. data/spec/shared/lib/mrss/server_version_registry.rb +0 -120
  144. data/spec/shared/lib/mrss/spec_organizer.rb +0 -179
  145. data/spec/shared/lib/mrss/utils.rb +0 -15
  146. data/spec/shared/share/Dockerfile.erb +0 -338
  147. data/spec/shared/share/haproxy-1.conf +0 -16
  148. data/spec/shared/share/haproxy-2.conf +0 -17
  149. data/spec/shared/shlib/distro.sh +0 -74
  150. data/spec/shared/shlib/server.sh +0 -367
  151. data/spec/shared/shlib/set_env.sh +0 -131
  152. data.tar.gz.sig +0 -0
  153. metadata.gz.sig +0 -1
metadata CHANGED
@@ -1,43 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bson
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.15.0
4
+ version: 5.0.2
5
5
  platform: ruby
6
6
  authors:
7
- - Tyler Brock
8
- - Durran Jordan
9
- - Brandon Black
10
- - Emily Stolfo
11
- - Gary Murakami
7
+ - The MongoDB Ruby Team
12
8
  autorequire:
13
9
  bindir: bin
14
- cert_chain:
15
- - |
16
- -----BEGIN CERTIFICATE-----
17
- MIIDfDCCAmSgAwIBAgIBATANBgkqhkiG9w0BAQUFADBCMRQwEgYDVQQDDAtkcml2
18
- ZXItcnVieTEVMBMGCgmSJomT8ixkARkWBTEwZ2VuMRMwEQYKCZImiZPyLGQBGRYD
19
- Y29tMB4XDTIyMDMzMDE5MTcwMloXDTIzMDMzMDE5MTcwMlowQjEUMBIGA1UEAwwL
20
- ZHJpdmVyLXJ1YnkxFTATBgoJkiaJk/IsZAEZFgUxMGdlbjETMBEGCgmSJomT8ixk
21
- ARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANFdSAa8fRm1
22
- bAM9za6Z0fAH4g02bqM1NGnw8zJQrE/PFrFfY6IFCT2AsLfOwr1maVm7iU1+kdVI
23
- IQ+iI/9+E+ArJ+rbGV3dDPQ+SLl3mLT+vXjfjcxMqI2IW6UuVtt2U3Rxd4QU0kdT
24
- JxmcPYs5fDN6BgYc6XXgUjy3m+Kwha2pGctdciUOwEfOZ4RmNRlEZKCMLRHdFP8j
25
- 4WTnJSGfXDiuoXICJb5yOPOZPuaapPSNXp93QkUdsqdKC32I+KMpKKYGBQ6yisfA
26
- 5MyVPPCzLR1lP5qXVGJPnOqUAkvEUfCahg7EP9tI20qxiXrR6TSEraYhIFXL0EGY
27
- u8KAcPHm5KkCAwEAAaN9MHswCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O
28
- BBYEFFt3WbF+9JpUjAoj62cQBgNb8HzXMCAGA1UdEQQZMBeBFWRyaXZlci1ydWJ5
29
- QDEwZ2VuLmNvbTAgBgNVHRIEGTAXgRVkcml2ZXItcnVieUAxMGdlbi5jb20wDQYJ
30
- KoZIhvcNAQEFBQADggEBAM0s7jz2IGD8Ms035b1tMnbNP2CBPq3pen3KQj7IkGF7
31
- x8LPDdOqUj4pUMLeefntX/PkSvwROo677TnWK6+GLayGm5xLHrZH3svybC6QtqTR
32
- mVOLUoZ4TgUmtnMUa/ZvgrIsOeiCysjSf4WECuw7g+LE6jcpLepgYTLk2u1+5SgH
33
- JVENj0BMkdeZIKkc2G97DSx3Zrmz7QWAaH+99XlajJbfcgvhDso+ffQkTBlOgLBg
34
- +WyKQ+QTIdtDiyf2LQmxWnxt/W1CmScjdLS7/yXGkkB/D9Uy+sJD747O/B9P238Q
35
- XnerrtyOu04RsWDvaZkCwSDVzoqfICh4CP1mlde73Ts=
36
- -----END CERTIFICATE-----
37
- date: 2022-04-21 00:00:00.000000000 Z
10
+ cert_chain: []
11
+ date: 2024-11-19 00:00:00.000000000 Z
38
12
  dependencies: []
39
13
  description: A fully featured BSON specification implementation in Ruby
40
- email:
14
+ email: dbx-ruby@mongodb.com
41
15
  executables: []
42
16
  extensions:
43
17
  - ext/bson/extconf.rb
@@ -77,6 +51,21 @@ files:
77
51
  - lib/bson/document.rb
78
52
  - lib/bson/environment.rb
79
53
  - lib/bson/error.rb
54
+ - lib/bson/error/bson_decode_error.rb
55
+ - lib/bson/error/ext_json_parse_error.rb
56
+ - lib/bson/error/illegal_key.rb
57
+ - lib/bson/error/invalid_binary_type.rb
58
+ - lib/bson/error/invalid_dbref_argument.rb
59
+ - lib/bson/error/invalid_decimal128_argument.rb
60
+ - lib/bson/error/invalid_decimal128_range.rb
61
+ - lib/bson/error/invalid_decimal128_string.rb
62
+ - lib/bson/error/invalid_key.rb
63
+ - lib/bson/error/invalid_object_id.rb
64
+ - lib/bson/error/invalid_regexp_pattern.rb
65
+ - lib/bson/error/unrepresentable_precision.rb
66
+ - lib/bson/error/unserializable_class.rb
67
+ - lib/bson/error/unsupported_binary_subtype.rb
68
+ - lib/bson/error/unsupported_type.rb
80
69
  - lib/bson/ext_json.rb
81
70
  - lib/bson/false_class.rb
82
71
  - lib/bson/float.rb
@@ -151,25 +140,6 @@ files:
151
140
  - spec/runners/common_driver.rb
152
141
  - spec/runners/corpus.rb
153
142
  - spec/runners/corpus_legacy.rb
154
- - spec/shared/LICENSE
155
- - spec/shared/bin/get-mongodb-download-url
156
- - spec/shared/bin/s3-copy
157
- - spec/shared/bin/s3-upload
158
- - spec/shared/lib/mrss/child_process_helper.rb
159
- - spec/shared/lib/mrss/cluster_config.rb
160
- - spec/shared/lib/mrss/constraints.rb
161
- - spec/shared/lib/mrss/docker_runner.rb
162
- - spec/shared/lib/mrss/event_subscriber.rb
163
- - spec/shared/lib/mrss/lite_constraints.rb
164
- - spec/shared/lib/mrss/server_version_registry.rb
165
- - spec/shared/lib/mrss/spec_organizer.rb
166
- - spec/shared/lib/mrss/utils.rb
167
- - spec/shared/share/Dockerfile.erb
168
- - spec/shared/share/haproxy-1.conf
169
- - spec/shared/share/haproxy-2.conf
170
- - spec/shared/shlib/distro.sh
171
- - spec/shared/shlib/server.sh
172
- - spec/shared/shlib/set_env.sh
173
143
  - spec/spec_helper.rb
174
144
  - spec/spec_tests/common_driver_spec.rb
175
145
  - spec/spec_tests/corpus_legacy_spec.rb
@@ -237,14 +207,14 @@ files:
237
207
  - spec/support/shared_examples.rb
238
208
  - spec/support/spec_config.rb
239
209
  - spec/support/utils.rb
240
- homepage: https://docs.mongodb.com/ruby-driver/current/tutorials/bson-v4/
210
+ homepage: https://www.mongodb.com/docs/ruby-driver/current/tutorials/bson-v4/
241
211
  licenses:
242
212
  - Apache-2.0
243
213
  metadata:
244
214
  bug_tracker_uri: https://jira.mongodb.org/projects/RUBY
245
215
  changelog_uri: https://github.com/mongodb/bson-ruby/releases
246
- documentation_uri: https://docs.mongodb.com/ruby-driver/current/tutorials/bson-v4/
247
- homepage_uri: https://docs.mongodb.com/ruby-driver/current/tutorials/bson-v4/
216
+ documentation_uri: https://www.mongodb.com/docs/ruby-driver/current/tutorials/bson-v4/
217
+ homepage_uri: https://www.mongodb.com/docs/ruby-driver/current/tutorials/bson-v4/
248
218
  source_code_uri: https://github.com/mongodb/bson-ruby
249
219
  post_install_message:
250
220
  rdoc_options: []
@@ -254,151 +224,131 @@ required_ruby_version: !ruby/object:Gem::Requirement
254
224
  requirements:
255
225
  - - ">="
256
226
  - !ruby/object:Gem::Version
257
- version: '2.5'
227
+ version: '2.6'
258
228
  required_rubygems_version: !ruby/object:Gem::Requirement
259
229
  requirements:
260
230
  - - ">="
261
231
  - !ruby/object:Gem::Version
262
232
  version: 1.3.6
263
233
  requirements: []
264
- rubyforge_project:
265
- rubygems_version: 2.7.6.2
234
+ rubygems_version: 3.4.19
266
235
  signing_key:
267
236
  specification_version: 4
268
237
  summary: Ruby implementation of the BSON specification
269
238
  test_files:
270
- - spec/bson_spec.rb
271
- - spec/runners/corpus_legacy.rb
272
- - spec/runners/common_driver.rb
273
- - spec/runners/corpus.rb
274
- - spec/bson/raw_spec.rb
275
- - spec/bson/date_spec.rb
276
- - spec/bson/false_class_spec.rb
277
- - spec/bson/dbref_spec.rb
278
- - spec/bson/symbol_spec.rb
279
- - spec/bson/undefined_spec.rb
280
- - spec/bson/max_key_spec.rb
281
- - spec/bson/integer_spec.rb
282
- - spec/bson/float_spec.rb
283
- - spec/bson/code_spec.rb
284
- - spec/bson/min_key_spec.rb
285
- - spec/bson/time_spec.rb
286
- - spec/bson/time_with_zone_spec.rb
287
- - spec/bson/code_with_scope_spec.rb
288
- - spec/bson/regexp_spec.rb
289
- - spec/bson/hash_as_spec.rb
290
- - spec/bson/dbref_legacy_spec.rb
239
+ - spec/README.md
240
+ - spec/bson/array_spec.rb
241
+ - spec/bson/big_decimal_spec.rb
242
+ - spec/bson/binary_spec.rb
243
+ - spec/bson/binary_uuid_spec.rb
291
244
  - spec/bson/boolean_spec.rb
292
- - spec/bson/nil_class_spec.rb
245
+ - spec/bson/byte_buffer_read_spec.rb
246
+ - spec/bson/byte_buffer_spec.rb
293
247
  - spec/bson/byte_buffer_write_spec.rb
248
+ - spec/bson/code_spec.rb
249
+ - spec/bson/code_with_scope_spec.rb
294
250
  - spec/bson/config_spec.rb
295
- - spec/bson/int32_spec.rb
296
- - spec/bson/document_spec.rb
297
- - spec/bson/big_decimal_spec.rb
298
- - spec/bson/symbol_raw_spec.rb
299
- - spec/bson/object_spec.rb
251
+ - spec/bson/date_spec.rb
252
+ - spec/bson/date_time_spec.rb
253
+ - spec/bson/dbref_legacy_spec.rb
254
+ - spec/bson/dbref_spec.rb
255
+ - spec/bson/decimal128_spec.rb
300
256
  - spec/bson/document_as_spec.rb
301
- - spec/bson/binary_uuid_spec.rb
302
- - spec/bson/byte_buffer_spec.rb
303
- - spec/bson/true_class_spec.rb
304
- - spec/bson/string_spec.rb
257
+ - spec/bson/document_spec.rb
258
+ - spec/bson/ext_json_parse_spec.rb
259
+ - spec/bson/false_class_spec.rb
260
+ - spec/bson/float_spec.rb
261
+ - spec/bson/hash_as_spec.rb
305
262
  - spec/bson/hash_spec.rb
306
- - spec/bson/decimal128_spec.rb
307
- - spec/bson/byte_buffer_read_spec.rb
263
+ - spec/bson/int32_spec.rb
308
264
  - spec/bson/int64_spec.rb
309
- - spec/bson/object_id_spec.rb
310
- - spec/bson/timestamp_spec.rb
265
+ - spec/bson/integer_spec.rb
311
266
  - spec/bson/json_spec.rb
312
- - spec/bson/array_spec.rb
313
- - spec/bson/date_time_spec.rb
314
- - spec/bson/binary_spec.rb
315
- - spec/bson/registry_spec.rb
316
- - spec/bson/ext_json_parse_spec.rb
267
+ - spec/bson/max_key_spec.rb
268
+ - spec/bson/min_key_spec.rb
269
+ - spec/bson/nil_class_spec.rb
270
+ - spec/bson/object_id_spec.rb
271
+ - spec/bson/object_spec.rb
317
272
  - spec/bson/open_struct_spec.rb
318
- - spec/README.md
319
- - spec/spec_tests/data/decimal128/decimal128-3.json
320
- - spec/spec_tests/data/decimal128/decimal128-5.json
321
- - spec/spec_tests/data/decimal128/decimal128-2.json
322
- - spec/spec_tests/data/decimal128/decimal128-7.json
323
- - spec/spec_tests/data/decimal128/decimal128-4.json
324
- - spec/spec_tests/data/decimal128/decimal128-1.json
325
- - spec/spec_tests/data/decimal128/decimal128-6.json
273
+ - spec/bson/raw_spec.rb
274
+ - spec/bson/regexp_spec.rb
275
+ - spec/bson/registry_spec.rb
276
+ - spec/bson/string_spec.rb
277
+ - spec/bson/symbol_raw_spec.rb
278
+ - spec/bson/symbol_spec.rb
279
+ - spec/bson/time_spec.rb
280
+ - spec/bson/time_with_zone_spec.rb
281
+ - spec/bson/timestamp_spec.rb
282
+ - spec/bson/true_class_spec.rb
283
+ - spec/bson/undefined_spec.rb
284
+ - spec/bson_spec.rb
285
+ - spec/runners/common_driver.rb
286
+ - spec/runners/corpus.rb
287
+ - spec/runners/corpus_legacy.rb
288
+ - spec/spec_helper.rb
289
+ - spec/spec_tests/common_driver_spec.rb
290
+ - spec/spec_tests/corpus_legacy_spec.rb
291
+ - spec/spec_tests/corpus_spec.rb
292
+ - spec/spec_tests/data/corpus/README.md
326
293
  - spec/spec_tests/data/corpus/array.json
327
- - spec/spec_tests/data/corpus/multi-type-deprecated.json
328
- - spec/spec_tests/data/corpus/string.json
329
- - spec/spec_tests/data/corpus/timestamp.json
330
- - spec/spec_tests/data/corpus/double.json
331
294
  - spec/spec_tests/data/corpus/binary.json
332
- - spec/spec_tests/data/corpus/document.json
333
- - spec/spec_tests/data/corpus/null.json
334
- - spec/spec_tests/data/corpus/decimal128-3.json
335
295
  - spec/spec_tests/data/corpus/boolean.json
336
- - spec/spec_tests/data/corpus/regex.json
337
- - spec/spec_tests/data/corpus/oid.json
338
- - spec/spec_tests/data/corpus/README.md
339
296
  - spec/spec_tests/data/corpus/code.json
340
- - spec/spec_tests/data/corpus/undefined.json
297
+ - spec/spec_tests/data/corpus/code_w_scope.json
341
298
  - spec/spec_tests/data/corpus/datetime.json
342
- - spec/spec_tests/data/corpus/int32.json
343
- - spec/spec_tests/data/corpus/decimal128-5.json
299
+ - spec/spec_tests/data/corpus/dbpointer.json
344
300
  - spec/spec_tests/data/corpus/dbref.json
345
- - spec/spec_tests/data/corpus/multi-type.json
301
+ - spec/spec_tests/data/corpus/decimal128-1.json
346
302
  - spec/spec_tests/data/corpus/decimal128-2.json
347
- - spec/spec_tests/data/corpus/dbpointer.json
303
+ - spec/spec_tests/data/corpus/decimal128-3.json
304
+ - spec/spec_tests/data/corpus/decimal128-4.json
305
+ - spec/spec_tests/data/corpus/decimal128-5.json
306
+ - spec/spec_tests/data/corpus/decimal128-6.json
348
307
  - spec/spec_tests/data/corpus/decimal128-7.json
308
+ - spec/spec_tests/data/corpus/document.json
309
+ - spec/spec_tests/data/corpus/double.json
310
+ - spec/spec_tests/data/corpus/int32.json
311
+ - spec/spec_tests/data/corpus/int64.json
312
+ - spec/spec_tests/data/corpus/maxkey.json
313
+ - spec/spec_tests/data/corpus/minkey.json
314
+ - spec/spec_tests/data/corpus/multi-type-deprecated.json
315
+ - spec/spec_tests/data/corpus/multi-type.json
316
+ - spec/spec_tests/data/corpus/null.json
317
+ - spec/spec_tests/data/corpus/oid.json
318
+ - spec/spec_tests/data/corpus/regex.json
319
+ - spec/spec_tests/data/corpus/string.json
349
320
  - spec/spec_tests/data/corpus/symbol.json
321
+ - spec/spec_tests/data/corpus/timestamp.json
350
322
  - spec/spec_tests/data/corpus/top.json
351
- - spec/spec_tests/data/corpus/minkey.json
352
- - spec/spec_tests/data/corpus/maxkey.json
353
- - spec/spec_tests/data/corpus/decimal128-4.json
354
- - spec/spec_tests/data/corpus/decimal128-1.json
355
- - spec/spec_tests/data/corpus/int64.json
356
- - spec/spec_tests/data/corpus/code_w_scope.json
357
- - spec/spec_tests/data/corpus/decimal128-6.json
323
+ - spec/spec_tests/data/corpus/undefined.json
358
324
  - spec/spec_tests/data/corpus_legacy/array.json
359
- - spec/spec_tests/data/corpus_legacy/string.json
360
- - spec/spec_tests/data/corpus_legacy/timestamp.json
361
- - spec/spec_tests/data/corpus_legacy/double.json
362
325
  - spec/spec_tests/data/corpus_legacy/binary.json
363
- - spec/spec_tests/data/corpus_legacy/document.json
364
- - spec/spec_tests/data/corpus_legacy/null.json
365
326
  - spec/spec_tests/data/corpus_legacy/boolean.json
366
- - spec/spec_tests/data/corpus_legacy/regex.json
367
- - spec/spec_tests/data/corpus_legacy/oid.json
368
327
  - spec/spec_tests/data/corpus_legacy/code.json
369
- - spec/spec_tests/data/corpus_legacy/undefined.json
370
- - spec/spec_tests/data/corpus_legacy/int32.json
328
+ - spec/spec_tests/data/corpus_legacy/code_w_scope.json
329
+ - spec/spec_tests/data/corpus_legacy/document.json
330
+ - spec/spec_tests/data/corpus_legacy/double.json
371
331
  - spec/spec_tests/data/corpus_legacy/failures/datetime.json
372
332
  - spec/spec_tests/data/corpus_legacy/failures/dbpointer.json
373
- - spec/spec_tests/data/corpus_legacy/failures/symbol.json
374
333
  - spec/spec_tests/data/corpus_legacy/failures/int64.json
375
- - spec/spec_tests/data/corpus_legacy/top.json
376
- - spec/spec_tests/data/corpus_legacy/minkey.json
334
+ - spec/spec_tests/data/corpus_legacy/failures/symbol.json
335
+ - spec/spec_tests/data/corpus_legacy/int32.json
377
336
  - spec/spec_tests/data/corpus_legacy/maxkey.json
378
- - spec/spec_tests/data/corpus_legacy/code_w_scope.json
379
- - spec/spec_tests/corpus_spec.rb
380
- - spec/spec_tests/corpus_legacy_spec.rb
381
- - spec/spec_tests/common_driver_spec.rb
382
- - spec/spec_helper.rb
383
- - spec/support/utils.rb
384
- - spec/support/spec_config.rb
337
+ - spec/spec_tests/data/corpus_legacy/minkey.json
338
+ - spec/spec_tests/data/corpus_legacy/null.json
339
+ - spec/spec_tests/data/corpus_legacy/oid.json
340
+ - spec/spec_tests/data/corpus_legacy/regex.json
341
+ - spec/spec_tests/data/corpus_legacy/string.json
342
+ - spec/spec_tests/data/corpus_legacy/timestamp.json
343
+ - spec/spec_tests/data/corpus_legacy/top.json
344
+ - spec/spec_tests/data/corpus_legacy/undefined.json
345
+ - spec/spec_tests/data/decimal128/decimal128-1.json
346
+ - spec/spec_tests/data/decimal128/decimal128-2.json
347
+ - spec/spec_tests/data/decimal128/decimal128-3.json
348
+ - spec/spec_tests/data/decimal128/decimal128-4.json
349
+ - spec/spec_tests/data/decimal128/decimal128-5.json
350
+ - spec/spec_tests/data/decimal128/decimal128-6.json
351
+ - spec/spec_tests/data/decimal128/decimal128-7.json
385
352
  - spec/support/shared_examples.rb
386
- - spec/shared/share/Dockerfile.erb
387
- - spec/shared/share/haproxy-2.conf
388
- - spec/shared/share/haproxy-1.conf
389
- - spec/shared/bin/s3-copy
390
- - spec/shared/bin/get-mongodb-download-url
391
- - spec/shared/bin/s3-upload
392
- - spec/shared/shlib/distro.sh
393
- - spec/shared/shlib/set_env.sh
394
- - spec/shared/shlib/server.sh
395
- - spec/shared/LICENSE
396
- - spec/shared/lib/mrss/constraints.rb
397
- - spec/shared/lib/mrss/cluster_config.rb
398
- - spec/shared/lib/mrss/child_process_helper.rb
399
- - spec/shared/lib/mrss/event_subscriber.rb
400
- - spec/shared/lib/mrss/utils.rb
401
- - spec/shared/lib/mrss/server_version_registry.rb
402
- - spec/shared/lib/mrss/lite_constraints.rb
403
- - spec/shared/lib/mrss/docker_runner.rb
404
- - spec/shared/lib/mrss/spec_organizer.rb
353
+ - spec/support/spec_config.rb
354
+ - spec/support/utils.rb
checksums.yaml.gz.sig DELETED
Binary file
data/spec/shared/LICENSE DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2020 MongoDB, Inc.
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- desired_version, arch = ARGV
4
- if arch.nil?
5
- STDERR.puts "Usage: get-mongodb-download-url desired-version arch"
6
- exit 1
7
- end
8
-
9
- $: << File.join(File.dirname(__FILE__), '../lib')
10
- require 'mrss/server_version_registry'
11
-
12
- begin
13
- puts Mrss::ServerVersionRegistry.new(desired_version, arch).download_url
14
- rescue Mrss::ServerVersionRegistry::Error => exc
15
- STDERR.puts "Error: #{exc}"
16
- exit 2
17
- end
@@ -1,45 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'optparse'
4
- require 'aws-sdk-s3'
5
-
6
- options = {}
7
- OptionParser.new do |opts|
8
- opts.banner = "Usage: s3-copy options"
9
-
10
- opts.on("-r", "--region=REGION", "AWS region to use (default us-east-1)") do |v|
11
- options[:region] = v
12
- end
13
-
14
- opts.on("-p", "--param=KEY=VALUE", "Specify parameter for new files") do |v|
15
- options[:params] ||= {}
16
- k, v = v.split('=', 2)
17
- options[:params][k.to_sym] = v
18
- end
19
-
20
- opts.on("-f", "--from=BUCKET:PATH", "Bucket name and key (or path) to copy from") do |v|
21
- options[:from] = v
22
- end
23
-
24
- opts.on("-t", "--to=BUCKET:PATH", "Bucket name and key (or path) to write to (may be specified more than once)") do |v|
25
- options[:to] ||= []
26
- options[:to] << v
27
- end
28
- end.parse!
29
-
30
- ENV['AWS_REGION'] ||= options[:region] || 'us-east-1'
31
-
32
- bucket, key = options.fetch(:from).split(':', 2)
33
-
34
- s3 = Aws::S3::Client.new
35
-
36
- options.fetch(:to).each do |dest|
37
- STDERR.puts "Copying to #{dest}"
38
- dbucket, dkey = dest.split(':', 2)
39
- s3.copy_object(
40
- bucket: dbucket,
41
- key: dkey,
42
- copy_source: "/#{bucket}/#{key}",
43
- **options[:params] || {},
44
- )
45
- end
@@ -1,69 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'optparse'
4
- require 'aws-sdk-s3'
5
-
6
- options = {}
7
- OptionParser.new do |opts|
8
- opts.banner = "Usage: s3-upload options"
9
-
10
- opts.on("-r", "--region=REGION", "AWS region to use (default us-east-1)") do |v|
11
- options[:region] = v
12
- end
13
-
14
- opts.on("-p", "--param=KEY=VALUE", "Specify parameter for S3 upload") do |v|
15
- options[:params] ||= {}
16
- k, v = v.split('=', 2)
17
- options[:params][k.to_sym] = v
18
- end
19
-
20
- opts.on("-f", "--file=PATH", "Path to the file to upload, - to upload standard input") do |v|
21
- options[:file] = v
22
- end
23
-
24
- opts.on("-w", "--write=BUCKET:PATH", "Bucket name and key (or path) to upload to") do |v|
25
- options[:write] = v
26
- end
27
-
28
- opts.on("-c", "--copy=BUCKET:PATH", "Bucket name and key (or path) to copy to (may be specified more than once)") do |v|
29
- options[:copy] ||= []
30
- options[:copy] << v
31
- end
32
- end.parse!
33
-
34
- ENV['AWS_REGION'] ||= options[:region] || 'us-east-1'
35
-
36
- def upload(f, options)
37
- s3 = Aws::S3::Client.new
38
- write = options.fetch(:write)
39
- STDERR.puts "Writing #{write}"
40
- bucket, key = write.split(':', 2)
41
- s3.put_object(
42
- body: f.read,
43
- bucket: bucket,
44
- key: key,
45
- **options[:params] || {},
46
- )
47
- if copy = options[:copy]
48
- copy.each do |dest|
49
- STDERR.puts "Copying to #{dest}"
50
- dbucket, dkey = dest.split(':', 2)
51
- s3.copy_object(
52
- bucket: dbucket,
53
- key: dkey,
54
- copy_source: "/#{bucket}/#{key}",
55
- **options[:params] || {},
56
- )
57
- end
58
- end
59
- end
60
-
61
- if options[:file] == '-'
62
- upload(STDIN, options)
63
- elsif options[:file]
64
- File.open(options[:file]) do |f|
65
- upload(f, options)
66
- end
67
- else
68
- upload(STDIN, options)
69
- end
@@ -1,80 +0,0 @@
1
- # frozen_string_literal: true
2
- # encoding: utf-8
3
-
4
- autoload :ChildProcess, 'childprocess'
5
- autoload :Tempfile, 'tempfile'
6
-
7
- module Mrss
8
- module ChildProcessHelper
9
- class SpawnError < StandardError; end
10
-
11
- module_function def call(cmd, env: nil, cwd: nil)
12
- process = ChildProcess.new(*cmd)
13
- process.io.inherit!
14
- if cwd
15
- process.cwd = cwd
16
- end
17
- if env
18
- env.each do |k, v|
19
- process.environment[k.to_s] = v
20
- end
21
- end
22
- process.start
23
- process.wait
24
- process
25
- end
26
-
27
- module_function def check_call(cmd, env: nil, cwd: nil)
28
- process = call(cmd, env: env, cwd: cwd)
29
- unless process.exit_code == 0
30
- raise SpawnError, "Failed to execute: #{cmd}"
31
- end
32
- end
33
-
34
- module_function def get_output(cmd, env: nil, cwd: nil)
35
- process = ChildProcess.new(*cmd)
36
- process.io.inherit!
37
- if cwd
38
- process.cwd = cwd
39
- end
40
- if env
41
- env.each do |k, v|
42
- process.environment[k.to_s] = v
43
- end
44
- end
45
-
46
- output = ''
47
- r, w = IO.pipe
48
-
49
- begin
50
- process.io.stdout = w
51
- process.start
52
- w.close
53
-
54
- thread = Thread.new do
55
- begin
56
- loop do
57
- output << r.readpartial(16384)
58
- end
59
- rescue EOFError
60
- end
61
- end
62
-
63
- process.wait
64
- thread.join
65
- ensure
66
- r.close
67
- end
68
-
69
- [process, output]
70
- end
71
-
72
- module_function def check_output(*args)
73
- process, output = get_output(*args)
74
- unless process.exit_code == 0
75
- raise SpawnError,"Failed to execute: #{args}"
76
- end
77
- output
78
- end
79
- end
80
- end