diff options
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.idl | 233 |
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" |