33 #include "gtest/gtest.h" 
   34 #include "src/google/protobuf/test_messages_proto2.upb.h" 
   35 #include "src/google/protobuf/test_messages_proto3.upb.h" 
   36 #include "upb/test.upb.h" 
   40 #define MIN(x, y) ((x) < (y) ? (x) : (y)) 
   46 const char test_str4[] = 
"just another test string";
 
   58 TEST(GeneratedCode, ScalarsProto3) {
 
   60   protobuf_test_messages_proto3_TestAllTypesProto3* 
msg =
 
   61       protobuf_test_messages_proto3_TestAllTypesProto3_new(
arena);
 
   62   protobuf_test_messages_proto3_TestAllTypesProto3* msg2;
 
   67   protobuf_test_messages_proto3_TestAllTypesProto3_set_optional_int32(
msg, 10);
 
   68   protobuf_test_messages_proto3_TestAllTypesProto3_set_optional_int64(
msg, 20);
 
   69   protobuf_test_messages_proto3_TestAllTypesProto3_set_optional_uint32(
msg, 30);
 
   70   protobuf_test_messages_proto3_TestAllTypesProto3_set_optional_uint64(
msg, 40);
 
   71   protobuf_test_messages_proto3_TestAllTypesProto3_set_optional_float(
msg,
 
   73   protobuf_test_messages_proto3_TestAllTypesProto3_set_optional_double(
msg,
 
   75   protobuf_test_messages_proto3_TestAllTypesProto3_set_optional_bool(
msg, 1);
 
   76   protobuf_test_messages_proto3_TestAllTypesProto3_set_optional_string(
 
   79   serialized.
data = protobuf_test_messages_proto3_TestAllTypesProto3_serialize(
 
   82   msg2 = protobuf_test_messages_proto3_TestAllTypesProto3_parse(
 
   85   EXPECT_EQ(10, protobuf_test_messages_proto3_TestAllTypesProto3_optional_int32(
 
   87   EXPECT_EQ(20, protobuf_test_messages_proto3_TestAllTypesProto3_optional_int64(
 
   91       protobuf_test_messages_proto3_TestAllTypesProto3_optional_uint32(msg2));
 
   94       protobuf_test_messages_proto3_TestAllTypesProto3_optional_uint64(msg2));
 
   97       protobuf_test_messages_proto3_TestAllTypesProto3_optional_float(msg2));
 
  100       protobuf_test_messages_proto3_TestAllTypesProto3_optional_double(msg2));
 
  103       protobuf_test_messages_proto3_TestAllTypesProto3_optional_bool(msg2));
 
  104   val = protobuf_test_messages_proto3_TestAllTypesProto3_optional_string(msg2);
 
  108   protobuf_test_messages_proto3_TestAllTypesProto3_clear_optional_int32(
msg);
 
  110       0, protobuf_test_messages_proto3_TestAllTypesProto3_optional_int32(
msg));
 
  111   protobuf_test_messages_proto3_TestAllTypesProto3_clear_optional_int64(
msg);
 
  113       0, protobuf_test_messages_proto3_TestAllTypesProto3_optional_int64(
msg));
 
  114   protobuf_test_messages_proto3_TestAllTypesProto3_clear_optional_uint32(
msg);
 
  116       0, protobuf_test_messages_proto3_TestAllTypesProto3_optional_uint32(
msg));
 
  117   protobuf_test_messages_proto3_TestAllTypesProto3_clear_optional_uint64(
msg);
 
  119       0, protobuf_test_messages_proto3_TestAllTypesProto3_optional_uint64(
msg));
 
  120   protobuf_test_messages_proto3_TestAllTypesProto3_clear_optional_float(
msg);
 
  123       protobuf_test_messages_proto3_TestAllTypesProto3_optional_float(
msg));
 
  124   protobuf_test_messages_proto3_TestAllTypesProto3_clear_optional_double(
msg);
 
  127       protobuf_test_messages_proto3_TestAllTypesProto3_optional_double(
msg));
 
  128   protobuf_test_messages_proto3_TestAllTypesProto3_clear_optional_bool(
msg);
 
  131       protobuf_test_messages_proto3_TestAllTypesProto3_optional_bool(
msg));
 
  132   protobuf_test_messages_proto3_TestAllTypesProto3_clear_optional_string(
msg);
 
  134       0, protobuf_test_messages_proto3_TestAllTypesProto3_optional_string(
msg)
 
  139 TEST(GeneratedCode, ScalarsProto2) {
 
  141   protobuf_test_messages_proto2_TestAllTypesProto2* 
msg =
 
  142       protobuf_test_messages_proto2_TestAllTypesProto2_new(
arena);
 
  143   protobuf_test_messages_proto2_TestAllTypesProto2* msg2;
 
  149       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_int32(
msg));
 
  150   protobuf_test_messages_proto2_TestAllTypesProto2_set_optional_int32(
msg, 10);
 
  153       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_int32(
msg));
 
  156       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_int64(
msg));
 
  157   protobuf_test_messages_proto2_TestAllTypesProto2_set_optional_int64(
msg, 20);
 
  160       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_int64(
msg));
 
  163       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_uint32(
 
  165   protobuf_test_messages_proto2_TestAllTypesProto2_set_optional_uint32(
msg, 30);
 
  168       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_uint32(
 
  172       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_uint64(
 
  174   protobuf_test_messages_proto2_TestAllTypesProto2_set_optional_uint64(
msg, 40);
 
  177       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_uint64(
 
  181       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_sint32(
 
  183   protobuf_test_messages_proto2_TestAllTypesProto2_set_optional_sint32(
msg, 50);
 
  186       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_sint32(
 
  190       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_sint64(
 
  192   protobuf_test_messages_proto2_TestAllTypesProto2_set_optional_sint64(
msg, 60);
 
  195       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_sint64(
 
  199       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_fixed32(
 
  201   protobuf_test_messages_proto2_TestAllTypesProto2_set_optional_fixed32(
msg,
 
  205       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_fixed32(
 
  209       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_fixed64(
 
  211   protobuf_test_messages_proto2_TestAllTypesProto2_set_optional_fixed64(
msg,
 
  215       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_fixed64(
 
  219       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_sfixed32(
 
  221   protobuf_test_messages_proto2_TestAllTypesProto2_set_optional_sfixed32(
msg,
 
  225       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_sfixed32(
 
  229       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_sfixed64(
 
  231   protobuf_test_messages_proto2_TestAllTypesProto2_set_optional_sfixed64(
msg,
 
  235       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_sfixed64(
 
  239       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_float(
msg));
 
  240   protobuf_test_messages_proto2_TestAllTypesProto2_set_optional_float(
msg,
 
  244       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_float(
msg));
 
  247       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_double(
 
  249   protobuf_test_messages_proto2_TestAllTypesProto2_set_optional_double(
msg,
 
  253       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_double(
 
  257       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_bool(
msg));
 
  258   protobuf_test_messages_proto2_TestAllTypesProto2_set_optional_bool(
msg, 1);
 
  261       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_bool(
msg));
 
  263   serialized.
data = protobuf_test_messages_proto2_TestAllTypesProto2_serialize(
 
  266   msg2 = protobuf_test_messages_proto2_TestAllTypesProto2_parse(
 
  269   EXPECT_EQ(10, protobuf_test_messages_proto2_TestAllTypesProto2_optional_int32(
 
  271   EXPECT_EQ(20, protobuf_test_messages_proto2_TestAllTypesProto2_optional_int64(
 
  275       protobuf_test_messages_proto2_TestAllTypesProto2_optional_uint32(msg2));
 
  278       protobuf_test_messages_proto2_TestAllTypesProto2_optional_uint64(msg2));
 
  281       protobuf_test_messages_proto2_TestAllTypesProto2_optional_sint32(msg2));
 
  284       protobuf_test_messages_proto2_TestAllTypesProto2_optional_sint64(msg2));
 
  287       protobuf_test_messages_proto2_TestAllTypesProto2_optional_fixed32(msg2));
 
  290       protobuf_test_messages_proto2_TestAllTypesProto2_optional_fixed64(msg2));
 
  293       protobuf_test_messages_proto2_TestAllTypesProto2_optional_sfixed32(msg2));
 
  296       protobuf_test_messages_proto2_TestAllTypesProto2_optional_sfixed64(msg2));
 
  299       protobuf_test_messages_proto2_TestAllTypesProto2_optional_float(msg2));
 
  302       protobuf_test_messages_proto2_TestAllTypesProto2_optional_double(msg2));
 
  305       protobuf_test_messages_proto2_TestAllTypesProto2_optional_bool(msg2));
 
  308   protobuf_test_messages_proto2_TestAllTypesProto2_clear_optional_int32(
msg);
 
  310       0, protobuf_test_messages_proto2_TestAllTypesProto2_optional_int32(
msg));
 
  313       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_int32(
msg));
 
  315   protobuf_test_messages_proto2_TestAllTypesProto2_clear_optional_int64(
msg);
 
  317       0, protobuf_test_messages_proto2_TestAllTypesProto2_optional_int64(
msg));
 
  320       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_int64(
msg));
 
  321   protobuf_test_messages_proto2_TestAllTypesProto2_clear_optional_uint32(
msg);
 
  323       0, protobuf_test_messages_proto2_TestAllTypesProto2_optional_uint32(
msg));
 
  326       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_uint32(
 
  328   protobuf_test_messages_proto2_TestAllTypesProto2_clear_optional_uint64(
msg);
 
  330       0, protobuf_test_messages_proto2_TestAllTypesProto2_optional_uint64(
msg));
 
  333       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_uint64(
 
  335   protobuf_test_messages_proto2_TestAllTypesProto2_clear_optional_float(
msg);
 
  338       protobuf_test_messages_proto2_TestAllTypesProto2_optional_float(
msg));
 
  341       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_float(
msg));
 
  342   protobuf_test_messages_proto2_TestAllTypesProto2_clear_optional_double(
msg);
 
  345       protobuf_test_messages_proto2_TestAllTypesProto2_optional_double(
msg));
 
  348       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_double(
 
  350   protobuf_test_messages_proto2_TestAllTypesProto2_clear_optional_bool(
msg);
 
  353       protobuf_test_messages_proto2_TestAllTypesProto2_optional_bool(
msg));
 
  356       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_bool(
msg));
 
  363   protobuf_test_messages_proto2_TestAllTypesProto2* 
msg =
 
  364       protobuf_test_messages_proto2_TestAllTypesProto2_new(
arena);
 
  365   protobuf_test_messages_proto2_TestAllTypesProto2* msg2;
 
  367   const char data[] = 
"ABCDEF";
 
  373       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_bytes(
msg));
 
  374   protobuf_test_messages_proto2_TestAllTypesProto2_set_optional_bytes(
msg,
 
  378       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_bytes(
msg));
 
  382       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_string(
 
  384   protobuf_test_messages_proto2_TestAllTypesProto2_set_optional_string(
 
  388       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_string(
 
  391   serialized.
data = protobuf_test_messages_proto2_TestAllTypesProto2_serialize(
 
  394   msg2 = protobuf_test_messages_proto2_TestAllTypesProto2_parse(
 
  398             protobuf_test_messages_proto2_TestAllTypesProto2_optional_bytes(
msg)
 
  401       0, memcmp(
bytes.data,
 
  402                 protobuf_test_messages_proto2_TestAllTypesProto2_optional_bytes(
 
  406   protobuf_test_messages_proto2_TestAllTypesProto2_clear_optional_bytes(
msg);
 
  409       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_bytes(
msg));
 
  411   val = protobuf_test_messages_proto2_TestAllTypesProto2_optional_string(msg2);
 
  414   protobuf_test_messages_proto2_TestAllTypesProto2_clear_optional_string(
msg);
 
  416       0, protobuf_test_messages_proto2_TestAllTypesProto2_optional_string(
msg)
 
  420       protobuf_test_messages_proto2_TestAllTypesProto2_has_optional_string(
 
  425 TEST(GeneratedCode, Extension) {
 
  427   protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrect* 
msg =
 
  428       protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrect_new(
 
  430   protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrect* msg2;
 
  435       protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrectExtension2_has_message_set_extension(
 
  438   protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrectExtension2* 
ext =
 
  439       protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrectExtension2_new(
 
  443       protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrectExtension2_i(
 
  445   protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrectExtension2_set_i(
 
  449       protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrectExtension2_i(
 
  452   protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrectExtension2_set_message_set_extension(
 
  456       protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrectExtension2_has_message_set_extension(
 
  460       protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrect_serialize(
 
  463       protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrect_parse(
 
  465   const protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrectExtension2*
 
  467           protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrectExtension2_message_set_extension(
 
  471       protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrectExtension2_i(
 
  475   protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrectExtension2_clear_message_set_extension(
 
  479       protobuf_test_messages_proto2_TestAllTypesProto2_MessageSetCorrectExtension2_has_message_set_extension(
 
  484 TEST(GeneratedCode, RepeatedClear) {
 
  486   protobuf_test_messages_proto2_TestAllTypesProto2* 
msg =
 
  487       protobuf_test_messages_proto2_TestAllTypesProto2_new(
arena);
 
  489   protobuf_test_messages_proto2_TestAllTypesProto2_repeated_int32(
msg, &
len);
 
  491   protobuf_test_messages_proto2_TestAllTypesProto2_add_repeated_int32(
msg, 2,
 
  493   protobuf_test_messages_proto2_TestAllTypesProto2_add_repeated_int32(
msg, 3,
 
  495   protobuf_test_messages_proto2_TestAllTypesProto2_add_repeated_int32(
msg, 4,
 
  497   protobuf_test_messages_proto2_TestAllTypesProto2_repeated_int32(
msg, &
len);
 
  499   protobuf_test_messages_proto2_TestAllTypesProto2_clear_repeated_int32(
msg);
 
  500   protobuf_test_messages_proto2_TestAllTypesProto2_repeated_int32(
msg, &
len);
 
  506   const char invalid_utf8[] = 
"\xff";
 
  511   protobuf_test_messages_proto3_TestAllTypesProto3* 
msg =
 
  512       protobuf_test_messages_proto3_TestAllTypesProto3_new(
arena);
 
  513   protobuf_test_messages_proto3_TestAllTypesProto3* msg2;
 
  515   protobuf_test_messages_proto3_TestAllTypesProto3_set_optional_string(
 
  516       msg, invalid_utf8_view);
 
  518   serialized.
data = protobuf_test_messages_proto3_TestAllTypesProto3_serialize(
 
  521   msg2 = protobuf_test_messages_proto3_TestAllTypesProto3_parse(
 
  529     protobuf_test_messages_proto3_TestAllTypesProto3* 
msg) {
 
  534       protobuf_test_messages_proto3_TestAllTypesProto3_map_string_string_size(
 
  537       protobuf_test_messages_proto3_TestAllTypesProto3_map_string_string_next(
 
  542     protobuf_test_messages_proto3_TestAllTypesProto3* 
msg) {
 
  543   const protobuf_test_messages_proto3_TestAllTypesProto3_MapStringStringEntry*
 
  550       protobuf_test_messages_proto3_TestAllTypesProto3_map_string_string_size(
 
  553       protobuf_test_messages_proto3_TestAllTypesProto3_map_string_string_get(
 
  558       protobuf_test_messages_proto3_TestAllTypesProto3_map_string_string_get(
 
  564       protobuf_test_messages_proto3_TestAllTypesProto3_map_string_string_next(
 
  569       protobuf_test_messages_proto3_TestAllTypesProto3_MapStringStringEntry_key(
 
  573       protobuf_test_messages_proto3_TestAllTypesProto3_MapStringStringEntry_value(
 
  577       protobuf_test_messages_proto3_TestAllTypesProto3_map_string_string_next(
 
  582 TEST(GeneratedCode, StringDoubleMap) {
 
  585   upb_test_MapTest* 
msg = upb_test_MapTest_new(
arena);
 
  586   upb_test_MapTest* msg2;
 
  598   msg2 = upb_test_MapTest_parse(serialized.
data, serialized.
size, 
arena);
 
  601       upb_test_MapTest_map_string_double_get(msg2, 
test_str_view, &val));
 
  607 TEST(GeneratedCode, StringMap) {
 
  609   protobuf_test_messages_proto3_TestAllTypesProto3* 
msg =
 
  610       protobuf_test_messages_proto3_TestAllTypesProto3_new(
arena);
 
  611   const protobuf_test_messages_proto3_TestAllTypesProto3_MapStringStringEntry*
 
  618   protobuf_test_messages_proto3_TestAllTypesProto3_map_string_string_set(
 
  624       protobuf_test_messages_proto3_TestAllTypesProto3_map_string_string_delete(
 
  630       protobuf_test_messages_proto3_TestAllTypesProto3_map_string_string_delete(
 
  638   protobuf_test_messages_proto3_TestAllTypesProto3_map_string_string_set(
 
  640   protobuf_test_messages_proto3_TestAllTypesProto3_map_string_string_set(
 
  649            protobuf_test_messages_proto3_TestAllTypesProto3_map_string_string_next(
 
  652         protobuf_test_messages_proto3_TestAllTypesProto3_MapStringStringEntry_key(
 
  655         protobuf_test_messages_proto3_TestAllTypesProto3_MapStringStringEntry_value(
 
  670   protobuf_test_messages_proto3_TestAllTypesProto3_map_string_string_clear(
msg);
 
  677     protobuf_test_messages_proto3_TestAllTypesProto3* 
msg) {
 
  681       0, protobuf_test_messages_proto3_TestAllTypesProto3_map_int32_int32_size(
 
  684       protobuf_test_messages_proto3_TestAllTypesProto3_map_int32_int32_next(
 
  689     protobuf_test_messages_proto3_TestAllTypesProto3* 
msg) {
 
  690   const protobuf_test_messages_proto3_TestAllTypesProto3_MapInt32Int32Entry*
 
  696       1, protobuf_test_messages_proto3_TestAllTypesProto3_map_int32_int32_size(
 
  699       protobuf_test_messages_proto3_TestAllTypesProto3_map_int32_int32_get(
 
  704       protobuf_test_messages_proto3_TestAllTypesProto3_map_int32_int32_get(
 
  710       protobuf_test_messages_proto3_TestAllTypesProto3_map_int32_int32_next(
 
  715       protobuf_test_messages_proto3_TestAllTypesProto3_MapInt32Int32Entry_key(
 
  719       protobuf_test_messages_proto3_TestAllTypesProto3_MapInt32Int32Entry_value(
 
  723       protobuf_test_messages_proto3_TestAllTypesProto3_map_int32_int32_next(
 
  728 TEST(GeneratedCode, Int32Map) {
 
  730   protobuf_test_messages_proto3_TestAllTypesProto3* 
msg =
 
  731       protobuf_test_messages_proto3_TestAllTypesProto3_new(
arena);
 
  732   const protobuf_test_messages_proto3_TestAllTypesProto3_MapInt32Int32Entry*
 
  739   protobuf_test_messages_proto3_TestAllTypesProto3_map_int32_int32_set(
 
  745       protobuf_test_messages_proto3_TestAllTypesProto3_map_int32_int32_delete(
 
  751       protobuf_test_messages_proto3_TestAllTypesProto3_map_int32_int32_delete(
 
  759   protobuf_test_messages_proto3_TestAllTypesProto3_map_int32_int32_set(
 
  761   protobuf_test_messages_proto3_TestAllTypesProto3_map_int32_int32_set(
 
  770            protobuf_test_messages_proto3_TestAllTypesProto3_map_int32_int32_next(
 
  773         protobuf_test_messages_proto3_TestAllTypesProto3_MapInt32Int32Entry_key(
 
  776         protobuf_test_messages_proto3_TestAllTypesProto3_MapInt32Int32Entry_value(
 
  791   protobuf_test_messages_proto3_TestAllTypesProto3_map_int32_int32_clear(
msg);
 
  797 TEST(GeneratedCode, TestRepeated) {
 
  799   protobuf_test_messages_proto3_TestAllTypesProto3* 
msg =
 
  800       protobuf_test_messages_proto3_TestAllTypesProto3_new(
arena);
 
  804   protobuf_test_messages_proto3_TestAllTypesProto3_add_repeated_int32(
msg, 5,
 
  807   elems = protobuf_test_messages_proto3_TestAllTypesProto3_repeated_int32(
 
  816 TEST(GeneratedCode, Issue9440) {
 
  818   upb_test_HelloRequest* 
msg = upb_test_HelloRequest_new(
arena.ptr());
 
  819   upb_test_HelloRequest_set_id(
msg, 8);
 
  826 TEST(GeneratedCode, NullDecodeBuffer) {
 
  828   protobuf_test_messages_proto3_TestAllTypesProto3* 
msg =
 
  829       protobuf_test_messages_proto3_TestAllTypesProto3_parse(NULL, 0, 
arena);
 
  833   protobuf_test_messages_proto3_TestAllTypesProto3_serialize(
msg, 
arena, &
size);
 
  838 TEST(GeneratedCode, StatusTruncation) {
 
  843     char* 
msg = 
static_cast<char*
>(malloc(
i + 1));
 
  845     char ch = (
i % 96) + 33; 
 
  847     for (j = 0; j < 
i; j++) {
 
  858     for (j = 0; j < 
end; j++) {
 
  868   int* iptr = 
static_cast<int*
>(
ptr);
 
  872 TEST(GeneratedCode, ArenaFuse) {
 
  908 TEST(GeneratedCode, FuseWithInitialBlock) {
 
  915   int size = 
sizeof(arenas) / 
sizeof(arenas[0]);
 
  916   for (
int i = 0; 
i < 
size; ++
i) {
 
  917     for (
int j = 0; j < 
size; ++j) {
 
  929 TEST(GeneratedCode, ArenaDecode) {
 
  932   char large_string[1024] = {0};
 
  933   upb_StringView large_string_view = {large_string, 
sizeof(large_string)};
 
  936   protobuf_test_messages_proto3_TestAllTypesProto3* 
msg =
 
  937       protobuf_test_messages_proto3_TestAllTypesProto3_new(
tmp);
 
  939   protobuf_test_messages_proto3_TestAllTypesProto3_set_optional_bytes(
 
  940       msg, large_string_view);
 
  943   serialized.
data = protobuf_test_messages_proto3_TestAllTypesProto3_serialize(
 
  950   protobuf_test_messages_proto3_TestAllTypesProto3_parse(
 
  962 TEST(GeneratedCode, ArenaUnaligned) {
 
  965   char* unaligned_buf_ptr = (
char*)((
uintptr_t)buf1 | 7);
 
  967       unaligned_buf_ptr, &buf1[
sizeof(buf1)] - unaligned_buf_ptr, NULL);