blob: b5badcfd40ea5e36fed94612e2f536d23d0dfa56 [file] [log] [blame]
Etan Cohen7ef855e2014-08-20 10:11:11 -07001/* Test nanopb option parsing.
2 * options.expected lists the patterns that are searched for in the output.
3 */
4
5import "nanopb.proto";
6
7// File level options
8option (nanopb_fileopt).max_size = 20;
9
10message Message1
11{
12 required string filesize = 1;
13}
14
15// Message level options
16message Message2
17{
18 option (nanopb_msgopt).max_size = 30;
19 required string msgsize = 1;
20}
21
22// Field level options
23message Message3
24{
25 required string fieldsize = 1 [(nanopb).max_size = 40];
26}
27
28// Forced callback field
29message Message4
30{
31 required int32 int32_callback = 1 [(nanopb).type = FT_CALLBACK];
32}
33
34// Short enum names
35enum Enum1
36{
37 option (nanopb_enumopt).long_names = false;
38 EnumValue1 = 1;
39 EnumValue2 = 2;
40}
41
42message EnumTest
43{
44 required Enum1 field = 1 [default = EnumValue2];
45}
46
47// Short enum names inside message
48message Message5
49{
50 enum Enum2
51 {
52 option (nanopb_enumopt).long_names = false;
53 EnumValue1 = 1;
54 }
55 required Enum2 field = 1 [default = EnumValue1];
56}
57
58// Packed structure
59message my_packed_struct
60{
61 option (nanopb_msgopt).packed_struct = true;
62 optional int32 myfield = 1;
63}
64
65// Message with ignored field
66// Note: doesn't really test if the field is missing in the output,
67// but atleast tests that the output compiles.
68message Message6
69{
70 required int32 field1 = 1;
71 optional int32 field2 = 2 [(nanopb).type = FT_IGNORE];
72}
73