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/encoding/textpb/decode_test.go b/encoding/textpb/decode_test.go
index 2f14029..7c45641 100644
--- a/encoding/textpb/decode_test.go
+++ b/encoding/textpb/decode_test.go
@@ -1405,9 +1405,10 @@
 			m := &pb2.PartialRequired{
 				OptString: scalar.String("embedded inside Any"),
 			}
-			b, err := proto.MarshalOptions{Deterministic: true}.Marshal(m)
-			// TODO: Marshal may fail due to required field not set at some
-			// point. Need to ignore required not set error here.
+			b, err := proto.MarshalOptions{
+				AllowPartial:  true,
+				Deterministic: true,
+			}.Marshal(m)
 			if err != nil {
 				t.Fatalf("error in binary marshaling message for Any.value: %v", err)
 			}