36 #include <google/protobuf/test_messages_proto2.pb.h>
37 #include <google/protobuf/test_messages_proto3.pb.h>
40 using conformance::ConformanceRequest;
41 using conformance::ConformanceResponse;
42 using conformance::WireFormat;
45 using protobuf_test_messages::proto2::TestAllTypesProto2;
46 using protobuf_test_messages::proto2::UnknownToTestAllTypes;
47 using protobuf_test_messages::proto3::TestAllTypesProto3;
58 const ConformanceResponse& response,
61 const ConformanceRequest& request = setting.
GetRequest();
62 if (request.print_unknown_fields()) {
63 parser.AllowFieldNumber(
true);
65 if (!
parser.ParseFromString(
response.text_payload(), test_message)) {
66 GOOGLE_LOG(
ERROR) <<
"INTERNAL ERROR: internal text->protobuf transcode "
67 <<
"yielded unparseable proto. Text payload: "
76 const ConformanceResponse& response,
78 const ConformanceRequest& request = setting.
GetRequest();
79 WireFormat requested_output = request.requested_output_format();
84 case ConformanceResponse::kProtobufPayload: {
85 if (requested_output != conformance::PROTOBUF) {
89 " output but provided PROTOBUF instead.")
96 "Protobuf output we received from test was unparseable.");
103 case ConformanceResponse::kTextPayload: {
104 if (requested_output != conformance::TEXT_FORMAT) {
108 " output but provided TEXT_FORMAT instead.")
116 "TEXT_FORMAT output we received from test was unparseable.");
125 <<
": unknown payload type: " <<
response.result_case();
133 const string&
input) {
134 TestAllTypesProto3 prototype;
138 level, conformance::TEXT_FORMAT, conformance::TEXT_FORMAT,
139 conformance::TEXT_FORMAT_TEST, prototype, test_name,
input);
140 const ConformanceRequest& request = setting.
GetRequest();
143 ".Proto3.TextFormatInput.", test_name);
146 if (
response.result_case() == ConformanceResponse::kParseError) {
148 }
else if (
response.result_case() == ConformanceResponse::kSkipped) {
152 "Should have failed to parse, but didn't.");
158 TestAllTypesProto3 prototype;
164 TestAllTypesProto2 prototype;
172 level, conformance::TEXT_FORMAT, conformance::PROTOBUF,
173 conformance::TEXT_FORMAT_TEST, prototype, test_name, input_text);
176 level, conformance::TEXT_FORMAT, conformance::TEXT_FORMAT,
177 conformance::TEXT_FORMAT_TEST, prototype, test_name, input_text);
183 string serialized_input;
184 message.SerializeToString(&serialized_input);
185 TestAllTypesProto3 prototype;
187 RECOMMENDED, conformance::PROTOBUF, conformance::TEXT_FORMAT,
188 conformance::TEXT_FORMAT_TEST, prototype, test_name +
"_Drop",
194 RECOMMENDED, conformance::PROTOBUF, conformance::TEXT_FORMAT,
195 conformance::TEXT_FORMAT_TEST, prototype, test_name +
"_Print",
204 "optional_string: 'Hello, World!'");
207 "optional_int32: 2147483647");
209 "optional_int32: -2147483648");
211 "optional_uint32: 4294967295");
213 "optional_int64: 9223372036854775807");
215 "optional_int64: -9223372036854775808");
217 "optional_uint64: 18446744073709551615");
221 "optional_int32: 2147483648");
223 "optional_int32: -2147483649");
225 "optional_uint32: 4294967296");
227 "optional_int64: 9223372036854775808");
229 "optional_int64: -9223372036854775809");
231 "optional_uint64: 18446744073709551616");
235 "optional_float: 3.192837");
237 "optional_float: 3.123456789123456789");
239 "optional_float: 3.4028235e+38");
241 "optional_float: 1.17549e-38");
243 "optional_float: NaN");
245 "optional_float: inf");
247 "optional_float: -inf");
249 "optional_float: 4294967296");
251 "optional_float: 9223372036854775808");
253 "optional_float: 3.4028235e+39");
255 "optional_float: 1.17549e-39");
257 "optional_float: 18446744073709551616");
261 "Data { group_int32: 1 }");
263 "Data: { group_int32: 1 }");
272 message.set_optional_int32(123);
273 message.set_optional_string(
"hello");
274 message.set_optional_bool(
true);
278 message.mutable_nested_message()->set_c(111);
282 message.mutable_optionalgroup()->set_a(321);
294 [type.googleapis.com/protobuf_test_messages.proto3.TestAllTypesProto3] {
295 optional_int32: 12345
302 type_url: "type.googleapis.com/protobuf_test_messages.proto3.TestAllTypesProto3"
309 [type.googleapis.com/unknown] {
310 optional_int32: 12345