5 #include "zero_value.pb.h"
11 COMMENT("Test extension fields with zero values");
13 uint8_t buffer[256] = {0};
16 Extendable source = {0};
18 pb_extension_t source_ext = {0};
19 source_ext.type = &opt_int32;
20 source_ext.dest = &value;
21 source.extensions = &source_ext;
23 ostream = pb_ostream_from_buffer(buffer, sizeof(buffer));
24 TEST(pb_encode(&ostream, Extendable_fields, &source));
26 TEST(ostream.bytes_written == 2);
27 TEST(memcmp(buffer, "\x58\x00", 2) == 0);
30 /* Note: There never was a bug here, but this check is included
31 * in the regression test because the logic is closely related.
33 COMMENT("Test pointer fields with zero values");
35 uint8_t buffer[256] = {0};
38 PointerMessage source = {0};
40 source.opt_int32 = &value;
42 ostream = pb_ostream_from_buffer(buffer, sizeof(buffer));
43 TEST(pb_encode(&ostream, PointerMessage_fields, &source));
45 TEST(ostream.bytes_written == 2);
46 TEST(memcmp(buffer, "\x58\x00", 2) == 0);