Fix maximum encoded size for negative enums (issue #166).
[apps/agl-service-can-low-level.git] / tests / options / options.proto
1 /* Test nanopb option parsing.
2  * options.expected lists the patterns that are searched for in the output.
3  */
4
5 import "nanopb.proto";
6
7 // File level options
8 option (nanopb_fileopt).max_size = 20;
9
10 message Message1
11 {
12     required string filesize = 1;
13 }
14
15 // Message level options
16 message Message2
17 {
18     option (nanopb_msgopt).max_size = 30;
19     required string msgsize = 1;
20 }
21
22 // Field level options
23 message Message3
24 {
25     option (nanopb_msgopt).msgid = 103;
26     required string fieldsize = 1 [(nanopb).max_size = 40];
27 }
28
29 // Forced callback field
30 message Message4
31 {
32     option (nanopb_msgopt).msgid = 104;
33     required int32 int32_callback = 1 [(nanopb).type = FT_CALLBACK];
34 }
35
36 // Short enum names
37 enum Enum1
38 {
39     option (nanopb_enumopt).long_names = false;
40     EnumValue1 = 1;
41     EnumValue2 = 2;
42 }
43
44 message EnumTest
45 {
46     required Enum1 field = 1 [default = EnumValue2];
47 }
48
49 // Short enum names inside message
50 message Message5
51 {
52     option (nanopb_msgopt).msgid = 105;
53     enum Enum2
54     {
55        option (nanopb_enumopt).long_names = false;
56        EnumValue1 = 1;
57     }
58     required Enum2 field = 1 [default = EnumValue1];
59 }
60
61 // Packed structure
62 message my_packed_struct
63 {
64     option (nanopb_msgopt).packed_struct = true;
65     optional int32 myfield = 1;
66 }
67
68 // Message with ignored field
69 message Message6
70 {
71     required int32 field1 = 1;
72     optional int32 skipped_field = 2 [(nanopb).type = FT_IGNORE];
73 }
74
75 // Message that is skipped
76 message SkippedMessage
77 {
78     option (nanopb_msgopt).skip_message = true;
79     required int32 foo = 1;
80 }
81
82 // Message with oneof field
83 message OneofMessage
84 {
85     oneof foo {
86         int32 bar = 1;
87     }
88 }
89