Produce an error when unmarshaling text protos if a oneof field is set more than once.
PiperOrigin-RevId: 137859856
diff --git a/proto/text_parser_test.go b/proto/text_parser_test.go
index b26500b..d757ab3 100644
--- a/proto/text_parser_test.go
+++ b/proto/text_parser_test.go
@@ -635,6 +635,17 @@
if !Equal(m, want) {
t.Errorf("\n got %v\nwant %v", m, want)
}
+
+ const inOverwrite = `name:"Shrek" number:42`
+ m = new(Communique)
+ testErr := "line 1.13: oneof field 'number' is already set"
+ if err := UnmarshalText(inOverwrite, m); err == nil {
+ t.Errorf("TestOneofParsing: Didn't get expected error: %v", testErr)
+ } else if err.Error() != testErr {
+ t.Errorf("TestOneofParsing: Incorrect error.\nHave: %v\nWant: %v",
+ err.Error(), testErr)
+ }
+
}
var benchInput string