internal/testprotos: make TestAllExtensions recursive

Tweak the test message to allow creating messages with extensions that
contain extensions that contain extensions, etc.

Change-Id: I41844ae699c88ab96bf0d30db3a3fbaf09616161
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/216761
Reviewed-by: Joe Tsai <joetsai@google.com>
diff --git a/proto/testmessages_test.go b/proto/testmessages_test.go
index 6f66380..3a878e9 100644
--- a/proto/testmessages_test.go
+++ b/proto/testmessages_test.go
@@ -219,11 +219,12 @@
 			},
 		}, build(
 			&testpb.TestAllExtensions{},
-			extend(testpb.E_OptionalNestedMessageExtension, &testpb.TestAllTypes_NestedMessage{
+			extend(testpb.E_OptionalNestedMessageExtension, &testpb.TestAllExtensions_NestedMessage{
 				A: proto.Int32(42),
-				Corecursive: &testpb.TestAllTypes{
-					OptionalInt32: proto.Int32(43),
-				},
+				Corecursive: build(
+					&testpb.TestAllExtensions{},
+					extend(testpb.E_OptionalInt32Extension, int32(43)),
+				).(*testpb.TestAllExtensions),
 			}),
 		)},
 		wire: pack.Message{
@@ -253,11 +254,12 @@
 			},
 		}, build(
 			&testpb.TestAllExtensions{},
-			extend(testpb.E_OptionalNestedMessageExtension, &testpb.TestAllTypes_NestedMessage{
+			extend(testpb.E_OptionalNestedMessageExtension, &testpb.TestAllExtensions_NestedMessage{
 				A: proto.Int32(42),
-				Corecursive: &testpb.TestAllTypes{
-					OptionalInt32: proto.Int32(43),
-				},
+				Corecursive: build(
+					&testpb.TestAllExtensions{},
+					extend(testpb.E_OptionalInt32Extension, int32(43)),
+				).(*testpb.TestAllExtensions),
 			}),
 		)},
 		wire: pack.Message{
@@ -283,7 +285,7 @@
 			},
 		}, build(
 			&testpb.TestAllExtensions{},
-			extend(testpb.E_OptionalNestedMessageExtension, &testpb.TestAllTypes_NestedMessage{
+			extend(testpb.E_OptionalNestedMessageExtension, &testpb.TestAllExtensions_NestedMessage{
 				A: proto.Int32(2),
 			}),
 		)},
@@ -678,7 +680,7 @@
 			},
 		}, build(
 			&testpb.TestAllExtensions{},
-			extend(testpb.E_RepeatedNestedMessageExtension, []*testpb.TestAllTypes_NestedMessage{
+			extend(testpb.E_RepeatedNestedMessageExtension, []*testpb.TestAllExtensions_NestedMessage{
 				{A: proto.Int32(1)},
 				nil,
 				{A: proto.Int32(2)},