| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | /* Test nanopb option parsing. * options.expected lists the patterns that are searched for in the output. */syntax = "proto2";import "nanopb.proto";// File level optionsoption (nanopb_fileopt).max_size = 20;message Message1{    required string filesize = 1;}// Message level optionsmessage Message2{    option (nanopb_msgopt).max_size = 30;    required string msgsize = 1;}// Field level optionsmessage Message3{    option (nanopb_msgopt).msgid = 103;    required string fieldsize = 1 [(nanopb).max_size = 40];    required string fieldlen = 2 [(nanopb).max_length = 40];}// Forced callback fieldmessage Message4{    option (nanopb_msgopt).msgid = 104;    required int32 int32_callback = 1 [(nanopb).type = FT_CALLBACK];}// Short enum namesenum Enum1{    option (nanopb_enumopt).long_names = false;    EnumValue1 = 1;    EnumValue2 = 2;}message EnumTest{    required Enum1 field = 1 [default = EnumValue2];}// Short enum names inside messagemessage Message5{    option (nanopb_msgopt).msgid = 105;    enum Enum2    {       option (nanopb_enumopt).long_names = false;       EnumValue1 = 1;    }    required Enum2 field = 1 [default = EnumValue1];}// Packed structuremessage my_packed_struct{    option (nanopb_msgopt).packed_struct = true;    optional int32 myfield = 1;}// Message with ignored fieldmessage Message6{    required int32 field1 = 1;    optional int32 skipped_field = 2 [(nanopb).type = FT_IGNORE];}// Message that is skippedmessage SkippedMessage{    option (nanopb_msgopt).skip_message = true;    required int32 foo = 1;}// Message with oneof fieldmessage OneofMessage{    oneof foo {        int32 bar = 1;    }}// Proto3-style optional field in proto2 filemessage Proto3Field{    optional int32 proto3field = 1 [(nanopb).proto3 = true];}// Wide descriptorsmessage WideMessage{    option (nanopb_msgopt).descriptorsize = DS_4;    required int32 foo = 1;}// Wide descriptor option in a single fieldmessage WideMessage2{    required int32 foo = 1 [(nanopb).descriptorsize = DS_8];    required int32 foo2 = 2 [(nanopb).descriptorsize = DS_4];    required int32 foo3 = 3;}// Default value for has_ fieldmessage HasFieldMessage{    optional int32 present = 1 [(nanopb).default_has = true];    optional int32 missing = 2 [(nanopb).default_has = false];    optional int32 normal = 3;}// Overridden type in generated C codemessage TypeOverrideMessage{    required Enum1 normal = 1;    required Enum1 overridden = 2 [(nanopb).type_override = TYPE_UINT32];}
 |