bson 4.15.0-java → 5.0.1-java

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 (148) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +94 -10
  3. data/Rakefile +68 -39
  4. data/lib/bson/active_support.rb +1 -0
  5. data/lib/bson/array.rb +57 -31
  6. data/lib/bson/big_decimal.rb +16 -6
  7. data/lib/bson/binary.rb +255 -128
  8. data/lib/bson/boolean.rb +1 -0
  9. data/lib/bson/code.rb +9 -11
  10. data/lib/bson/code_with_scope.rb +8 -10
  11. data/lib/bson/config.rb +1 -27
  12. data/lib/bson/date.rb +2 -1
  13. data/lib/bson/date_time.rb +2 -1
  14. data/lib/bson/db_pointer.rb +11 -12
  15. data/lib/bson/dbref.rb +11 -9
  16. data/lib/bson/decimal128/builder.rb +10 -9
  17. data/lib/bson/decimal128.rb +24 -110
  18. data/lib/bson/document.rb +1 -0
  19. data/lib/bson/environment.rb +1 -0
  20. data/lib/bson/error/bson_decode_error.rb +11 -0
  21. data/lib/bson/error/ext_json_parse_error.rb +11 -0
  22. data/lib/bson/error/illegal_key.rb +23 -0
  23. data/lib/bson/error/invalid_binary_type.rb +37 -0
  24. data/lib/bson/error/invalid_dbref_argument.rb +12 -0
  25. data/lib/bson/error/invalid_decimal128_argument.rb +25 -0
  26. data/lib/bson/error/invalid_decimal128_range.rb +27 -0
  27. data/lib/bson/error/invalid_decimal128_string.rb +26 -0
  28. data/lib/bson/error/invalid_key.rb +24 -0
  29. data/lib/bson/error/invalid_object_id.rb +11 -0
  30. data/lib/bson/error/invalid_regexp_pattern.rb +13 -0
  31. data/lib/bson/error/unrepresentable_precision.rb +19 -0
  32. data/lib/bson/error/unserializable_class.rb +13 -0
  33. data/lib/bson/error/unsupported_binary_subtype.rb +12 -0
  34. data/lib/bson/error/unsupported_type.rb +11 -0
  35. data/lib/bson/error.rb +16 -28
  36. data/lib/bson/ext_json.rb +1 -0
  37. data/lib/bson/false_class.rb +2 -1
  38. data/lib/bson/float.rb +2 -1
  39. data/lib/bson/hash.rb +127 -72
  40. data/lib/bson/int32.rb +16 -4
  41. data/lib/bson/int64.rb +16 -4
  42. data/lib/bson/integer.rb +3 -4
  43. data/lib/bson/json.rb +1 -0
  44. data/lib/bson/max_key.rb +7 -9
  45. data/lib/bson/min_key.rb +7 -9
  46. data/lib/bson/nil_class.rb +1 -0
  47. data/lib/bson/object.rb +5 -25
  48. data/lib/bson/object_id.rb +83 -119
  49. data/lib/bson/open_struct.rb +3 -2
  50. data/lib/bson/regexp.rb +35 -64
  51. data/lib/bson/registry.rb +2 -6
  52. data/lib/bson/specialized.rb +2 -1
  53. data/lib/bson/string.rb +4 -27
  54. data/lib/bson/symbol.rb +22 -19
  55. data/lib/bson/time.rb +2 -1
  56. data/lib/bson/time_with_zone.rb +13 -1
  57. data/lib/bson/timestamp.rb +2 -1
  58. data/lib/bson/true_class.rb +2 -1
  59. data/lib/bson/undefined.rb +14 -0
  60. data/lib/bson/version.rb +3 -1
  61. data/lib/bson-ruby.jar +0 -0
  62. data/lib/bson.rb +3 -2
  63. data/spec/bson/array_spec.rb +19 -60
  64. data/spec/bson/big_decimal_spec.rb +16 -4
  65. data/spec/bson/binary_spec.rb +83 -74
  66. data/spec/bson/binary_uuid_spec.rb +1 -0
  67. data/spec/bson/boolean_spec.rb +1 -0
  68. data/spec/bson/byte_buffer_read_spec.rb +1 -0
  69. data/spec/bson/byte_buffer_spec.rb +1 -0
  70. data/spec/bson/byte_buffer_write_spec.rb +1 -0
  71. data/spec/bson/code_spec.rb +5 -3
  72. data/spec/bson/code_with_scope_spec.rb +5 -3
  73. data/spec/bson/config_spec.rb +1 -35
  74. data/spec/bson/date_spec.rb +1 -0
  75. data/spec/bson/date_time_spec.rb +1 -0
  76. data/spec/bson/dbref_legacy_spec.rb +20 -3
  77. data/spec/bson/dbref_spec.rb +9 -9
  78. data/spec/bson/decimal128_spec.rb +40 -20
  79. data/spec/bson/document_as_spec.rb +1 -0
  80. data/spec/bson/document_spec.rb +1 -1
  81. data/spec/bson/ext_json_parse_spec.rb +1 -0
  82. data/spec/bson/false_class_spec.rb +8 -0
  83. data/spec/bson/float_spec.rb +8 -3
  84. data/spec/bson/hash_as_spec.rb +1 -0
  85. data/spec/bson/hash_spec.rb +87 -75
  86. data/spec/bson/int32_spec.rb +21 -6
  87. data/spec/bson/int64_spec.rb +21 -6
  88. data/spec/bson/integer_spec.rb +45 -13
  89. data/spec/bson/json_spec.rb +1 -0
  90. data/spec/bson/max_key_spec.rb +5 -3
  91. data/spec/bson/min_key_spec.rb +5 -3
  92. data/spec/bson/nil_class_spec.rb +1 -0
  93. data/spec/bson/object_id_spec.rb +57 -4
  94. data/spec/bson/object_spec.rb +2 -1
  95. data/spec/bson/open_struct_spec.rb +14 -71
  96. data/spec/bson/raw_spec.rb +9 -15
  97. data/spec/bson/regexp_spec.rb +4 -3
  98. data/spec/bson/registry_spec.rb +2 -1
  99. data/spec/bson/string_spec.rb +13 -38
  100. data/spec/bson/symbol_raw_spec.rb +25 -0
  101. data/spec/bson/symbol_spec.rb +15 -18
  102. data/spec/bson/time_spec.rb +1 -0
  103. data/spec/bson/time_with_zone_spec.rb +1 -0
  104. data/spec/bson/timestamp_spec.rb +1 -0
  105. data/spec/bson/true_class_spec.rb +8 -0
  106. data/spec/bson/undefined_spec.rb +27 -0
  107. data/spec/bson_spec.rb +1 -0
  108. data/spec/runners/common_driver.rb +6 -5
  109. data/spec/runners/corpus.rb +6 -0
  110. data/spec/runners/corpus_legacy.rb +1 -0
  111. data/spec/spec_helper.rb +1 -0
  112. data/spec/spec_tests/common_driver_spec.rb +9 -4
  113. data/spec/spec_tests/corpus_legacy_spec.rb +1 -0
  114. data/spec/spec_tests/corpus_spec.rb +13 -3
  115. data/spec/spec_tests/data/corpus/binary.json +5 -0
  116. data/spec/spec_tests/data/corpus/code.json +13 -13
  117. data/spec/spec_tests/data/corpus/decimal128-4.json +48 -0
  118. data/spec/spec_tests/data/corpus/decimal128-6.json +12 -0
  119. data/spec/spec_tests/data/corpus/decimal128-7.json +4 -0
  120. data/spec/spec_tests/data/corpus/document.json +20 -0
  121. data/spec/spec_tests/data/corpus/symbol.json +7 -7
  122. data/spec/spec_tests/data/corpus/top.json +18 -3
  123. data/spec/support/shared_examples.rb +28 -5
  124. data/spec/support/spec_config.rb +1 -0
  125. data/spec/support/utils.rb +49 -1
  126. metadata +112 -161
  127. checksums.yaml.gz.sig +0 -0
  128. data/spec/shared/LICENSE +0 -20
  129. data/spec/shared/bin/get-mongodb-download-url +0 -17
  130. data/spec/shared/bin/s3-copy +0 -45
  131. data/spec/shared/bin/s3-upload +0 -69
  132. data/spec/shared/lib/mrss/child_process_helper.rb +0 -80
  133. data/spec/shared/lib/mrss/cluster_config.rb +0 -231
  134. data/spec/shared/lib/mrss/constraints.rb +0 -386
  135. data/spec/shared/lib/mrss/docker_runner.rb +0 -271
  136. data/spec/shared/lib/mrss/event_subscriber.rb +0 -200
  137. data/spec/shared/lib/mrss/lite_constraints.rb +0 -191
  138. data/spec/shared/lib/mrss/server_version_registry.rb +0 -120
  139. data/spec/shared/lib/mrss/spec_organizer.rb +0 -179
  140. data/spec/shared/lib/mrss/utils.rb +0 -15
  141. data/spec/shared/share/Dockerfile.erb +0 -338
  142. data/spec/shared/share/haproxy-1.conf +0 -16
  143. data/spec/shared/share/haproxy-2.conf +0 -17
  144. data/spec/shared/shlib/distro.sh +0 -74
  145. data/spec/shared/shlib/server.sh +0 -367
  146. data/spec/shared/shlib/set_env.sh +0 -131
  147. data.tar.gz.sig +0 -1
  148. metadata.gz.sig +0 -2
@@ -1,10 +1,58 @@
1
+ # rubocop:todo all
1
2
  module Utils
3
+ extend self
4
+
2
5
  # JRuby chokes when strings like "\xfe\x00\xff", which are not valid UTF-8,
3
6
  # appear in the source. Use this method to build such strings.
4
7
  # char_array is an array of byte values to use for the string.
5
- module_function def make_byte_string(char_array, encoding = 'BINARY')
8
+ def make_byte_string(char_array, encoding = 'BINARY')
6
9
  char_array.map do |char|
7
10
  char.chr.force_encoding('BINARY')
8
11
  end.join.force_encoding(encoding)
9
12
  end
13
+
14
+ # Forks the current process and executes the given block in the child.
15
+ # The value returned by the block is then returned in the parent process
16
+ # by this method.
17
+ #
18
+ # @return [ Object ] the value returned by the block
19
+ def perform_in_child(&block)
20
+ reader, writer = IO.pipe
21
+
22
+ if fork
23
+ parent_worker(reader, writer)
24
+ else
25
+ child_worker(reader, writer, &block)
26
+ end
27
+ end
28
+
29
+ private
30
+
31
+ # A utility method for #perform_in_child, to handle tasks for the parent
32
+ # side of the fork.
33
+ #
34
+ # @param [ IO ] reader The reader IO for the pipe
35
+ # @param [ IO ] writer The writer IO for the pipe
36
+ #
37
+ # @return [ Object ] the value returned by the child process
38
+ def parent_worker(reader, writer)
39
+ writer.close
40
+ blob = reader.read
41
+ reader.close
42
+ Process.wait
43
+ Marshal.load(blob)
44
+ end
45
+
46
+ # A utility method for #perform_in_child, to handle tasks for the child
47
+ # side of the fork.
48
+ #
49
+ # @param [ IO ] reader The reader IO for the pipe
50
+ # @param [ IO ] writer The writer IO for the pipe
51
+ def child_worker(reader, writer, &block)
52
+ reader.close
53
+ result = block.call
54
+ writer.write Marshal.dump(result)
55
+ writer.close
56
+ exit! 0
57
+ end
10
58
  end
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.1
5
5
  platform: java
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-07-23 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
  extra_rdoc_files: []
@@ -67,6 +41,21 @@ files:
67
41
  - lib/bson/document.rb
68
42
  - lib/bson/environment.rb
69
43
  - lib/bson/error.rb
44
+ - lib/bson/error/bson_decode_error.rb
45
+ - lib/bson/error/ext_json_parse_error.rb
46
+ - lib/bson/error/illegal_key.rb
47
+ - lib/bson/error/invalid_binary_type.rb
48
+ - lib/bson/error/invalid_dbref_argument.rb
49
+ - lib/bson/error/invalid_decimal128_argument.rb
50
+ - lib/bson/error/invalid_decimal128_range.rb
51
+ - lib/bson/error/invalid_decimal128_string.rb
52
+ - lib/bson/error/invalid_key.rb
53
+ - lib/bson/error/invalid_object_id.rb
54
+ - lib/bson/error/invalid_regexp_pattern.rb
55
+ - lib/bson/error/unrepresentable_precision.rb
56
+ - lib/bson/error/unserializable_class.rb
57
+ - lib/bson/error/unsupported_binary_subtype.rb
58
+ - lib/bson/error/unsupported_type.rb
70
59
  - lib/bson/ext_json.rb
71
60
  - lib/bson/false_class.rb
72
61
  - lib/bson/float.rb
@@ -141,25 +130,6 @@ files:
141
130
  - spec/runners/common_driver.rb
142
131
  - spec/runners/corpus.rb
143
132
  - spec/runners/corpus_legacy.rb
144
- - spec/shared/LICENSE
145
- - spec/shared/bin/get-mongodb-download-url
146
- - spec/shared/bin/s3-copy
147
- - spec/shared/bin/s3-upload
148
- - spec/shared/lib/mrss/child_process_helper.rb
149
- - spec/shared/lib/mrss/cluster_config.rb
150
- - spec/shared/lib/mrss/constraints.rb
151
- - spec/shared/lib/mrss/docker_runner.rb
152
- - spec/shared/lib/mrss/event_subscriber.rb
153
- - spec/shared/lib/mrss/lite_constraints.rb
154
- - spec/shared/lib/mrss/server_version_registry.rb
155
- - spec/shared/lib/mrss/spec_organizer.rb
156
- - spec/shared/lib/mrss/utils.rb
157
- - spec/shared/share/Dockerfile.erb
158
- - spec/shared/share/haproxy-1.conf
159
- - spec/shared/share/haproxy-2.conf
160
- - spec/shared/shlib/distro.sh
161
- - spec/shared/shlib/server.sh
162
- - spec/shared/shlib/set_env.sh
163
133
  - spec/spec_helper.rb
164
134
  - spec/spec_tests/common_driver_spec.rb
165
135
  - spec/spec_tests/corpus_legacy_spec.rb
@@ -227,14 +197,14 @@ files:
227
197
  - spec/support/shared_examples.rb
228
198
  - spec/support/spec_config.rb
229
199
  - spec/support/utils.rb
230
- homepage: https://docs.mongodb.com/ruby-driver/current/tutorials/bson-v4/
200
+ homepage: https://www.mongodb.com/docs/ruby-driver/current/tutorials/bson-v4/
231
201
  licenses:
232
202
  - Apache-2.0
233
203
  metadata:
234
204
  bug_tracker_uri: https://jira.mongodb.org/projects/RUBY
235
205
  changelog_uri: https://github.com/mongodb/bson-ruby/releases
236
- documentation_uri: https://docs.mongodb.com/ruby-driver/current/tutorials/bson-v4/
237
- homepage_uri: https://docs.mongodb.com/ruby-driver/current/tutorials/bson-v4/
206
+ documentation_uri: https://www.mongodb.com/docs/ruby-driver/current/tutorials/bson-v4/
207
+ homepage_uri: https://www.mongodb.com/docs/ruby-driver/current/tutorials/bson-v4/
238
208
  source_code_uri: https://github.com/mongodb/bson-ruby
239
209
  post_install_message:
240
210
  rdoc_options: []
@@ -244,150 +214,131 @@ required_ruby_version: !ruby/object:Gem::Requirement
244
214
  requirements:
245
215
  - - ">="
246
216
  - !ruby/object:Gem::Version
247
- version: '2.5'
217
+ version: '2.6'
248
218
  required_rubygems_version: !ruby/object:Gem::Requirement
249
219
  requirements:
250
220
  - - ">="
251
221
  - !ruby/object:Gem::Version
252
222
  version: 1.3.6
253
223
  requirements: []
254
- rubygems_version: 3.0.6
224
+ rubygems_version: 3.3.26
255
225
  signing_key:
256
226
  specification_version: 4
257
227
  summary: Ruby implementation of the BSON specification
258
228
  test_files:
259
- - spec/bson_spec.rb
260
229
  - spec/README.md
261
- - spec/spec_helper.rb
262
- - spec/runners/corpus_legacy.rb
263
- - spec/runners/common_driver.rb
264
- - spec/runners/corpus.rb
265
- - spec/bson/raw_spec.rb
266
- - spec/bson/date_spec.rb
267
- - spec/bson/false_class_spec.rb
268
- - spec/bson/dbref_spec.rb
269
- - spec/bson/symbol_spec.rb
270
- - spec/bson/undefined_spec.rb
271
- - spec/bson/max_key_spec.rb
272
- - spec/bson/integer_spec.rb
273
- - spec/bson/float_spec.rb
274
- - spec/bson/code_spec.rb
275
- - spec/bson/min_key_spec.rb
276
- - spec/bson/time_spec.rb
277
- - spec/bson/time_with_zone_spec.rb
278
- - spec/bson/code_with_scope_spec.rb
279
- - spec/bson/regexp_spec.rb
280
- - spec/bson/hash_as_spec.rb
281
- - spec/bson/dbref_legacy_spec.rb
230
+ - spec/bson/array_spec.rb
231
+ - spec/bson/big_decimal_spec.rb
232
+ - spec/bson/binary_spec.rb
233
+ - spec/bson/binary_uuid_spec.rb
282
234
  - spec/bson/boolean_spec.rb
283
- - spec/bson/nil_class_spec.rb
235
+ - spec/bson/byte_buffer_read_spec.rb
236
+ - spec/bson/byte_buffer_spec.rb
284
237
  - spec/bson/byte_buffer_write_spec.rb
238
+ - spec/bson/code_spec.rb
239
+ - spec/bson/code_with_scope_spec.rb
285
240
  - spec/bson/config_spec.rb
286
- - spec/bson/int32_spec.rb
287
- - spec/bson/document_spec.rb
288
- - spec/bson/big_decimal_spec.rb
289
- - spec/bson/symbol_raw_spec.rb
290
- - spec/bson/object_spec.rb
241
+ - spec/bson/date_spec.rb
242
+ - spec/bson/date_time_spec.rb
243
+ - spec/bson/dbref_legacy_spec.rb
244
+ - spec/bson/dbref_spec.rb
245
+ - spec/bson/decimal128_spec.rb
291
246
  - spec/bson/document_as_spec.rb
292
- - spec/bson/binary_uuid_spec.rb
293
- - spec/bson/byte_buffer_spec.rb
294
- - spec/bson/true_class_spec.rb
295
- - spec/bson/string_spec.rb
247
+ - spec/bson/document_spec.rb
248
+ - spec/bson/ext_json_parse_spec.rb
249
+ - spec/bson/false_class_spec.rb
250
+ - spec/bson/float_spec.rb
251
+ - spec/bson/hash_as_spec.rb
296
252
  - spec/bson/hash_spec.rb
297
- - spec/bson/decimal128_spec.rb
298
- - spec/bson/byte_buffer_read_spec.rb
253
+ - spec/bson/int32_spec.rb
299
254
  - spec/bson/int64_spec.rb
300
- - spec/bson/object_id_spec.rb
301
- - spec/bson/timestamp_spec.rb
255
+ - spec/bson/integer_spec.rb
302
256
  - spec/bson/json_spec.rb
303
- - spec/bson/array_spec.rb
304
- - spec/bson/date_time_spec.rb
305
- - spec/bson/binary_spec.rb
306
- - spec/bson/registry_spec.rb
307
- - spec/bson/ext_json_parse_spec.rb
257
+ - spec/bson/max_key_spec.rb
258
+ - spec/bson/min_key_spec.rb
259
+ - spec/bson/nil_class_spec.rb
260
+ - spec/bson/object_id_spec.rb
261
+ - spec/bson/object_spec.rb
308
262
  - spec/bson/open_struct_spec.rb
309
- - spec/spec_tests/corpus_spec.rb
310
- - spec/spec_tests/corpus_legacy_spec.rb
263
+ - spec/bson/raw_spec.rb
264
+ - spec/bson/regexp_spec.rb
265
+ - spec/bson/registry_spec.rb
266
+ - spec/bson/string_spec.rb
267
+ - spec/bson/symbol_raw_spec.rb
268
+ - spec/bson/symbol_spec.rb
269
+ - spec/bson/time_spec.rb
270
+ - spec/bson/time_with_zone_spec.rb
271
+ - spec/bson/timestamp_spec.rb
272
+ - spec/bson/true_class_spec.rb
273
+ - spec/bson/undefined_spec.rb
274
+ - spec/bson_spec.rb
275
+ - spec/runners/common_driver.rb
276
+ - spec/runners/corpus.rb
277
+ - spec/runners/corpus_legacy.rb
278
+ - spec/spec_helper.rb
311
279
  - spec/spec_tests/common_driver_spec.rb
312
- - spec/spec_tests/data/decimal128/decimal128-3.json
313
- - spec/spec_tests/data/decimal128/decimal128-5.json
314
- - spec/spec_tests/data/decimal128/decimal128-2.json
315
- - spec/spec_tests/data/decimal128/decimal128-7.json
316
- - spec/spec_tests/data/decimal128/decimal128-4.json
317
- - spec/spec_tests/data/decimal128/decimal128-1.json
318
- - spec/spec_tests/data/decimal128/decimal128-6.json
280
+ - spec/spec_tests/corpus_legacy_spec.rb
281
+ - spec/spec_tests/corpus_spec.rb
282
+ - spec/spec_tests/data/corpus/README.md
319
283
  - spec/spec_tests/data/corpus/array.json
320
- - spec/spec_tests/data/corpus/multi-type-deprecated.json
321
- - spec/spec_tests/data/corpus/string.json
322
- - spec/spec_tests/data/corpus/timestamp.json
323
- - spec/spec_tests/data/corpus/double.json
324
284
  - spec/spec_tests/data/corpus/binary.json
325
- - spec/spec_tests/data/corpus/document.json
326
- - spec/spec_tests/data/corpus/null.json
327
- - spec/spec_tests/data/corpus/decimal128-3.json
328
285
  - spec/spec_tests/data/corpus/boolean.json
329
- - spec/spec_tests/data/corpus/regex.json
330
- - spec/spec_tests/data/corpus/oid.json
331
- - spec/spec_tests/data/corpus/README.md
332
286
  - spec/spec_tests/data/corpus/code.json
333
- - spec/spec_tests/data/corpus/undefined.json
287
+ - spec/spec_tests/data/corpus/code_w_scope.json
334
288
  - spec/spec_tests/data/corpus/datetime.json
335
- - spec/spec_tests/data/corpus/int32.json
336
- - spec/spec_tests/data/corpus/decimal128-5.json
289
+ - spec/spec_tests/data/corpus/dbpointer.json
337
290
  - spec/spec_tests/data/corpus/dbref.json
338
- - spec/spec_tests/data/corpus/multi-type.json
291
+ - spec/spec_tests/data/corpus/decimal128-1.json
339
292
  - spec/spec_tests/data/corpus/decimal128-2.json
340
- - spec/spec_tests/data/corpus/dbpointer.json
293
+ - spec/spec_tests/data/corpus/decimal128-3.json
294
+ - spec/spec_tests/data/corpus/decimal128-4.json
295
+ - spec/spec_tests/data/corpus/decimal128-5.json
296
+ - spec/spec_tests/data/corpus/decimal128-6.json
341
297
  - spec/spec_tests/data/corpus/decimal128-7.json
298
+ - spec/spec_tests/data/corpus/document.json
299
+ - spec/spec_tests/data/corpus/double.json
300
+ - spec/spec_tests/data/corpus/int32.json
301
+ - spec/spec_tests/data/corpus/int64.json
302
+ - spec/spec_tests/data/corpus/maxkey.json
303
+ - spec/spec_tests/data/corpus/minkey.json
304
+ - spec/spec_tests/data/corpus/multi-type-deprecated.json
305
+ - spec/spec_tests/data/corpus/multi-type.json
306
+ - spec/spec_tests/data/corpus/null.json
307
+ - spec/spec_tests/data/corpus/oid.json
308
+ - spec/spec_tests/data/corpus/regex.json
309
+ - spec/spec_tests/data/corpus/string.json
342
310
  - spec/spec_tests/data/corpus/symbol.json
311
+ - spec/spec_tests/data/corpus/timestamp.json
343
312
  - spec/spec_tests/data/corpus/top.json
344
- - spec/spec_tests/data/corpus/minkey.json
345
- - spec/spec_tests/data/corpus/maxkey.json
346
- - spec/spec_tests/data/corpus/decimal128-4.json
347
- - spec/spec_tests/data/corpus/decimal128-1.json
348
- - spec/spec_tests/data/corpus/int64.json
349
- - spec/spec_tests/data/corpus/code_w_scope.json
350
- - spec/spec_tests/data/corpus/decimal128-6.json
313
+ - spec/spec_tests/data/corpus/undefined.json
351
314
  - spec/spec_tests/data/corpus_legacy/array.json
352
- - spec/spec_tests/data/corpus_legacy/string.json
353
- - spec/spec_tests/data/corpus_legacy/timestamp.json
354
- - spec/spec_tests/data/corpus_legacy/double.json
355
315
  - spec/spec_tests/data/corpus_legacy/binary.json
356
- - spec/spec_tests/data/corpus_legacy/document.json
357
- - spec/spec_tests/data/corpus_legacy/null.json
358
316
  - spec/spec_tests/data/corpus_legacy/boolean.json
359
- - spec/spec_tests/data/corpus_legacy/regex.json
360
- - spec/spec_tests/data/corpus_legacy/oid.json
361
317
  - spec/spec_tests/data/corpus_legacy/code.json
362
- - spec/spec_tests/data/corpus_legacy/undefined.json
363
- - spec/spec_tests/data/corpus_legacy/int32.json
364
- - spec/spec_tests/data/corpus_legacy/top.json
365
- - spec/spec_tests/data/corpus_legacy/minkey.json
366
- - spec/spec_tests/data/corpus_legacy/maxkey.json
367
318
  - spec/spec_tests/data/corpus_legacy/code_w_scope.json
319
+ - spec/spec_tests/data/corpus_legacy/document.json
320
+ - spec/spec_tests/data/corpus_legacy/double.json
368
321
  - spec/spec_tests/data/corpus_legacy/failures/datetime.json
369
322
  - spec/spec_tests/data/corpus_legacy/failures/dbpointer.json
370
- - spec/spec_tests/data/corpus_legacy/failures/symbol.json
371
323
  - spec/spec_tests/data/corpus_legacy/failures/int64.json
372
- - spec/support/utils.rb
373
- - spec/support/spec_config.rb
324
+ - spec/spec_tests/data/corpus_legacy/failures/symbol.json
325
+ - spec/spec_tests/data/corpus_legacy/int32.json
326
+ - spec/spec_tests/data/corpus_legacy/maxkey.json
327
+ - spec/spec_tests/data/corpus_legacy/minkey.json
328
+ - spec/spec_tests/data/corpus_legacy/null.json
329
+ - spec/spec_tests/data/corpus_legacy/oid.json
330
+ - spec/spec_tests/data/corpus_legacy/regex.json
331
+ - spec/spec_tests/data/corpus_legacy/string.json
332
+ - spec/spec_tests/data/corpus_legacy/timestamp.json
333
+ - spec/spec_tests/data/corpus_legacy/top.json
334
+ - spec/spec_tests/data/corpus_legacy/undefined.json
335
+ - spec/spec_tests/data/decimal128/decimal128-1.json
336
+ - spec/spec_tests/data/decimal128/decimal128-2.json
337
+ - spec/spec_tests/data/decimal128/decimal128-3.json
338
+ - spec/spec_tests/data/decimal128/decimal128-4.json
339
+ - spec/spec_tests/data/decimal128/decimal128-5.json
340
+ - spec/spec_tests/data/decimal128/decimal128-6.json
341
+ - spec/spec_tests/data/decimal128/decimal128-7.json
374
342
  - spec/support/shared_examples.rb
375
- - spec/shared/LICENSE
376
- - spec/shared/share/Dockerfile.erb
377
- - spec/shared/share/haproxy-2.conf
378
- - spec/shared/share/haproxy-1.conf
379
- - spec/shared/bin/s3-copy
380
- - spec/shared/bin/get-mongodb-download-url
381
- - spec/shared/bin/s3-upload
382
- - spec/shared/shlib/distro.sh
383
- - spec/shared/shlib/set_env.sh
384
- - spec/shared/shlib/server.sh
385
- - spec/shared/lib/mrss/constraints.rb
386
- - spec/shared/lib/mrss/cluster_config.rb
387
- - spec/shared/lib/mrss/child_process_helper.rb
388
- - spec/shared/lib/mrss/event_subscriber.rb
389
- - spec/shared/lib/mrss/utils.rb
390
- - spec/shared/lib/mrss/server_version_registry.rb
391
- - spec/shared/lib/mrss/lite_constraints.rb
392
- - spec/shared/lib/mrss/docker_runner.rb
393
- - spec/shared/lib/mrss/spec_organizer.rb
343
+ - spec/support/spec_config.rb
344
+ - 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