Go to the documentation of this file.
38 #include "conformance/conformance.upb.h"
39 #include "conformance/conformance.upbdefs.h"
40 #include "src/google/protobuf/test_messages_proto2.upbdefs.h"
41 #include "src/google/protobuf/test_messages_proto3.upbdefs.h"
50 #include "upb/port_def.inc"
63 perror(
"reading from test runner");
76 perror(
"writing to test runner");
82 const conformance_ConformanceRequest*
request;
90 conformance_ConformanceRequest_protobuf_payload(
c->request);
95 static const char msg[] =
"Parse error";
96 conformance_ConformanceResponse_set_parse_error(
107 conformance_ConformanceResponse_set_protobuf_payload(
110 static const char msg[] =
"Error serializing.";
111 conformance_ConformanceResponse_set_serialize_error(
123 if (!conformance_ConformanceRequest_print_unknown_fields(
c->request)) {
131 conformance_ConformanceResponse_set_text_payload(
136 upb_StringView json = conformance_ConformanceRequest_json_payload(
c->request);
140 if (conformance_ConformanceRequest_test_category(
c->request) ==
141 conformance_JSON_IGNORE_UNKNOWN_PARSING_TEST) {
151 size_t len = strlen(inerr);
155 conformance_ConformanceResponse_set_parse_error(
172 if (
len == (
size_t)-1) {
174 size_t len = strlen(inerr);
178 conformance_ConformanceResponse_set_serialize_error(
186 conformance_ConformanceResponse_set_json_payload(
191 switch (conformance_ConformanceRequest_payload_case(
c->request)) {
192 case conformance_ConformanceRequest_payload_protobuf_payload:
194 case conformance_ConformanceRequest_payload_json_payload:
196 case conformance_ConformanceRequest_payload_NOT_SET:
197 fprintf(
stderr,
"conformance_upb: Request didn't have payload.\n");
200 static const char msg[] =
"Unsupported input format.";
201 conformance_ConformanceResponse_set_skipped(
210 switch (conformance_ConformanceRequest_requested_output_format(
c->request)) {
211 case conformance_UNSPECIFIED:
212 fprintf(
stderr,
"conformance_upb: Unspecified output format.\n");
214 case conformance_PROTOBUF:
217 case conformance_TEXT_FORMAT:
220 case conformance_JSON:
224 static const char msg[] =
"Unsupported output format.";
225 conformance_ConformanceResponse_set_skipped(
241 const char skip[] =
"\343>\010\301\002\344>\230?\001\230?\002\230?\003";
244 conformance_ConformanceRequest_protobuf_payload(
c->request);
249 static const char msg[] =
"Unknown message type.";
250 conformance_ConformanceResponse_set_skipped(
c->response,
287 fprintf(
stderr,
"conformance_upb: unexpected EOF on stdin.\n");
291 c.request = conformance_ConformanceRequest_parse(
input, input_size,
c.arena);
292 c.response = conformance_ConformanceResponse_new(
c.arena);
297 fprintf(
stderr,
"conformance_upb: parse of ConformanceRequest failed: %s\n",
301 output = conformance_ConformanceResponse_serialize(
c.response,
c.arena,
312 conformance_ConformanceRequest_getmsgdef(
symtab), &
c);
314 conformance_ConformanceResponse_getmsgdef(
symtab), &
c);
326 #ifdef REBUILD_MINITABLES
328 symtab, &src_google_protobuf_test_messages_proto2_proto_upbdefinit,
true);
330 symtab, &src_google_protobuf_test_messages_proto3_proto_upbdefinit,
true);
332 protobuf_test_messages_proto2_TestAllTypesProto2_getmsgdef(
symtab);
333 protobuf_test_messages_proto3_TestAllTypesProto3_getmsgdef(
symtab);
339 "conformance_upb: received EOF from test runner "
340 "after %d tests, exiting\n",
const upb_MiniTable * upb_MessageDef_MiniTable(const upb_MessageDef *m)
upb_DecodeStatus upb_Decode(const char *buf, size_t size, void *msg, const upb_MiniTable *l, const upb_ExtensionRegistry *extreg, int options, upb_Arena *arena)
size_t upb_JsonEncode(const upb_Message *msg, const upb_MessageDef *m, const upb_DefPool *ext_pool, int options, char *buf, size_t size, upb_Status *status)
static struct test_ctx ctx
const char * upb_Status_ErrorMessage(const upb_Status *status)
UPB_INLINE upb_Arena * upb_Arena_New(void)
void upb_Status_Clear(upb_Status *status)
upb_Message * upb_Message_New(const upb_MessageDef *m, upb_Arena *a)
memcpy(mem, inblock.get(), min(CONTAINING_RECORD(inblock.get(), MEMBLOCK, data) ->size, size))
UPB_INLINE void * upb_Arena_Malloc(upb_Arena *a, size_t size)
upb_DefPool * upb_DefPool_New(void)
bool _upb_DefPool_LoadDefInitEx(upb_DefPool *s, const _upb_DefPool_Init *init, bool rebuild_minitable)
UPB_INLINE bool upb_StringView_IsEqual(upb_StringView a, upb_StringView b)
size_t upb_TextEncode(const upb_Message *msg, const upb_MessageDef *m, const upb_DefPool *ext_pool, int options, char *buf, size_t size)
char * upb_Encode(const void *msg, const upb_MiniTable *l, int options, upb_Arena *arena, size_t *size)
const conformance_ConformanceRequest * request
int read(izstream &zs, T *x, Items items)
@ upb_JsonDecode_IgnoreUnknown
void upb_DefPool_Free(upb_DefPool *s)
const upb_DefPool * symtab
const upb_MessageDef * upb_DefPool_FindMessageByNameWithSize(const upb_DefPool *s, const char *sym, size_t len)
bool upb_JsonDecode(const char *buf, size_t size, upb_Message *msg, const upb_MessageDef *m, const upb_DefPool *symtab, int options, upb_Arena *arena, upb_Status *status)
UPB_INLINE upb_StringView upb_StringView_FromDataAndSize(const char *data, size_t size)
UPB_INLINE upb_StringView upb_StringView_FromString(const char *data)
conformance_ConformanceResponse * response
void upb_Arena_Free(upb_Arena *a)
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:01