summaryrefslogtreecommitdiff
path: root/buildscripts/idl/tests/compatibility_test_pass/old/compatibility_test_pass_old.idl
diff options
context:
space:
mode:
authorVesselina Ratcheva <vesselina.ratcheva@10gen.com>2022-06-23 21:55:23 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-06-23 22:26:32 +0000
commit835f85779c753dfefea25e92bc9224b4642a6d06 (patch)
tree57f047543a4ee2a6532eb6b1082a526394380ec7 /buildscripts/idl/tests/compatibility_test_pass/old/compatibility_test_pass_old.idl
parent536da1a22b8ca5cc1caaade7328404144bf44be6 (diff)
downloadmongo-835f85779c753dfefea25e92bc9224b4642a6d06.tar.gz
SERVER-64089 Ignore checking fields in IGNORE_UNSTABLE_LIST in IDL compatibility checker
Diffstat (limited to 'buildscripts/idl/tests/compatibility_test_pass/old/compatibility_test_pass_old.idl')
-rw-r--r--buildscripts/idl/tests/compatibility_test_pass/old/compatibility_test_pass_old.idl233
1 files changed, 233 insertions, 0 deletions
diff --git a/buildscripts/idl/tests/compatibility_test_pass/old/compatibility_test_pass_old.idl b/buildscripts/idl/tests/compatibility_test_pass/old/compatibility_test_pass_old.idl
index 704ea71b0a1..f442e45a20e 100644
--- a/buildscripts/idl/tests/compatibility_test_pass/old/compatibility_test_pass_old.idl
+++ b/buildscripts/idl/tests/compatibility_test_pass/old/compatibility_test_pass_old.idl
@@ -101,6 +101,22 @@ structs:
type: string
unstable: true
+ UnstableNewFieldReplyIgnoreList:
+ description: "This reply contains a field that is stable in the old command and is
+ unstable in the new command, but the change is explicitly allowed."
+ fields:
+ unstableNewFieldIgnoreList:
+ type: string
+ unstable: false
+
+ NewReplyTypeEnumOrStructIgnoreList:
+ description: "the type is a non-enum or struct type in the old command, and an enum or struct
+ in the new command, but the change is explicitly allowed"
+ fields:
+ newReplyTypeEnumOrStructIgnoreList:
+ type: string
+ unstable: false
+
RequiredNewFieldReply:
description: "This reply contains a field that is optional in the old command but is
required in the new command."
@@ -129,6 +145,14 @@ structs:
type: string
unstable: true
+ UnstableOptionalNewFieldReplyIgnoreList:
+ description: "This reply contains a field that is stable in the old command and is
+ unstable and optional in the new command, but the change is allowed"
+ fields:
+ unstableOptionalNewFieldIgnoreList:
+ unstable: false
+ type: string
+
EnumSubsetReply:
description: "This reply contains an enum field where the new enum values is a subset
of the old reply type's enum values"
@@ -153,6 +177,14 @@ structs:
type: intStringBoolToIntString
unstable: false
+ StructFieldTypeRecursiveReplyIgnoreList:
+ description: "This reply contains a field whose new type is a struct that is not
+ compatible with the old field type, but this is explicitly allowed"
+ fields:
+ structReplyField:
+ type: UnstableNewFieldReplyIgnoreList
+ unstable: false
+
StructFieldTypeRecursiveReplyOne:
description: "This reply contains a field whose new type is a struct that is
compatible with the old field type"
@@ -177,6 +209,14 @@ structs:
type: BsonSubsetReply
unstable: false
+ StructTypeUnstable:
+ description: "This struct contains a field whose new type is compatible with the
+ old field type and is unstable in both the old and new versions"
+ fields:
+ fieldOne:
+ type: BsonSubsetReply
+ unstable: true
+
OldVariantTypeReply:
description: "This reply contains an old field that has a variant type while the new field
is not a variant type"
@@ -186,6 +226,15 @@ structs:
type:
variant: [int, string, array<string>]
+ NewVariantNotSubsetReplyIgnoreList:
+ description: "This reply contains a field whose new variant types are not a subset
+ of the old variant types"
+ fields:
+ variantNotSubsetReplyFieldIgnoreList:
+ unstable: false
+ type:
+ variant: [int, bool, string]
+
NewVariantSubsetReply:
description: "This reply contains a field whose new variant types are a subset
of the old variant types"
@@ -233,6 +282,31 @@ structs:
variant: [int, StructFieldTypeRecursiveReplyTwo,
array<StructFieldTypeRecursiveReplyTwo>, array<string>]
+ VariantDifferentStructReplyIgnoreList:
+ description: "This reply contains a field that has a new variant struct type that is
+ different from the old variant struct type"
+ fields:
+ variantStructRecursiveReplyFieldIgnoreList:
+ unstable: false
+ type:
+ variant: [int, StructFieldTypeRecursiveReplyOne]
+
+ NonVariantToVariantReplyIgnoreList:
+ description: "This reply contains a field that changes from a non-variant type to a variant
+ type, but the field is in the ignore list"
+ fields:
+ nonVariantToVariantReplyFieldIgnoreList:
+ unstable: false
+ type: StructType
+
+ NonEnumToEnumReplyIgnoreList:
+ description: "This reply contains a field that changes from a non-enum type to an enum
+ type, but the field is in the ignore list"
+ fields:
+ nonEnumToEnumReplyIgnoreList:
+ type: StructTypeUnstable
+ unstable: false
+
NewCommandParameterStruct:
description: "The new command parameter's type and the
old command parameter's type are both structs"
@@ -396,6 +470,15 @@ structs:
unstable: true
type: intStringToIntStringBool
+ NewUnstableTypeChangesReplyIgnoreList:
+ description: "This reply contains a field that is stable in the old version and has type changes,
+ but is also in the ignore list"
+ fields:
+ newUnstableTypeChangesReplyFieldIgnoreList:
+ unstable: false
+ type: intStringToIntStringBool
+ optional: true
+
NewlyAddedBsonSerializationTypeAnyStruct:
description: "This struct contains a newly added field whose type has a bson_serialization_type
that contains 'any' that is explicitly allowed"
@@ -407,6 +490,15 @@ structs:
unstable: true
type: intStringBoolToIntString
+ NewUnstableTypeChangesStructIgnoreList:
+ description: "This struct contains a field that is stable in the old version and has type,
+ changes but is also in the ignore list"
+ fields:
+ newUnstableTypeChangesFieldIgnoreList:
+ type: intStringBoolToIntString
+ unstable: false
+ optional: true
+
BsonSerializationTypeAnyWithVariantReply:
description: "This reply contains a new reply field with variant types where one of the
bson serialization types is 'any' and is explicitly allowed"
@@ -577,6 +669,20 @@ commands:
type: string
unstable: true
+ commandParameterUnstableIgnoreList:
+ description: "new unstable command parameter is stable in the corresponding old
+ command, but the change is explcitly allowed"
+ command_name: commandParameterUnstableIgnoreList
+ namespace: ignored
+ cpp_name: commandParameterUnstableIgnoreList
+ strict: true
+ api_version: "1"
+ reply_type: OkReply
+ fields:
+ newUnstableParameterIgnoreList:
+ type: string
+ unstable: false
+
removeCommandParameterUnstable:
description: "new command removes parameter that is unstable
in the corresponding old command and still passes"
@@ -738,6 +844,21 @@ commands:
type: intStringBoolToIntString
unstable: true
+ newUnstableParamTypeChangesIgnoreList:
+ description: "command has param with incompatible type changes, but is in the stable-to-unstable
+ ignore list"
+ command_name: newUnstableParamTypeChangesIgnoreList
+ namespace: ignored
+ cpp_name: newUnstableParamTypeChangesIgnoreList
+ strict: true
+ api_version: "1"
+ reply_type: OkReply
+ fields:
+ newUnstableTypeChangesParamIgnoreList:
+ type: intStringBoolToIntString
+ unstable: false
+ optional: true
+
newlyAddedTypeFieldBsonAnyAllowList:
description: "command passes when its type field is newly added and has bson type 'any'
that is explicitly allowed"
@@ -759,6 +880,17 @@ commands:
api_version: "1"
reply_type: OkReply
+ newUnstableTypeChangesIgnoreList:
+ description: "command has type with incompatible changes, but is in the stable-to-unstable
+ ignore list"
+ command_name: newUnstableTypeChangesIgnoreList
+ namespace: type
+ type: NewUnstableTypeChangesStructIgnoreList
+ cpp_name: newUnstableTypeChangesIgnoreList
+ strict: true
+ api_version: "1"
+ reply_type: OkReply
+
oldCommandParameterValidator:
description: "new command passes when it contains a parameter that does not contain a validator
that is present in the old parameter"
@@ -827,6 +959,16 @@ commands:
api_version: "1"
reply_type: StableNewFieldReply
+ newReplyFieldUnstableIgnoreList:
+ description: "new command contains an unstable reply field that is stable
+ in the corresponding old command but is explicitly allowed"
+ command_name: newReplyFieldUnstableIgnoreList
+ namespace: ignored
+ cpp_name: newReplyFieldUnstableIgnoreList
+ strict: true
+ api_version: "1"
+ reply_type: UnstableNewFieldReplyIgnoreList
+
newReplyFieldRequired:
description: "new command contains a required reply field that is optional
in the corresponding old command and still passes"
@@ -856,6 +998,16 @@ commands:
api_version: "1"
reply_type: UnstableOldFieldReply
+ newReplyFieldUnstableOptionalIgnoreList:
+ description: "old reply field is stable but is included in the ignore list so new commmand
+ passes even if its new reply field is unstable and optional"
+ command_name: newReplyFieldUnstableOptionalIgnoreList
+ namespace: ignored
+ cpp_name: newReplyFieldUnstableOptionalIgnoreList
+ strict: true
+ api_version: "1"
+ reply_type: UnstableOptionalNewFieldReplyIgnoreList
+
importedReplyCommand:
description: "reply is imported"
command_name: importedReplyCommand
@@ -917,6 +1069,16 @@ commands:
api_version: "1"
reply_type: StructFieldTypeRecursiveReplyTwo
+ newReplyFieldTypeStructIgnoreList:
+ description: "command has a reply contains a field whose new type is a struct that is not
+ compatible with the old field type, but this is explicitly allowed"
+ command_name: newReplyFieldTypeStructIgnoreList
+ namespace: ignored
+ cpp_name: newReplyFieldTypeStructIgnoreList
+ strict: true
+ api_version: "1"
+ reply_type: StructFieldTypeRecursiveReplyIgnoreList
+
newNamespaceIgnored:
description: "new command passes when its namespace is changed to ignored"
command_name: newNamespaceIgnored
@@ -990,6 +1152,17 @@ commands:
api_version: "1"
reply_type: OkReply
+ newReplyTypeEnumOrStructIgnoreList:
+ description: "the type is a non-enum or struct type in the old command, and an enum or struct
+ in the new command, but the change is explicitly allowed"
+ command_name: newReplyTypeEnumOrStructIgnoreList
+ namespace: type
+ type: namespacestring
+ cpp_name: newReplyTypeEnumOrStructIgnoreList
+ strict: true
+ api_version: "1"
+ reply_type: NewReplyTypeEnumOrStructIgnoreList
+
newTypeFieldOptional:
description: "new command type contains an optional field that is required
in the corresponding old command and still passes"
@@ -1033,6 +1206,17 @@ commands:
api_version: "1"
reply_type: OkReply
+ newTypeFieldUnstableIgnoreList:
+ description: "new command contains an unstable type field that is stable in the corresponding
+ old command but that is explicitly allowed"
+ command_name: newTypeFieldUnstableIgnoreList
+ namespace: type
+ type: UnstableNewFieldReplyIgnoreList
+ cpp_name: newTypeFieldUnstableIgnoreList
+ strict: true
+ api_version: "1"
+ reply_type: OkReply
+
removeTypeFieldUnstable:
description: "new command removes type field that is unstable
in the corresponding old command and still passes"
@@ -1076,6 +1260,15 @@ commands:
api_version: "1"
reply_type: OldVariantTypeReply
+ newReplyFieldVariantNotSubsetIgnoreList:
+ description: "the command's reply field type is a variant type that is not a subset of the old reply field variant types"
+ command_name: newReplyFieldVariantNotSubsetIgnoreList
+ namespace: ignored
+ cpp_name: newReplyFieldVariantNotSubsetIgnoreList
+ strict: true
+ api_version: "1"
+ reply_type: NewVariantNotSubsetReplyIgnoreList
+
newReplyFieldVariantSubset:
description: "new command when its reply field type is a variant type that is
a subset of the old reply field variant types"
@@ -1126,6 +1319,36 @@ commands:
api_version: "1"
reply_type: VariantStructRecursiveReply
+ replyFieldVariantDifferentStructIgnoreList:
+ description: "the old field has a non-variant type and the new field has a variant type but the
+ change is explicitly allowed"
+ command_name: replyFieldVariantDifferentStructIgnoreList
+ namespace: ignored
+ cpp_name: replyFieldVariantDifferentStructIgnoreList
+ strict: true
+ api_version: "1"
+ reply_type: VariantDifferentStructReplyIgnoreList
+
+ replyFieldNonVariantToVariantIgnoreList:
+ description: "the old and new field have different variant struct types but the change is
+ explicitly allowed"
+ command_name: replyFieldNonVariantToVariantIgnoreList
+ namespace: ignored
+ cpp_name: replyFieldNonVariantToVariantIgnoreList
+ strict: true
+ api_version: "1"
+ reply_type: NonVariantToVariantReplyIgnoreList
+
+ replyFieldNonEnumToEnumIgnoreList:
+ description: "the old field has a non-enum type and the new field has an enum type but the
+ change is explicitly allowed"
+ command_name: replyFieldNonEnumToEnumIgnoreList
+ namespace: ignored
+ cpp_name: replyFieldNonEnumToEnumIgnoreList
+ strict: true
+ api_version: "1"
+ reply_type: NonEnumToEnumReplyIgnoreList
+
newlyAddedReplyFieldTypeBsonAnyAllowed:
description: "command passes because it has a newly added reply field type has a bson_serialization_type
that contains 'any' that is explicitly allowed"
@@ -1145,6 +1368,16 @@ commands:
api_version: "1"
reply_type: OldUnstableTypeChangesReply
+ newUnstableReplyFieldTypeChangesIgnoreList:
+ description: "command has an old stable reply field with incompatible type changes but it is also
+ in the ignore list"
+ command_name: newUnstableReplyFieldTypeChangesIgnoreList
+ namespace: ignored
+ cpp_name: newUnstableReplyFieldTypeChangesIgnoreList
+ strict: true
+ api_version: "1"
+ reply_type: NewUnstableTypeChangesReplyIgnoreList
+
commandAllowedAnyTypes:
description: "new command that has parameter and reply type with
explicitly allowed 'any' bson serialization type passes"