From f2f9f8a9ed2f59e4ed229f09fc95f9168cc4b473 Mon Sep 17 00:00:00 2001 From: Petteri Aimonen Date: Sun, 20 Jul 2014 14:02:56 +0300 Subject: Fix problem with .options file and extension fields. The options for an extension field were being looked up under wrong name (MessageName instead of MessageName.fieldname). Fixed the problem and added regression test. Created a new subfolder for regression test cases. Update issue 125 Status: FixedInGit --- tests/regression/issue_125/SConscript | 9 +++++++++ tests/regression/issue_125/extensionbug.expected | 3 +++ tests/regression/issue_125/extensionbug.options | 4 ++++ tests/regression/issue_125/extensionbug.proto | 16 ++++++++++++++++ 4 files changed, 32 insertions(+) create mode 100644 tests/regression/issue_125/SConscript create mode 100644 tests/regression/issue_125/extensionbug.expected create mode 100644 tests/regression/issue_125/extensionbug.options create mode 100644 tests/regression/issue_125/extensionbug.proto (limited to 'tests/regression') diff --git a/tests/regression/issue_125/SConscript b/tests/regression/issue_125/SConscript new file mode 100644 index 00000000..f2155e63 --- /dev/null +++ b/tests/regression/issue_125/SConscript @@ -0,0 +1,9 @@ +# Regression test for Issue 125: Wrong identifier name for extension fields + +Import("env") + +env.NanopbProto(["extensionbug", "extensionbug.options"]) +env.Object('extensionbug.pb.c') + +env.Match(['extensionbug.pb.h', 'extensionbug.expected']) + diff --git a/tests/regression/issue_125/extensionbug.expected b/tests/regression/issue_125/extensionbug.expected new file mode 100644 index 00000000..fc213354 --- /dev/null +++ b/tests/regression/issue_125/extensionbug.expected @@ -0,0 +1,3 @@ +pb_extension_type_t Message2_extras +uint32_t field2 + diff --git a/tests/regression/issue_125/extensionbug.options b/tests/regression/issue_125/extensionbug.options new file mode 100644 index 00000000..30b464a4 --- /dev/null +++ b/tests/regression/issue_125/extensionbug.options @@ -0,0 +1,4 @@ +* type:FT_IGNORE + +Message2.extras type:FT_STATIC +Message2.field2 type:FT_STATIC diff --git a/tests/regression/issue_125/extensionbug.proto b/tests/regression/issue_125/extensionbug.proto new file mode 100644 index 00000000..c4ac6860 --- /dev/null +++ b/tests/regression/issue_125/extensionbug.proto @@ -0,0 +1,16 @@ +message Message1 +{ + optional uint32 fieldA = 1; + extensions 30 to max; +} + +message Message2 +{ + extend Message1 + { + optional Message2 extras = 30; + } + + optional uint32 field1 = 1; + optional uint32 field2 = 2; +} -- cgit 1.2.3-korg