mongo 2.18.0.beta1 → 2.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/mongo/bulk_write.rb +8 -2
  4. data/lib/mongo/client.rb +19 -5
  5. data/lib/mongo/client_encryption.rb +86 -4
  6. data/lib/mongo/cluster.rb +6 -4
  7. data/lib/mongo/collection/view/aggregation.rb +3 -0
  8. data/lib/mongo/collection/view/change_stream.rb +9 -0
  9. data/lib/mongo/collection/view/iterable.rb +1 -0
  10. data/lib/mongo/collection/view/readable.rb +11 -3
  11. data/lib/mongo/collection.rb +9 -1
  12. data/lib/mongo/config.rb +11 -0
  13. data/lib/mongo/crypt/auto_encrypter.rb +49 -21
  14. data/lib/mongo/crypt/binding.rb +73 -48
  15. data/lib/mongo/crypt/data_key_context.rb +6 -1
  16. data/lib/mongo/crypt/encryption_io.rb +66 -0
  17. data/lib/mongo/crypt/explicit_encrypter.rb +116 -5
  18. data/lib/mongo/crypt/explicit_encryption_context.rb +3 -8
  19. data/lib/mongo/crypt/handle.rb +26 -8
  20. data/lib/mongo/crypt/kms/aws.rb +11 -3
  21. data/lib/mongo/crypt/kms/azure.rb +14 -6
  22. data/lib/mongo/crypt/kms/gcp.rb +12 -5
  23. data/lib/mongo/crypt/kms/kmip.rb +15 -9
  24. data/lib/mongo/crypt/kms/local.rb +9 -1
  25. data/lib/mongo/crypt/kms/master_key_document.rb +1 -1
  26. data/lib/mongo/crypt/rewrap_many_data_key_context.rb +46 -0
  27. data/lib/mongo/crypt/rewrap_many_data_key_result.rb +37 -0
  28. data/lib/mongo/crypt/status.rb +8 -2
  29. data/lib/mongo/crypt.rb +2 -0
  30. data/lib/mongo/database.rb +10 -27
  31. data/lib/mongo/error/missing_file_chunk.rb +8 -2
  32. data/lib/mongo/grid/stream/read.rb +6 -0
  33. data/lib/mongo/index/view.rb +1 -0
  34. data/lib/mongo/operation/create/op_msg.rb +1 -13
  35. data/lib/mongo/operation/distinct/op_msg.rb +4 -1
  36. data/lib/mongo/protocol/msg.rb +0 -16
  37. data/lib/mongo/server/connection_pool.rb +5 -4
  38. data/lib/mongo/server/monitor/connection.rb +10 -4
  39. data/lib/mongo/server/monitor.rb +4 -0
  40. data/lib/mongo/server/push_monitor.rb +4 -0
  41. data/lib/mongo/version.rb +1 -1
  42. data/lib/mongo.rb +2 -0
  43. data/spec/README.md +14 -0
  44. data/spec/integration/change_stream_spec.rb +1 -1
  45. data/spec/integration/client_construction_spec.rb +73 -7
  46. data/spec/integration/client_side_encryption/auto_encryption_command_monitoring_spec.rb +165 -164
  47. data/spec/integration/client_side_encryption/decryption_events_prose_spec.rb +158 -0
  48. data/spec/integration/client_side_encryption/explicit_queryable_encryption_spec.rb +5 -5
  49. data/spec/integration/client_side_encryption/kms_tls_options_spec.rb +50 -8
  50. data/spec/integration/client_side_encryption/unique_index_on_key_alt_names_prose_spec.rb +85 -0
  51. data/spec/integration/ocsp_verifier_spec.rb +1 -1
  52. data/spec/integration/reconnect_spec.rb +2 -0
  53. data/spec/integration/sdam_events_spec.rb +40 -0
  54. data/spec/integration/srv_monitoring_spec.rb +1 -0
  55. data/spec/integration/srv_spec.rb +1 -0
  56. data/spec/lite_spec_helper.rb +5 -4
  57. data/spec/mongo/bulk_write_spec.rb +13 -0
  58. data/spec/mongo/client_construction_spec.rb +45 -2
  59. data/spec/mongo/client_encryption_spec.rb +0 -12
  60. data/spec/mongo/client_spec.rb +1 -1
  61. data/spec/mongo/collection/view/aggregation_spec.rb +119 -0
  62. data/spec/mongo/collection/view/readable_spec.rb +630 -5
  63. data/spec/mongo/collection_spec.rb +32 -0
  64. data/spec/mongo/crypt/auto_encrypter_spec.rb +110 -0
  65. data/spec/mongo/crypt/binding/context_spec.rb +3 -35
  66. data/spec/mongo/crypt/data_key_context_spec.rb +1 -1
  67. data/spec/mongo/crypt/explicit_encryption_context_spec.rb +8 -3
  68. data/spec/mongo/crypt/handle_spec.rb +39 -3
  69. data/spec/mongo/crypt/kms/credentials_spec.rb +0 -47
  70. data/spec/mongo/index/view_spec.rb +56 -0
  71. data/spec/mongo/operation/create/op_msg_spec.rb +0 -42
  72. data/spec/mongo/server/connection_pool_spec.rb +26 -4
  73. data/spec/mongo/socket/ssl_spec.rb +3 -3
  74. data/spec/runners/crud/requirement.rb +6 -1
  75. data/spec/runners/crud/test.rb +1 -1
  76. data/spec/runners/transactions/spec.rb +2 -2
  77. data/spec/runners/transactions/test.rb +4 -20
  78. data/spec/runners/transactions.rb +2 -2
  79. data/spec/runners/unified/assertions.rb +32 -2
  80. data/spec/runners/unified/change_stream_operations.rb +3 -0
  81. data/spec/runners/unified/client_side_encryption_operations.rb +83 -0
  82. data/spec/runners/unified/crud_operations.rb +17 -2
  83. data/spec/runners/unified/ddl_operations.rb +27 -2
  84. data/spec/runners/unified/grid_fs_operations.rb +21 -0
  85. data/spec/runners/unified/test.rb +59 -1
  86. data/spec/shared/lib/mrss/docker_runner.rb +2 -0
  87. data/spec/shared/lib/mrss/eg_config_utils.rb +51 -0
  88. data/spec/shared/lib/mrss/lite_constraints.rb +10 -2
  89. data/spec/shared/shlib/set_env.sh +3 -0
  90. data/spec/solo/clean_exit_spec.rb +5 -0
  91. data/spec/spec_tests/client_side_encryption_spec.rb +1 -1
  92. data/spec/spec_tests/client_side_encryption_unified_spec.rb +16 -0
  93. data/spec/spec_tests/data/change_streams_unified/change-streams-showExpandedEvents.yml +298 -0
  94. data/spec/spec_tests/data/client_side_encryption/create-and-createIndexes.yml +58 -0
  95. data/spec/spec_tests/data/client_side_encryption/fle2-Delete.yml +1 -1
  96. data/spec/spec_tests/data/client_side_encryption/fle2-EncryptedFields-vs-jsonSchema.yml +1 -1
  97. data/spec/spec_tests/data/client_side_encryption/fle2-FindOneAndUpdate.yml +2 -2
  98. data/spec/spec_tests/data/client_side_encryption/fle2-InsertFind-Indexed.yml +1 -1
  99. data/spec/spec_tests/data/client_side_encryption/fle2-Update.yml +2 -2
  100. data/spec/spec_tests/data/client_side_encryption/unified/addKeyAltName.yml +194 -0
  101. data/spec/spec_tests/data/client_side_encryption/unified/createDataKey-kms_providers-invalid.yml +67 -0
  102. data/spec/spec_tests/data/client_side_encryption/unified/createDataKey.yml +309 -0
  103. data/spec/spec_tests/data/client_side_encryption/unified/deleteKey.yml +159 -0
  104. data/spec/spec_tests/data/client_side_encryption/unified/getKey.yml +105 -0
  105. data/spec/spec_tests/data/client_side_encryption/unified/getKeyByAltName.yml +104 -0
  106. data/spec/spec_tests/data/client_side_encryption/unified/getKeys.yml +122 -0
  107. data/spec/spec_tests/data/client_side_encryption/unified/removeKeyAltName.yml +157 -0
  108. data/spec/spec_tests/data/client_side_encryption/unified/rewrapManyDataKey-decrypt_failure.yml +69 -0
  109. data/spec/spec_tests/data/client_side_encryption/unified/rewrapManyDataKey-encrypt_failure.yml +122 -0
  110. data/spec/spec_tests/data/client_side_encryption/unified/rewrapManyDataKey.yml +432 -0
  111. data/spec/spec_tests/data/client_side_encryption/validatorAndPartialFieldExpression.yml +166 -0
  112. data/spec/spec_tests/data/command_monitoring_unified/bulkWrite.yml +68 -0
  113. data/spec/spec_tests/data/command_monitoring_unified/command.yml +50 -0
  114. data/spec/spec_tests/data/command_monitoring_unified/deleteMany.yml +79 -0
  115. data/spec/spec_tests/data/command_monitoring_unified/deleteOne.yml +79 -0
  116. data/spec/spec_tests/data/command_monitoring_unified/find.yml +254 -0
  117. data/spec/spec_tests/data/command_monitoring_unified/insertMany.yml +79 -0
  118. data/spec/spec_tests/data/command_monitoring_unified/insertOne.yml +77 -0
  119. data/spec/spec_tests/data/command_monitoring_unified/unacknowledgedBulkWrite.yml +55 -0
  120. data/spec/spec_tests/data/command_monitoring_unified/updateMany.yml +87 -0
  121. data/spec/spec_tests/data/command_monitoring_unified/updateOne.yml +118 -0
  122. data/spec/spec_tests/data/crud_unified/distinct-comment.yml +98 -0
  123. data/spec/spec_tests/data/gridfs_unified/delete.yml +198 -0
  124. data/spec/spec_tests/data/gridfs_unified/download.yml +241 -0
  125. data/spec/spec_tests/data/gridfs_unified/downloadByName.yml +159 -0
  126. data/spec/spec_tests/data/gridfs_unified/upload-disableMD5.yml +92 -0
  127. data/spec/spec_tests/data/gridfs_unified/upload.yml +288 -0
  128. data/spec/spec_tests/gridfs_unified_spec.rb +13 -0
  129. data/spec/stress/connection_pool_timing_spec.rb +2 -2
  130. data/spec/support/background_thread_registry.rb +3 -13
  131. data/spec/support/certificates/atlas-ocsp-ca.crt +40 -47
  132. data/spec/support/certificates/atlas-ocsp.crt +101 -106
  133. data/spec/support/crypt.rb +57 -13
  134. data/spec/support/macros.rb +10 -0
  135. data/spec/support/spec_config.rb +4 -0
  136. data.tar.gz.sig +0 -0
  137. metadata +1271 -1219
  138. metadata.gz.sig +0 -0
  139. data/spec/spec_tests/command_monitoring_spec.rb +0 -71
  140. data/spec/spec_tests/data/command_monitoring/bulkWrite.yml +0 -49
  141. data/spec/spec_tests/data/command_monitoring/command.yml +0 -61
  142. data/spec/spec_tests/data/command_monitoring/deleteMany.yml +0 -55
  143. data/spec/spec_tests/data/command_monitoring/deleteOne.yml +0 -55
  144. data/spec/spec_tests/data/command_monitoring/find.yml +0 -266
  145. data/spec/spec_tests/data/command_monitoring/insertMany.yml +0 -75
  146. data/spec/spec_tests/data/command_monitoring/insertOne.yml +0 -51
  147. data/spec/spec_tests/data/command_monitoring/unacknowledgedBulkWrite.yml +0 -34
  148. data/spec/spec_tests/data/command_monitoring/updateMany.yml +0 -65
  149. data/spec/spec_tests/data/command_monitoring/updateOne.yml +0 -90
@@ -0,0 +1,288 @@
1
+ description: "gridfs-upload"
2
+
3
+ schemaVersion: "1.0"
4
+
5
+ createEntities:
6
+ - client:
7
+ id: &client0 client0
8
+ - database:
9
+ id: &database0 database0
10
+ client: *client0
11
+ databaseName: &database0Name gridfs-tests
12
+ - bucket:
13
+ id: &bucket0 bucket0
14
+ database: *database0
15
+ - collection:
16
+ id: &bucket0_files_collection bucket0_files_collection
17
+ database: *database0
18
+ collectionName: &bucket0_files_collectionName fs.files
19
+ - collection:
20
+ id: &bucket0_chunks_collection bucket0_chunks_collection
21
+ database: *database0
22
+ collectionName: &bucket0_chunks_collectionName fs.chunks
23
+
24
+ initialData:
25
+ - collectionName: *bucket0_files_collectionName
26
+ databaseName: *database0Name
27
+ documents: []
28
+ - collectionName: *bucket0_chunks_collectionName
29
+ databaseName: *database0Name
30
+ documents: []
31
+
32
+ # Note: Uploaded files and chunks include ObjectIds, which we cannot match with
33
+ # "outcome" since it does not allow operators. Instead, these tests will use
34
+ # find operations to assert the contents of uploaded files and chunks.
35
+ tests:
36
+ - description: "upload when length is 0"
37
+ operations:
38
+ - name: upload
39
+ object: *bucket0
40
+ arguments:
41
+ filename: "filename"
42
+ source: { $$hexBytes: "" }
43
+ chunkSizeBytes: 4
44
+ expectResult: { $$type: objectId }
45
+ saveResultAsEntity: &uploadedObjectId uploadedObjectId
46
+ - name: find
47
+ object: *bucket0_files_collection
48
+ arguments:
49
+ filter: {}
50
+ expectResult:
51
+ - _id: { $$matchesEntity: *uploadedObjectId }
52
+ length: 0
53
+ chunkSize: 4
54
+ uploadDate: { $$type: date }
55
+ # The md5 field is deprecated so some drivers do not calculate it when uploading files.
56
+ md5: { $$unsetOrMatches: "d41d8cd98f00b204e9800998ecf8427e" }
57
+ filename: filename
58
+ - name: find
59
+ object: *bucket0_chunks_collection
60
+ arguments:
61
+ filter: {}
62
+ expectResult: []
63
+ - description: "upload when length is 1"
64
+ operations:
65
+ - name: upload
66
+ object: *bucket0
67
+ arguments:
68
+ filename: "filename"
69
+ source: { $$hexBytes: "11" }
70
+ chunkSizeBytes: 4
71
+ expectResult: { $$type: objectId }
72
+ saveResultAsEntity: *uploadedObjectId
73
+ - name: find
74
+ object: *bucket0_files_collection
75
+ arguments:
76
+ filter: {}
77
+ expectResult:
78
+ - _id: { $$matchesEntity: *uploadedObjectId }
79
+ length: 1
80
+ chunkSize: 4
81
+ uploadDate: { $$type: date }
82
+ md5: { $$unsetOrMatches: "47ed733b8d10be225eceba344d533586" }
83
+ filename: filename
84
+ - name: find
85
+ object: *bucket0_chunks_collection
86
+ arguments:
87
+ filter: {}
88
+ expectResult:
89
+ - _id: { $$type: objectId }
90
+ files_id: { $$matchesEntity: *uploadedObjectId }
91
+ n: 0
92
+ data: { $binary: { base64: "EQ==", subType: "00" } } # hex 11
93
+ - description: "upload when length is 3"
94
+ operations:
95
+ - name: upload
96
+ object: *bucket0
97
+ arguments:
98
+ filename: "filename"
99
+ source: { $$hexBytes: "112233" }
100
+ chunkSizeBytes: 4
101
+ expectResult: { $$type: objectId }
102
+ saveResultAsEntity: *uploadedObjectId
103
+ - name: find
104
+ object: *bucket0_files_collection
105
+ arguments:
106
+ filter: {}
107
+ expectResult:
108
+ - _id: { $$matchesEntity: *uploadedObjectId }
109
+ length: 3
110
+ chunkSize: 4
111
+ uploadDate: { $$type: date }
112
+ md5: { $$unsetOrMatches: "bafae3a174ab91fc70db7a6aa50f4f52" }
113
+ filename: filename
114
+ - name: find
115
+ object: *bucket0_chunks_collection
116
+ arguments:
117
+ filter: {}
118
+ expectResult:
119
+ - _id: { $$type: objectId }
120
+ files_id: { $$matchesEntity: *uploadedObjectId }
121
+ n: 0
122
+ data: { $binary: { base64: "ESIz", subType: "00" } } # hex 112233
123
+ - description: "upload when length is 4"
124
+ operations:
125
+ - name: upload
126
+ object: *bucket0
127
+ arguments:
128
+ filename: "filename"
129
+ source: { $$hexBytes: "11223344" }
130
+ chunkSizeBytes: 4
131
+ expectResult: { $$type: objectId }
132
+ saveResultAsEntity: *uploadedObjectId
133
+ - name: find
134
+ object: *bucket0_files_collection
135
+ arguments:
136
+ filter: {}
137
+ expectResult:
138
+ - _id: { $$matchesEntity: *uploadedObjectId }
139
+ length: 4
140
+ chunkSize: 4
141
+ uploadDate: { $$type: date }
142
+ md5: { $$unsetOrMatches: "7e7c77cff5705d1f7574a25ef6662117" }
143
+ filename: filename
144
+ - name: find
145
+ object: *bucket0_chunks_collection
146
+ arguments:
147
+ filter: {}
148
+ expectResult:
149
+ - _id: { $$type: objectId }
150
+ files_id: { $$matchesEntity: *uploadedObjectId }
151
+ n: 0
152
+ data: { $binary: { base64: "ESIzRA==", subType: "00" } } # hex 11223344
153
+ - description: "upload when length is 5"
154
+ operations:
155
+ - name: upload
156
+ object: *bucket0
157
+ arguments:
158
+ filename: filename
159
+ source: { $$hexBytes: "1122334455" }
160
+ chunkSizeBytes: 4
161
+ expectResult: { $$type: objectId }
162
+ saveResultAsEntity: *uploadedObjectId
163
+ - name: find
164
+ object: *bucket0_files_collection
165
+ arguments:
166
+ filter: {}
167
+ expectResult:
168
+ - _id: { $$matchesEntity: *uploadedObjectId }
169
+ length: 5
170
+ chunkSize: 4
171
+ uploadDate: { $$type: date }
172
+ md5: { $$unsetOrMatches: "283d4fea5dded59cf837d3047328f5af" }
173
+ filename: filename
174
+ - name: find
175
+ object: *bucket0_chunks_collection
176
+ arguments:
177
+ filter: {}
178
+ # Sort to ensure chunks are returned in a deterministic order
179
+ sort: { n: 1 }
180
+ expectResult:
181
+ - _id: { $$type: objectId }
182
+ files_id: { $$matchesEntity: *uploadedObjectId }
183
+ n: 0
184
+ data: { $binary: { base64: "ESIzRA==", subType: "00" } } # hex 11223344
185
+ - _id: { $$type: objectId }
186
+ files_id: { $$matchesEntity: *uploadedObjectId }
187
+ n: 1
188
+ data: { $binary: { base64: "VQ==", subType: "00" } } # hex 55
189
+ - description: "upload when length is 8"
190
+ operations:
191
+ - name: upload
192
+ object: *bucket0
193
+ arguments:
194
+ filename: filename
195
+ source: { $$hexBytes: "1122334455667788" }
196
+ chunkSizeBytes: 4
197
+ expectResult: { $$type: objectId }
198
+ saveResultAsEntity: *uploadedObjectId
199
+ - name: find
200
+ object: *bucket0_files_collection
201
+ arguments:
202
+ filter: {}
203
+ expectResult:
204
+ - _id: { $$matchesEntity: *uploadedObjectId }
205
+ length: 8
206
+ chunkSize: 4
207
+ uploadDate: { $$type: date }
208
+ md5: { $$unsetOrMatches: "dd254cdc958e53abaa67da9f797125f5" }
209
+ filename: filename
210
+ - name: find
211
+ object: *bucket0_chunks_collection
212
+ arguments:
213
+ filter: {}
214
+ # Sort to ensure chunks are returned in a deterministic order
215
+ sort: { n: 1 }
216
+ expectResult:
217
+ - _id: { $$type: objectId }
218
+ files_id: { $$matchesEntity: *uploadedObjectId }
219
+ n: 0
220
+ data: { $binary: { base64: "ESIzRA==", subType: "00" } } # hex 11223344
221
+ - _id: { $$type: objectId }
222
+ files_id: { $$matchesEntity: *uploadedObjectId }
223
+ n: 1
224
+ data: { $binary: { base64: "VWZ3iA==", subType: "00" } } # hex 55667788
225
+ - description: "upload when contentType is provided"
226
+ operations:
227
+ - name: upload
228
+ object: *bucket0
229
+ arguments:
230
+ filename: "filename"
231
+ source: { $$hexBytes: "11" }
232
+ chunkSizeBytes: 4
233
+ contentType: "image/jpeg"
234
+ expectResult: { $$type: objectId }
235
+ saveResultAsEntity: *uploadedObjectId
236
+ - name: find
237
+ object: *bucket0_files_collection
238
+ arguments:
239
+ filter: {}
240
+ expectResult:
241
+ - _id: { $$matchesEntity: *uploadedObjectId }
242
+ length: 1
243
+ chunkSize: 4
244
+ uploadDate: { $$type: date }
245
+ md5: { $$unsetOrMatches: "47ed733b8d10be225eceba344d533586" }
246
+ filename: filename
247
+ contentType: "image/jpeg"
248
+ - name: find
249
+ object: *bucket0_chunks_collection
250
+ arguments:
251
+ filter: {}
252
+ expectResult:
253
+ - _id: { $$type: objectId }
254
+ files_id: { $$matchesEntity: *uploadedObjectId }
255
+ n: 0
256
+ data: { $binary: { base64: "EQ==", subType: "00" } } # hex 11
257
+ - description: "upload when metadata is provided"
258
+ operations:
259
+ - name: upload
260
+ object: *bucket0
261
+ arguments:
262
+ filename: "filename"
263
+ source: { $$hexBytes: "11" }
264
+ chunkSizeBytes: 4
265
+ metadata: { x: 1 }
266
+ expectResult: { $$type: objectId }
267
+ saveResultAsEntity: *uploadedObjectId
268
+ - name: find
269
+ object: *bucket0_files_collection
270
+ arguments:
271
+ filter: {}
272
+ expectResult:
273
+ - _id: { $$matchesEntity: *uploadedObjectId }
274
+ length: 1
275
+ chunkSize: 4
276
+ uploadDate: { $$type: date }
277
+ md5: { $$unsetOrMatches: "47ed733b8d10be225eceba344d533586" }
278
+ filename: filename
279
+ metadata: { x: 1 }
280
+ - name: find
281
+ object: *bucket0_chunks_collection
282
+ arguments:
283
+ filter: {}
284
+ expectResult:
285
+ - _id: { $$type: objectId }
286
+ files_id: { $$matchesEntity: *uploadedObjectId }
287
+ n: 0
288
+ data: { $binary: { base64: "EQ==", subType: "00" } } # hex 11
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ require 'spec_helper'
5
+
6
+ require 'runners/unified'
7
+
8
+ base = "#{CURRENT_PATH}/spec_tests/data/gridfs_unified"
9
+ GRIDFS_UNIFIED_TESTS = Dir.glob("#{base}/**/*.yml").sort
10
+
11
+ describe 'GridFS unified spec tests' do
12
+ define_unified_spec_tests(base, GRIDFS_UNIFIED_TESTS)
13
+ end
@@ -25,7 +25,7 @@ describe 'Connection pool timing test' do
25
25
  end
26
26
 
27
27
  let(:client) do
28
- authorized_client.with(options.merge(monitoring: true))
28
+ authorized_client.with(options.merge(monitoring_io: true))
29
29
  end
30
30
 
31
31
  let!(:collection) do
@@ -169,7 +169,7 @@ describe 'Connection pool timing test' do
169
169
  # On JRuby, sometimes the following error is produced indicating
170
170
  # possible data corruption or an interpreter bug:
171
171
  # RSpec::Expectations::ExpectationNotMetError: expected no Exception, got #<Mongo::Error::OperationFailure: Invalid ns [ruby-driver.] (73) (on localhost:27018, modern retry, attempt 1) (on localhost:27018, modern retry, attempt 1)>
172
- retry_test (BSON::Environment.jruby? ? 3 : 1)
172
+ retry_test tries: (BSON::Environment.jruby? ? 3 : 1)
173
173
  it 'does not error' do
174
174
  threads
175
175
  start = Time.now
@@ -30,7 +30,8 @@ class BackgroundThreadRegistry
30
30
  @records << OpenStruct.new(
31
31
  thread: thread,
32
32
  object: object,
33
- example: $current_example,
33
+ # When rake spec:prepare is run, the current_example method is not defined
34
+ example: RSpec.respond_to?(:current_example) ? RSpec.current_example : nil,
34
35
  )
35
36
  end
36
37
  end
@@ -46,7 +47,7 @@ class BackgroundThreadRegistry
46
47
  msg << "\n with options: #{record.object.options}"
47
48
  end
48
49
  if record.example
49
- msg << "\n in #{record.example.id} #{record.example.full_description}"
50
+ msg << "\n in #{record.example.id}: #{record.example.full_description}"
50
51
  else
51
52
  msg << "\n not in an example"
52
53
  end
@@ -57,14 +58,3 @@ class BackgroundThreadRegistry
57
58
  end
58
59
  end
59
60
  end
60
-
61
- RSpec.configure do |config|
62
- config.around do |example|
63
- $current_example = example
64
- begin
65
- example.run
66
- ensure
67
- $current_example = nil
68
- end
69
- end
70
- end
@@ -2,16 +2,16 @@ Certificate:
2
2
  Data:
3
3
  Version: 3 (0x2)
4
4
  Serial Number:
5
- 0a:35:08:d5:5c:29:2b:01:7d:f8:ad:65:c0:0f:f7:e4
5
+ 06:d8:d9:04:d5:58:43:46:f6:8a:2f:a7:54:22:7e:c4
6
6
  Signature Algorithm: sha256WithRSAEncryption
7
7
  Issuer: C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
8
8
  Validity
9
- Not Before: Sep 24 00:00:00 2020 GMT
10
- Not After : Sep 23 23:59:59 2030 GMT
9
+ Not Before: Apr 14 00:00:00 2021 GMT
10
+ Not After : Apr 13 23:59:59 2031 GMT
11
11
  Subject: C = US, O = DigiCert Inc, CN = DigiCert TLS RSA SHA256 2020 CA1
12
12
  Subject Public Key Info:
13
13
  Public Key Algorithm: rsaEncryption
14
- RSA Public-Key: (2048 bit)
14
+ Public-Key: (2048 bit)
15
15
  Modulus:
16
16
  00:c1:4b:b3:65:47:70:bc:dd:4f:58:db:ec:9c:ed:
17
17
  c3:66:e5:1f:31:13:54:ad:4a:66:46:1f:2c:0a:ec:
@@ -33,57 +33,51 @@ Certificate:
33
33
  99:f5
34
34
  Exponent: 65537 (0x10001)
35
35
  X509v3 extensions:
36
+ X509v3 Basic Constraints: critical
37
+ CA:TRUE, pathlen:0
36
38
  X509v3 Subject Key Identifier:
37
39
  B7:6B:A2:EA:A8:AA:84:8C:79:EA:B4:DA:0F:98:B2:C5:95:76:B9:F4
38
40
  X509v3 Authority Key Identifier:
39
- keyid:03:DE:50:35:56:D1:4C:BB:66:F0:A3:E2:1B:1B:C3:97:B2:3D:D1:55
40
-
41
+ 03:DE:50:35:56:D1:4C:BB:66:F0:A3:E2:1B:1B:C3:97:B2:3D:D1:55
41
42
  X509v3 Key Usage: critical
42
43
  Digital Signature, Certificate Sign, CRL Sign
43
44
  X509v3 Extended Key Usage:
44
45
  TLS Web Server Authentication, TLS Web Client Authentication
45
- X509v3 Basic Constraints: critical
46
- CA:TRUE, pathlen:0
47
46
  Authority Information Access:
48
47
  OCSP - URI:http://ocsp.digicert.com
49
48
  CA Issuers - URI:http://cacerts.digicert.com/DigiCertGlobalRootCA.crt
50
-
51
49
  X509v3 CRL Distribution Points:
52
-
53
50
  Full Name:
54
51
  URI:http://crl3.digicert.com/DigiCertGlobalRootCA.crl
55
-
56
- Full Name:
57
- URI:http://crl4.digicert.com/DigiCertGlobalRootCA.crl
58
-
59
52
  X509v3 Certificate Policies:
53
+ Policy: 2.16.840.1.114412.2.1
60
54
  Policy: 2.23.140.1.1
61
55
  Policy: 2.23.140.1.2.1
62
56
  Policy: 2.23.140.1.2.2
63
57
  Policy: 2.23.140.1.2.3
64
-
65
58
  Signature Algorithm: sha256WithRSAEncryption
66
- 77:ab:b7:7a:27:3d:ae:bb:f6:7f:e0:5a:56:c9:84:aa:ca:5b:
67
- 71:17:dd:22:47:fc:4e:9f:ee:d0:c1:a4:04:e1:a3:eb:c5:49:
68
- c1:fd:d1:c9:df:8c:af:94:45:2c:46:2a:a3:63:39:20:f9:9e:
69
- 4a:24:94:41:c8:a9:d9:e2:9c:54:05:06:cb:5c:1c:be:00:1b:
70
- 0f:a8:5a:ff:19:bb:65:c7:16:af:21:56:dd:61:05:c9:e9:8f:
71
- 98:76:df:6b:1b:d0:72:0c:50:b9:30:29:7a:bf:60:59:10:66:
72
- 13:3a:2d:ac:15:11:6c:2d:23:0c:02:3e:05:3b:fe:e5:a1:9c:
73
- e2:8a:db:87:d7:4a:e8:5e:e7:48:06:eb:ab:12:9a:f2:af:84:
74
- c3:5b:83:4a:99:81:83:ab:00:a1:ca:0a:3c:4c:a2:25:89:2a:
75
- 22:a7:a4:f3:33:4c:5b:8c:2e:1a:02:97:0f:9d:8f:6d:2d:95:
76
- 08:fb:4f:da:f1:91:38:25:e1:9c:6e:61:18:87:6a:ce:b1:bb:
77
- 00:30:6a:9b:b7:af:da:f1:c5:97:fe:8a:78:24:aa:ea:93:80:
78
- ba:33:65:7a:bc:a1:77:e9:7f:69:14:0b:00:3f:77:92:b1:4d:
79
- 5b:73:87:0a:13:d0:9c:c8:f2:4b:39:4f:52:84:49:a6:4c:90:
80
- 4e:1f:f7:b4
59
+ Signature Value:
60
+ 80:32:ce:5e:0b:dd:6e:5a:0d:0a:af:e1:d6:84:cb:c0:8e:fa:
61
+ 85:70:ed:da:5d:b3:0c:f7:2b:75:40:fe:85:0a:fa:f3:31:78:
62
+ b7:70:4b:1a:89:58:ba:80:bd:f3:6b:1d:e9:7e:cf:0b:ba:58:
63
+ 9c:59:d4:90:d3:fd:6c:fd:d0:98:6d:b7:71:82:5b:cf:6d:0b:
64
+ 5a:09:d0:7b:de:c4:43:d8:2a:a4:de:9e:41:26:5f:bb:8f:99:
65
+ cb:dd:ae:e1:a8:6f:9f:87:fe:74:b7:1f:1b:20:ab:b1:4f:c6:
66
+ f5:67:5d:5d:9b:3c:e9:ff:69:f7:61:6c:d6:d9:f3:fd:36:c6:
67
+ ab:03:88:76:d2:4b:2e:75:86:e3:fc:d8:55:7d:26:c2:11:77:
68
+ df:3e:02:b6:7c:f3:ab:7b:7a:86:36:6f:b8:f7:d8:93:71:cf:
69
+ 86:df:73:30:fa:7b:ab:ed:2a:59:c8:42:84:3b:11:17:1a:52:
70
+ f3:c9:0e:14:7d:a2:5b:72:67:ba:71:ed:57:47:66:c5:b8:02:
71
+ 4a:65:34:5e:8b:d0:2a:3c:20:9c:51:99:4c:e7:52:9e:f7:6b:
72
+ 11:2b:0d:92:7e:1d:e8:8a:eb:36:16:43:87:ea:2a:63:bf:75:
73
+ 3f:eb:de:c4:03:bb:0a:3c:f7:30:ef:eb:af:4c:fc:8b:36:10:
74
+ 73:3e:f3:a4
81
75
 
82
76
  -----BEGIN CERTIFICATE-----
83
- MIIE6jCCA9KgAwIBAgIQCjUI1VwpKwF9+K1lwA/35DANBgkqhkiG9w0BAQsFADBh
77
+ MIIEvjCCA6agAwIBAgIQBtjZBNVYQ0b2ii+nVCJ+xDANBgkqhkiG9w0BAQsFADBh
84
78
  MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
85
79
  d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
86
- QTAeFw0yMDA5MjQwMDAwMDBaFw0zMDA5MjMyMzU5NTlaME8xCzAJBgNVBAYTAlVT
80
+ QTAeFw0yMTA0MTQwMDAwMDBaFw0zMTA0MTMyMzU5NTlaME8xCzAJBgNVBAYTAlVT
87
81
  MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxKTAnBgNVBAMTIERpZ2lDZXJ0IFRMUyBS
88
82
  U0EgU0hBMjU2IDIwMjAgQ0ExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
89
83
  AQEAwUuzZUdwvN1PWNvsnO3DZuUfMRNUrUpmRh8sCuxkB+Uu3Ny5CiDt3+PE0J6a
@@ -91,20 +85,19 @@ qXodgojlEVbbHp9YwlHnLDQNLtKS4VbL8Xlfs7uHyiUDe5pSQWYQYE9XE0nw6Ddn
91
85
  g9/n00tnTCJRpt8OmRDtV1F0JuJ9x8piLhMbfyOIJVNvwTRYAIuE//i+p1hJInuW
92
86
  raKImxW8oHzf6VGo1bDtN+I2tIJLYrVJmuzHZ9bjPvXj1hJeRPG/cUJ9WIQDgLGB
93
87
  Afr5yjK7tI4nhyfFK3TUqNaX3sNk+crOU6JWvHgXjkkDKa77SU+kFbnO8lwZV21r
94
- eacroicgE7XQPUDTITAHk+qZ9QIDAQABo4IBrjCCAaowHQYDVR0OBBYEFLdrouqo
95
- qoSMeeq02g+YssWVdrn0MB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFV
96
- MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
97
- EgYDVR0TAQH/BAgwBgEB/wIBADB2BggrBgEFBQcBAQRqMGgwJAYIKwYBBQUHMAGG
88
+ eacroicgE7XQPUDTITAHk+qZ9QIDAQABo4IBgjCCAX4wEgYDVR0TAQH/BAgwBgEB
89
+ /wIBADAdBgNVHQ4EFgQUt2ui6qiqhIx56rTaD5iyxZV2ufQwHwYDVR0jBBgwFoAU
90
+ A95QNVbRTLtm8KPiGxvDl7I90VUwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQG
91
+ CCsGAQUFBwMBBggrBgEFBQcDAjB2BggrBgEFBQcBAQRqMGgwJAYIKwYBBQUHMAGG
98
92
  GGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0aHR0cDovL2Nh
99
- Y2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNydDB7BgNV
100
- HR8EdDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRH
101
- bG9iYWxSb290Q0EuY3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20v
102
- RGlnaUNlcnRHbG9iYWxSb290Q0EuY3JsMDAGA1UdIAQpMCcwBwYFZ4EMAQEwCAYG
103
- Z4EMAQIBMAgGBmeBDAECAjAIBgZngQwBAgMwDQYJKoZIhvcNAQELBQADggEBAHer
104
- t3onPa679n/gWlbJhKrKW3EX3SJH/E6f7tDBpATho+vFScH90cnfjK+URSxGKqNj
105
- OSD5nkoklEHIqdninFQFBstcHL4AGw+oWv8Zu2XHFq8hVt1hBcnpj5h232sb0HIM
106
- ULkwKXq/YFkQZhM6LawVEWwtIwwCPgU7/uWhnOKK24fXSuhe50gG66sSmvKvhMNb
107
- g0qZgYOrAKHKCjxMoiWJKiKnpPMzTFuMLhoClw+dj20tlQj7T9rxkTgl4ZxuYRiH
108
- as6xuwAwapu3r9rxxZf+ingkquqTgLozZXq8oXfpf2kUCwA/d5KxTVtzhwoT0JzI
109
- 8ks5T1KESaZMkE4f97Q=
93
+ Y2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNydDBCBgNV
94
+ HR8EOzA5MDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRH
95
+ bG9iYWxSb290Q0EuY3JsMD0GA1UdIAQ2MDQwCwYJYIZIAYb9bAIBMAcGBWeBDAEB
96
+ MAgGBmeBDAECATAIBgZngQwBAgIwCAYGZ4EMAQIDMA0GCSqGSIb3DQEBCwUAA4IB
97
+ AQCAMs5eC91uWg0Kr+HWhMvAjvqFcO3aXbMM9yt1QP6FCvrzMXi3cEsaiVi6gL3z
98
+ ax3pfs8LulicWdSQ0/1s/dCYbbdxglvPbQtaCdB73sRD2Cqk3p5BJl+7j5nL3a7h
99
+ qG+fh/50tx8bIKuxT8b1Z11dmzzp/2n3YWzW2fP9NsarA4h20ksudYbj/NhVfSbC
100
+ EXffPgK2fPOre3qGNm+499iTcc+G33Mw+nur7SpZyEKEOxEXGlLzyQ4UfaJbcme6
101
+ ce1XR2bFuAJKZTRei9AqPCCcUZlM51Ke92sRKw2Sfh3oius2FkOH6ipjv3U/697E
102
+ A7sKPPcw7+uvTPyLNhBzPvOk
110
103
  -----END CERTIFICATE-----