encoding: unify MessageSet extension handling logic
This CL unifies common MessageSet logic in prototext and protojson
into the messageset package. While we are at it, also enable
MessageSet support only if the proto1_legacy build flag is enabled.
Change-Id: I1a7d475e8bb1dad61ecd286df45e4239e5bef072
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/185898
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/encoding/protojson/decode_test.go b/encoding/protojson/decode_test.go
index 03bd10a..2385dc4 100644
--- a/encoding/protojson/decode_test.go
+++ b/encoding/protojson/decode_test.go
@@ -1297,6 +1297,17 @@
inputText: `{ "[pb2.invalid_message_field]": true }`,
wantErr: true,
}, {
+ desc: "extensions of repeated field contains null",
+ inputMessage: &pb2.Extensions{},
+ inputText: `{
+ "[pb2.ExtensionsContainer.rpt_ext_nested]": [
+ {"optString": "one"},
+ null,
+ {"optString": "three"}
+ ],
+}`,
+ wantErr: true,
+ }, {
desc: "MessageSet",
inputMessage: &pb2.MessageSet{},
inputText: `{
@@ -1323,17 +1334,7 @@
})
return m
}(),
- }, {
- desc: "extensions of repeated field contains null",
- inputMessage: &pb2.Extensions{},
- inputText: `{
- "[pb2.ExtensionsContainer.rpt_ext_nested]": [
- {"optString": "one"},
- null,
- {"optString": "three"}
- ],
-}`,
- wantErr: true,
+ skip: !flags.Proto1Legacy,
}, {
desc: "not real MessageSet 1",
inputMessage: &pb2.FakeMessageSet{},
@@ -1349,6 +1350,7 @@
})
return m
}(),
+ skip: !flags.Proto1Legacy,
}, {
desc: "not real MessageSet 2",
inputMessage: &pb2.FakeMessageSet{},
@@ -1358,6 +1360,7 @@
}
}`,
wantErr: true,
+ skip: !flags.Proto1Legacy,
}, {
desc: "not real MessageSet 3",
inputMessage: &pb2.MessageSet{},
@@ -1373,6 +1376,7 @@
})
return m
}(),
+ skip: !flags.Proto1Legacy,
}, {
desc: "Empty",
inputMessage: &emptypb.Empty{},