Add test case for extensions decoding
[apps/agl-service-can-low-level.git] / tests / test_decode_extensions.c
1 /* Test decoding of extension fields. */
2
3 #include <stdio.h>
4 #include <string.h>
5 #include <stdlib.h>
6 #include <pb_decode.h>
7 #include "alltypes.pb.h"
8 #include "extensions.pb.h"
9
10 int main(int argc, char **argv)
11 {
12     uint8_t buffer[1024];
13     size_t count = fread(buffer, 1, sizeof(buffer), stdin);
14     pb_istream_t stream = pb_istream_from_buffer(buffer, count);
15     
16     AllTypes alltypes = {};
17     int32_t extensionfield1;
18     pb_extension_t ext1 = {&AllTypes_extensionfield1, &extensionfield1, NULL};
19     alltypes.extensions = &ext1;
20     
21     if (!pb_decode(&stream, AllTypes_fields, &alltypes))
22     {
23         printf("Parsing failed: %s\n", PB_GET_ERROR(&stream));
24         return 1;
25     }
26
27     if (extensionfield1 != 12345)
28     {
29         printf("Wrong value for extension field: %d\n", extensionfield1);
30         return 2;
31     }    
32     
33     return 0;
34 }
35