JSON conformance test: repeated with a mix of known and unknown enum string values (#15885)
This test was suggested by @jskeet in the related issue: https://github.com/protocolbuffers/protobuf/issues/7392#issuecomment-1884666885
I am not confident that the failure lists are comprehensive (I only run a few tests locally) -- will fix once we get CI results.
Closes #15885
COPYBARA_INTEGRATE_REVIEW=https://github.com/protocolbuffers/protobuf/pull/15885 from noom:anton/7392/conformance-repeated-enum 60c35f0339
PiperOrigin-RevId: 609487784
pull/15922/head
parent
ce61fc80b6
commit
0fa67a94aa
|
@ -1769,6 +1769,38 @@ void BinaryAndJsonConformanceSuiteImpl<
|
|||
absl::StrCat("IgnoreUnknownEnumStringValue", test_case.enum_location),
|
||||
RECOMMENDED, test_case.input_json, "");
|
||||
}
|
||||
|
||||
// This test is similar to "InRepeatedField" from above, but it highlights the
|
||||
// potentially unexpected behavior in an array with mixed known and unknown
|
||||
// enum string values.
|
||||
RunValidJsonIgnoreUnknownTest("IgnoreUnknownEnumStringValueInRepeatedPart",
|
||||
RECOMMENDED,
|
||||
R"json({
|
||||
"repeated_nested_enum": [
|
||||
"FOO",
|
||||
"UNKNOWN_ENUM_VALUE",
|
||||
"FOO"
|
||||
]})json",
|
||||
R"(
|
||||
repeated_nested_enum: FOO
|
||||
repeated_nested_enum: FOO
|
||||
)");
|
||||
|
||||
// This test is similar to "InMapValue" from above with mixture of known and
|
||||
// unknown enum string values in the map.
|
||||
RunValidJsonIgnoreUnknownTest("IgnoreUnknownEnumStringValueInMapPart",
|
||||
RECOMMENDED,
|
||||
R"json({
|
||||
"map_string_nested_enum": {
|
||||
"key1": "FOO",
|
||||
"key2": "UNKNOWN_ENUM_VALUE"
|
||||
}})json",
|
||||
R"(
|
||||
map_string_nested_enum: {
|
||||
key: "key1"
|
||||
value: FOO
|
||||
}
|
||||
)");
|
||||
}
|
||||
|
||||
template <typename MessageType>
|
||||
|
|
|
@ -29,6 +29,10 @@ Recommended.Proto3.JsonInput.FieldNameNotQuoted
|
|||
Recommended.Editions_Proto3.JsonInput.FieldNameNotQuoted
|
||||
Recommended.Proto3.JsonInput.IgnoreUnknownEnumStringValueInMapValue.ProtobufOutput
|
||||
Recommended.Editions_Proto3.JsonInput.IgnoreUnknownEnumStringValueInMapValue.ProtobufOutput
|
||||
Recommended.Editions_Proto2.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Editions_Proto3.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.MapFieldValueIsNull
|
||||
Recommended.Editions_Proto3.JsonInput.MapFieldValueIsNull
|
||||
Recommended.Proto3.JsonInput.RepeatedFieldMessageElementIsNull
|
||||
|
@ -104,4 +108,4 @@ Recommended.Proto2.JsonInput.StringFieldUppercaseEscapeLetter
|
|||
Recommended.Proto2.JsonInput.TrailingCommaInAnObject
|
||||
Recommended.Proto2.JsonInput.TrailingCommaInAnObjectWithNewlines
|
||||
Recommended.Proto2.JsonInput.TrailingCommaInAnObjectWithSpace
|
||||
Recommended.Proto2.JsonInput.TrailingCommaInAnObjectWithSpaceCommaSpace
|
||||
Recommended.Proto2.JsonInput.TrailingCommaInAnObjectWithSpaceCommaSpace
|
||||
|
|
|
@ -7,6 +7,14 @@ Recommended.Proto3.JsonInput.BytesFieldBase64Url.ProtobufOutput
|
|||
Recommended.Proto3.JsonInput.FieldMaskInvalidCharacter
|
||||
Recommended.Proto3.JsonInput.IgnoreUnknownEnumStringValueInMapValue.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.IgnoreUnknownEnumStringValueInRepeatedField.ProtobufOutput
|
||||
Recommended.Editions_Proto2.JsonInput.IgnoreUnknownEnumStringValueInRepeatedPart.ProtobufOutput
|
||||
Recommended.Editions_Proto3.JsonInput.IgnoreUnknownEnumStringValueInRepeatedPart.ProtobufOutput
|
||||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInRepeatedPart.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.IgnoreUnknownEnumStringValueInRepeatedPart.ProtobufOutput
|
||||
Recommended.Editions_Proto2.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Editions_Proto3.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Proto3.ProtobufInput.ValidDataOneofBinary.MESSAGE.Merge.ProtobufOutput
|
||||
Required.Proto2.JsonInput.StoresDefaultPrimitive.Validator
|
||||
Required.Proto3.JsonInput.DoubleFieldTooSmall
|
||||
|
|
|
@ -10,3 +10,11 @@ Recommended.Editions_Proto2.JsonInput.IgnoreUnknownEnumStringValueInRepeatedFiel
|
|||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInMapValue.ProtobufOutput
|
||||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInOptionalField.ProtobufOutput
|
||||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInRepeatedField.ProtobufOutput
|
||||
Recommended.Editions_Proto2.JsonInput.IgnoreUnknownEnumStringValueInRepeatedPart.ProtobufOutput
|
||||
Recommended.Editions_Proto3.JsonInput.IgnoreUnknownEnumStringValueInRepeatedPart.ProtobufOutput
|
||||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInRepeatedPart.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.IgnoreUnknownEnumStringValueInRepeatedPart.ProtobufOutput
|
||||
Recommended.Editions_Proto2.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Editions_Proto3.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
|
|
|
@ -17,4 +17,12 @@ Recommended.Editions_Proto2.JsonInput.IgnoreUnknownEnumStringValueInOptionalFiel
|
|||
Recommended.Editions_Proto2.JsonInput.IgnoreUnknownEnumStringValueInRepeatedField.ProtobufOutput
|
||||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInMapValue.ProtobufOutput
|
||||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInOptionalField.ProtobufOutput
|
||||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInRepeatedField.ProtobufOutput
|
||||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInRepeatedField.ProtobufOutput
|
||||
Recommended.Editions_Proto2.JsonInput.IgnoreUnknownEnumStringValueInRepeatedPart.ProtobufOutput
|
||||
Recommended.Editions_Proto3.JsonInput.IgnoreUnknownEnumStringValueInRepeatedPart.ProtobufOutput
|
||||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInRepeatedPart.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.IgnoreUnknownEnumStringValueInRepeatedPart.ProtobufOutput
|
||||
Recommended.Editions_Proto2.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Editions_Proto3.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
|
|
|
@ -9,4 +9,12 @@ Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInOptionalField.Protobu
|
|||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInRepeatedField.ProtobufOutput
|
||||
Recommended.Editions_Proto2.JsonInput.IgnoreUnknownEnumStringValueInMapValue.ProtobufOutput
|
||||
Recommended.Editions_Proto2.JsonInput.IgnoreUnknownEnumStringValueInOptionalField.ProtobufOutput
|
||||
Recommended.Editions_Proto2.JsonInput.IgnoreUnknownEnumStringValueInRepeatedField.ProtobufOutput
|
||||
Recommended.Editions_Proto2.JsonInput.IgnoreUnknownEnumStringValueInRepeatedField.ProtobufOutput
|
||||
Recommended.Editions_Proto2.JsonInput.IgnoreUnknownEnumStringValueInRepeatedPart.ProtobufOutput
|
||||
Recommended.Editions_Proto3.JsonInput.IgnoreUnknownEnumStringValueInRepeatedPart.ProtobufOutput
|
||||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInRepeatedPart.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.IgnoreUnknownEnumStringValueInRepeatedPart.ProtobufOutput
|
||||
Recommended.Editions_Proto2.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Editions_Proto3.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Proto2.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.IgnoreUnknownEnumStringValueInMapPart.ProtobufOutput
|
||||
|
|
Loading…
Reference in New Issue