Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nanopb/nanopb.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetteri Aimonen <jpa@git.mail.kapsi.fi>2015-09-12 15:45:37 +0300
committerPetteri Aimonen <jpa@git.mail.kapsi.fi>2015-09-12 15:47:56 +0300
commit0b29baf5deaa4213c08ee71fa55d3d0b2ed709e4 (patch)
treee2ec2dad3a641d91584c1a765caf964d64e28351 /tests/multiple_files
parent35dff3367452f89a1d8d483d0f8f601d89d78937 (diff)
Make the generator understand included files (issue #165).
This will allow message sizes and enum options to be available across the include files. Currently searching for .options files for included files may not work for all path combinations, this is related to issue #116. Should probably make a pull request to protoc about that.
Diffstat (limited to 'tests/multiple_files')
-rw-r--r--tests/multiple_files/SConscript2
-rw-r--r--tests/multiple_files/multifile1.options1
-rw-r--r--tests/multiple_files/multifile1.proto4
-rw-r--r--tests/multiple_files/multifile2.proto3
-rw-r--r--tests/multiple_files/test_multiple_files.c8
5 files changed, 11 insertions, 7 deletions
diff --git a/tests/multiple_files/SConscript b/tests/multiple_files/SConscript
index c3a82eb..1689f48 100644
--- a/tests/multiple_files/SConscript
+++ b/tests/multiple_files/SConscript
@@ -5,7 +5,7 @@ Import("env")
incpath = env.Clone()
incpath.Append(PROTOCPATH = '#multiple_files')
-incpath.NanopbProto("multifile1")
+incpath.NanopbProto(["multifile1", "multifile1.options"])
incpath.NanopbProto("multifile2")
test = incpath.Program(["test_multiple_files.c", "multifile1.pb.c", "multifile2.pb.c"])
diff --git a/tests/multiple_files/multifile1.options b/tests/multiple_files/multifile1.options
new file mode 100644
index 0000000..c44d266
--- /dev/null
+++ b/tests/multiple_files/multifile1.options
@@ -0,0 +1 @@
+StaticMessage.repint32 max_count:5
diff --git a/tests/multiple_files/multifile1.proto b/tests/multiple_files/multifile1.proto
index 79cf038..d804b67 100644
--- a/tests/multiple_files/multifile1.proto
+++ b/tests/multiple_files/multifile1.proto
@@ -14,6 +14,10 @@ message TestMessage {
repeated string repeatedstring = 6;
}
+message StaticMessage {
+ repeated fixed32 repint32 = 1;
+}
+
enum SignedEnum {
SE_MIN = -128;
SE_MAX = 127;
diff --git a/tests/multiple_files/multifile2.proto b/tests/multiple_files/multifile2.proto
index c5dcd40..66cb8a0 100644
--- a/tests/multiple_files/multifile2.proto
+++ b/tests/multiple_files/multifile2.proto
@@ -9,8 +9,7 @@ message Callback2Message {
message OneofMessage {
oneof msgs {
- TestMessage tstmsg = 1;
- SubMessage submsg = 2;
+ StaticMessage tstmsg = 1;
}
}
diff --git a/tests/multiple_files/test_multiple_files.c b/tests/multiple_files/test_multiple_files.c
index 5134f03..292b8d7 100644
--- a/tests/multiple_files/test_multiple_files.c
+++ b/tests/multiple_files/test_multiple_files.c
@@ -7,16 +7,16 @@
#include "unittests.h"
#include "multifile2.pb.h"
-/* Check that the size definition is obtained properly */
-static const int foo = OneofMessage_size;
-
int main()
{
int status = 0;
+ /* Test that included file options are properly loaded */
+ TEST(OneofMessage_size == 27);
+
/* Check that enum signedness is detected properly */
TEST(PB_LTYPE(Enums_fields[0].type) == PB_LTYPE_VARINT);
- TEST(PB_LTYPE(Enums_fields[0].type) == PB_LTYPE_UVARINT);
+ TEST(PB_LTYPE(Enums_fields[1].type) == PB_LTYPE_UVARINT);
return status;
}