1. straight forward message set group encoding
2. group encoding but with the fields out of order
3. message set encoded as a typical extension submessage
4. A variant of the former, but I "abuse" a oneof to detect when implementations put the message set fields into the unknown field set.
Go seems to be the only implementation that fails (3) as it will drop these fields entirely. A couple of implementations fail (4).
PiperOrigin-RevId: 723946259
pull/20224/head
Kevin O'Connor3 weeks agocommitted byCopybara-Service
Recommended.Proto2.ProtobufInput.ValidMessageSetEncoding.SubmessageEncoding.NotUnknown.ProtobufOutput # Output was not equivalent to reference message: added: message_set_correct.(protobuf_test_messages.proto2.TestAllTypesProto2.Ext
Required.*.JsonInput.Int32FieldQuotedExponentialValue.* # Failed to parse input or produce output.
Required.*.JsonInput.AnyWithNoType.* # Failed to parse input or produce output.
Recommended.Proto2.ProtobufInput.ValidMessageSetEncoding.SubmessageEncoding.NotUnknown.ProtobufOutput # Output was not equivalent to reference message: added: message_set_correct.(protobuf_test_messages.proto2.TestAllTypesProto2.Ext
Recommended.Proto2.ProtobufInput.ValidMessageSetEncoding.SubmessageEncoding.NotUnknown.ProtobufOutput # Output was not equivalent to reference message: added: message_set_correct.(protobuf_test_messages.proto2.TestAllTypesProto2.Ext
Required.*.JsonInput.Int32FieldQuotedExponentialValue.* # Failed to parse input or produce output.