From 7f1e0ec17987ff10c5ce17f347b66423fe8ac4bd Mon Sep 17 00:00:00 2001 From: Petteri Aimonen Date: Mon, 5 Oct 2015 16:01:53 +0300 Subject: Fix regression in generating message size defines (issue #172). This bug was triggered when: 1. A .proto file included another .proto from a different directory. 2. The another .proto has an associated .options file. Added regression test for the same. --- tests/regression/issue_172/SConscript | 16 ++++++++++++++++ tests/regression/issue_172/msg_size.c | 9 +++++++++ tests/regression/issue_172/submessage/submessage.options | 1 + tests/regression/issue_172/submessage/submessage.proto | 4 ++++ tests/regression/issue_172/test.proto | 6 ++++++ 5 files changed, 36 insertions(+) create mode 100644 tests/regression/issue_172/SConscript create mode 100644 tests/regression/issue_172/msg_size.c create mode 100644 tests/regression/issue_172/submessage/submessage.options create mode 100644 tests/regression/issue_172/submessage/submessage.proto create mode 100644 tests/regression/issue_172/test.proto (limited to 'tests/regression') diff --git a/tests/regression/issue_172/SConscript b/tests/regression/issue_172/SConscript new file mode 100644 index 0000000..49c919e --- /dev/null +++ b/tests/regression/issue_172/SConscript @@ -0,0 +1,16 @@ +# Verify that _size define is generated for messages that have +# includes from another directory. + +Import('env') + +incpath = env.Clone() +incpath.Append(PROTOCPATH="#regression/issue_172/submessage") +incpath.Append(CPPPATH="$BUILD/regression/issue_172/submessage") +incpath.NanopbProto('test') +incpath.NanopbProto(['submessage/submessage', 'submessage/submessage.options']) + +p = incpath.Program(["msg_size.c", + "test.pb.c", + "submessage/submessage.pb.c"]) + + diff --git a/tests/regression/issue_172/msg_size.c b/tests/regression/issue_172/msg_size.c new file mode 100644 index 0000000..be45acb --- /dev/null +++ b/tests/regression/issue_172/msg_size.c @@ -0,0 +1,9 @@ +#include "test.pb.h" + +PB_STATIC_ASSERT(testmessage_size >= 1+1+1+1+16, TESTMESSAGE_SIZE_IS_WRONG) + +int main() +{ + return 0; +} + diff --git a/tests/regression/issue_172/submessage/submessage.options b/tests/regression/issue_172/submessage/submessage.options new file mode 100644 index 0000000..12fb198 --- /dev/null +++ b/tests/regression/issue_172/submessage/submessage.options @@ -0,0 +1 @@ +submessage.data max_size: 16 diff --git a/tests/regression/issue_172/submessage/submessage.proto b/tests/regression/issue_172/submessage/submessage.proto new file mode 100644 index 0000000..ce6804a --- /dev/null +++ b/tests/regression/issue_172/submessage/submessage.proto @@ -0,0 +1,4 @@ +syntax = "proto2"; +message submessage { + required bytes data = 1; +} diff --git a/tests/regression/issue_172/test.proto b/tests/regression/issue_172/test.proto new file mode 100644 index 0000000..fbd97be --- /dev/null +++ b/tests/regression/issue_172/test.proto @@ -0,0 +1,6 @@ +syntax = "proto2"; +import "submessage.proto"; + +message testmessage { + optional submessage sub = 1; +} -- cgit 1.2.3-korg