Skip to content

Commit eb8a685

Browse files
adazhcopybara-github
authored andcommitted
n/a
PiperOrigin-RevId: 899344434
1 parent e6ee74a commit eb8a685

18 files changed

Lines changed: 2284 additions & 91 deletions

File tree

pkg/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@ cc_dist_library(
241241
"//upb:generated_code_support",
242242
"//upb/json",
243243
"//upb/message:compare",
244+
"//upb/message:convert",
244245
"//upb/message:copy",
245246
"//upb/mini_table:compat",
246247
"//upb/mini_table:debug_string",

upb/base/error_handler.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ typedef enum {
5656
kUpb_ErrorCode_Ok = 0,
5757
kUpb_ErrorCode_OutOfMemory = 1,
5858
kUpb_ErrorCode_Malformed = 2,
59+
kUpb_ErrorCode_MaxDepthExceeded = 4,
5960
} upb_ErrorCode;
6061

6162
typedef struct {

upb/message/BUILD

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,60 @@ cc_library(
198198
],
199199
)
200200

201+
# Experimental API, subject to change.
202+
cc_library(
203+
name = "convert",
204+
srcs = [
205+
"convert.c",
206+
],
207+
hdrs = [
208+
"internal/convert.h",
209+
],
210+
copts = UPB_DEFAULT_COPTS,
211+
visibility = [
212+
"//upb:__pkg__",
213+
"//upb:friends",
214+
],
215+
deps = [
216+
":internal",
217+
":message",
218+
"//upb/base",
219+
"//upb/mem",
220+
"//upb/mini_table",
221+
"//upb/mini_table:internal",
222+
"//upb/port",
223+
"//upb/wire",
224+
"//upb/wire:decoder",
225+
"//upb/wire:eps_copy_input_stream",
226+
],
227+
)
228+
229+
cc_test(
230+
name = "convert_test",
231+
srcs = ["convert_test.cc"],
232+
deps = [
233+
":convert",
234+
":convert_test_upb_minitable_proto",
235+
":convert_test_upb_proto",
236+
":internal",
237+
":message",
238+
":message_test_upb_minitable_proto",
239+
":message_test_upb_proto",
240+
":promote",
241+
"//upb/base",
242+
"//upb/mem",
243+
"//upb/mini_table",
244+
"//upb/port",
245+
"//upb/test:test_messages_proto2_upb_proto",
246+
"//upb/test:test_messages_proto3_upb_minitable",
247+
"//upb/test:test_messages_proto3_upb_proto",
248+
"//upb/test:test_upb_proto",
249+
"//upb/wire",
250+
"@googletest//:gtest",
251+
"@googletest//:gtest_main",
252+
],
253+
)
254+
201255
cc_test(
202256
name = "merge_test",
203257
srcs = ["merge_test.cc"],
@@ -414,6 +468,7 @@ cc_test(
414468
features = UPB_DEFAULT_FEATURES,
415469
deps = [
416470
":compare",
471+
":convert",
417472
":internal",
418473
":message",
419474
":message_test_upb_minitable_proto",
@@ -495,6 +550,25 @@ cc_test(
495550
],
496551
)
497552

553+
cc_test(
554+
name = "convert_fuzz_test",
555+
srcs = ["convert_fuzz_test.cc"],
556+
deps = [
557+
":compare",
558+
":convert",
559+
":message",
560+
"//upb/base",
561+
"//upb/mem",
562+
"//upb/mini_table",
563+
"//upb/mini_table:internal",
564+
"//upb/port",
565+
"//upb/test:fuzz_util",
566+
"//upb/wire",
567+
"@googletest//:gtest",
568+
"@googletest//:gtest_main",
569+
],
570+
)
571+
498572
filegroup(
499573
name = "source_files",
500574
srcs = glob(
@@ -529,3 +603,21 @@ filegroup(
529603
),
530604
visibility = ["//upb:__pkg__"],
531605
)
606+
607+
proto_library(
608+
name = "convert_test_proto",
609+
testonly = 1,
610+
srcs = ["convert_test.proto"],
611+
)
612+
613+
upb_minitable_proto_library(
614+
name = "convert_test_upb_minitable_proto",
615+
testonly = 1,
616+
deps = [":convert_test_proto"],
617+
)
618+
619+
upb_c_proto_library(
620+
name = "convert_test_upb_proto",
621+
testonly = 1,
622+
deps = [":convert_test_proto"],
623+
)

0 commit comments

Comments
 (0)