1 /* Tests extension fields.
8 #include "alltypes.pb.h"
9 #include "extensions.pb.h"
10 #include "test_helpers.h"
12 int main(int argc, char **argv)
17 AllTypes alltypes = {0};
18 int32_t extensionfield1 = 12345;
20 ExtensionMessage extensionfield2 = {"test", 54321};
23 /* Set up the extensions */
24 alltypes.extensions = &ext1;
26 ext1.type = &AllTypes_extensionfield1;
27 ext1.dest = &extensionfield1;
30 ext2.type = &ExtensionMessage_AllTypes_extensionfield2;
31 ext2.dest = &extensionfield2;
34 /* Set up the output stream */
35 stream = pb_ostream_from_buffer(buffer, sizeof(buffer));
37 /* Now encode the message and check if we succeeded. */
38 if (pb_encode(&stream, AllTypes_fields, &alltypes))
40 SET_BINARY_MODE(stdout);
41 fwrite(buffer, 1, stream.bytes_written, stdout);
42 return 0; /* Success */
46 fprintf(stderr, "Encoding failed: %s\n", PB_GET_ERROR(&stream));
47 return 1; /* Failure */
50 /* Check that the field tags are properly generated */
51 (void)AllTypes_extensionfield1_tag;
52 (void)ExtensionMessage_AllTypes_extensionfield2_tag;