CDRIVER-4657 Prohibit extra fields when matching command
subdocuments
#1297
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
command
subdocuments in the legacy specification test runnervisitor_fn
when matching arraysBackground & Motivation
Prohibit extra fields when matching
command
subdocumentsDescribed in mongodb/specifications#1429. The expected behavior for matching command-started events in the legacy Client-Side Encryption test format is to only allow extra fields at the top level of the
command
document.Example expectation:
Example matching actual event:
Extra fields in the actual event (e.g.
lsid
) are permitted at the top level of thecommand
document. But extra fields are not permitted in nested documents (e.g. an extra field insideencryptedFields
would be considered a mismatch)The C driver permitted allowing extra fields at any level of the command document. This PR adds additional checks to
apm_match_visitor
to prohibit extra fields incommand
subdocuments.