proto: check for required fields in encoding/decoding
Change-Id: I0555a92e0399782f075b1dcd248e880dd48c7d6d
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/170579
Reviewed-by: Herbie Ong <herbie@google.com>
diff --git a/internal/testprotos/test/test.proto b/internal/testprotos/test/test.proto
index 8cb9ec3..c6b2d6a 100644
--- a/internal/testprotos/test/test.proto
+++ b/internal/testprotos/test/test.proto
@@ -218,6 +218,30 @@
}
}
+message TestRequired {
+ required int32 required_field = 1;
+
+ extend TestAllExtensions {
+ optional TestRequired single = 1000;
+ repeated TestRequired multi = 1001;
+ }
+}
+
+message TestRequiredForeign {
+ optional TestRequired optional_message = 1;
+ repeated TestRequired repeated_message = 2;
+ map<int32, TestRequired> map_message = 3;
+}
+
+message TestRequiredGroupFields {
+ optional group OptionalGroup = 1 {
+ required int32 a = 2;
+ }
+ repeated group RepeatedGroup = 3 {
+ required int32 a = 4;
+ }
+}
+
// Test that RPC services work.
message FooRequest {}
message FooResponse {}