Skip to content

Commit

Permalink
DRIVERS-2776 test compact with "range" (#1605)
Browse files Browse the repository at this point in the history
* expect `ok: 1` in result

To ensure the test runner asserts no error.

* note bug in test

* add test for compact with range

* regenerate spec tests
  • Loading branch information
kevinAlbs committed Aug 1, 2024
1 parent 89edd81 commit 06bceb0
Show file tree
Hide file tree
Showing 6 changed files with 484 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Requires libmongocrypt 1.8.0.
# Requires libmongocrypt 1.8.0. libmongocrypt 1.10.0 has a bug (MONGOCRYPT-699) that may cause this test to fail on server version 7.
runOn:
- minServerVersion: "7.0.0"
# Skip QEv2 (also referred to as FLE2v2) tests on Serverless. Unskip once Serverless enables the QEv2 protocol.
Expand All @@ -22,6 +22,8 @@ tests:
arguments:
command:
compactStructuredEncryptionData: *collection_name
result:
ok: 1
expectations:
- command_started_event:
command:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Requires libmongocrypt 1.10.1.
runOn:
- minServerVersion: "8.0.0" # Require range v2 support on server.
# FLE 2 Encrypted collections are not supported on standalone.
topology: [ "replicaset", "sharded", "load-balanced" ]
database_name: "default"
collection_name: &collection_name "default"
data: []
encrypted_fields: &encrypted_fields {{ yamlfile("range-encryptedFields-Int.json") }}
key_vault_data: [ {{ yamlfile("keys/key1-document.json") }} ]
tests:
- description: "Compact works with 'range' fields"
clientOptions:
autoEncryptOpts:
kmsProviders:
local: {{ local_provider() }}
operations:
# Insert before running compact to ensure the server errors if `encryptionInformation` is incorrectly omitted.
- name: insertOne
arguments:
document: { _id: 0, encryptedInt: { $numberInt: "0" } }
- name: runCommand
object: database
command_name: compactStructuredEncryptionData
arguments:
command:
compactStructuredEncryptionData: *collection_name
result:
ok: 1
expectations:
- command_started_event:
command:
listCollections: 1
filter:
name: *collection_name
command_name: listCollections
- command_started_event:
command:
find: datakeys
filter: {
"$or": [
{
"_id": {
"$in": [
{{ yamlfile("keys/key1-id.json") }}
]
}
},
{
"keyAltNames": {
"$in": []
}
}
]
}
$db: keyvault
readConcern: { level: "majority" }
command_name: find
- command_started_event:
command:
insert: *collection_name
documents:
- { "_id": 0, "encryptedInt": { $$type: "binData" } }
ordered: true
encryptionInformation: &encryptionInformation
type: 1
schema:
default.default:
# libmongocrypt applies escCollection and ecocCollection to outgoing command.
escCollection: "enxcol_.default.esc"
ecocCollection: "enxcol_.default.ecoc"
<<: *encrypted_fields
command_name: insert
- command_started_event:
command:
compactStructuredEncryptionData: *collection_name
compactionTokens:
"encryptedInt": {
"ecoc": {
"$binary": {
"base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
"subType": "00"
}
},
"anchorPaddingToken": {
"$binary": {
"base64": "QxKJD2If48p0l8NAXf2Kr0aleMd/dATSjBK6hTpNMyc=",
"subType": "00"
}
}
}
encryptionInformation: *encryptionInformation
command_name: compactStructuredEncryptionData

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Requires libmongocrypt 1.8.0.
# Requires libmongocrypt 1.8.0. libmongocrypt 1.10.0 has a bug (MONGOCRYPT-699) that may cause this test to fail on server version 7.
runOn:
- minServerVersion: "7.0.0"
# Skip QEv2 (also referred to as FLE2v2) tests on Serverless. Unskip once Serverless enables the QEv2 protocol.
Expand All @@ -22,6 +22,8 @@ tests:
arguments:
command:
compactStructuredEncryptionData: *collection_name
result:
ok: 1
expectations:
- command_started_event:
command:
Expand Down
Loading

0 comments on commit 06bceb0

Please sign in to comment.