aboutsummaryrefslogtreecommitdiffstats
path: root/tests
AgeCommit message (Collapse)AuthorFilesLines
2013-04-14Handle unterminated strings when encoding.Petteri Aimonen2-3/+9
If the null terminator is not present, string will be limited to the data size of the field. If you are still using the pb_enc_string (deprecated since 0.1.3) from callbacks, now would be an excellent time to stop. The pb_field_t for the callback will not contain proper data_size. Use pb_encode_string() instead. Update issue 68 Status: FixedInGit
2013-04-14Fix bug with empty strings in repeated string callbacks.Petteri Aimonen3-0/+21
Fix suggested by Henrik Carlgren. Added also unit test for the bug. Update issue 73 Status: FixedInGit
2013-04-02Change the callback function to use void**.Petteri Aimonen4-16/+16
NOTE: This change breaks backwards-compatibility by default. If you have old callback functions, you can define PB_OLD_CALLBACK_STYLE to retain the old behaviour. If you want to convert your old callbacks to new signature, you need to do the following: 1) Change decode callback argument to void **arg and encode callback argument to void * const *arg. 2) Change any reference to arg into *arg. The rationale for making the new behaviour the default is that it simplifies the common case of "allocate some memory in decode callback". Update issue 69 Status: FixedInGit
2013-03-09Implement error message support for the encoder side.Petteri Aimonen3-1/+7
Update issue 7 Status: FixedInGit
2013-03-09alltypes.proto no longer needs to include nanopb.protoPetteri Aimonen1-2/+0
2013-03-09Switch alltypes.proto to use the new .options file mechanism.Petteri Aimonen2-23/+26
2013-03-09Add option to run the tests with mudflap to detect pointer errors.Petteri Aimonen1-0/+8
2013-03-09Improve the fuzztest.Petteri Aimonen1-4/+4
Enable -fstack-protector-all to detect any stack smashing bugs. Also use test_decode3 for maximal vulnerable surface.
2013-03-09Fix error in backwards compatibility testcasePetteri Aimonen1-1/+1
2013-03-09Fix bug with decoding empty message types. Add test for the same.Petteri Aimonen3-0/+12
Note: the bug only applies to empty message types. Empty messages of non-empty message types are not affected. Update issue 65 Status: FixedInGit
2013-02-20Rename PB_HTYPE_ARRAY -> PB_HTYPE_REPEATED.Petteri Aimonen2-305/+95
This is a more logical name in parallel with PB_HTYPE_REQUIRED and PB_HTYPE_OPTIONAL. Warning: This breaks backwards-compatibility of generated .pb.c files. You will have to regenerate the files and recompile.
2013-02-07Sanitize filenames before putting them in #ifndef.Petteri Aimonen2-1/+2
Update issue 50 Status: FixedInGit
2013-02-06Add compile-time option PB_BUFFER_ONLY.Petteri Aimonen1-2/+18
This allows slight optimizations if only memory buffer support (as opposed to stream callbacks) is wanted. On ARM difference is -12% execution time, -4% code size when enabled.
2013-01-14Add field type FT_IGNORE to generator.Petteri Aimonen1-0/+9
This allows ignoring fields that are unnecessary or too large for an embedded system using nanopb, while allowing them to remain in the .proto for other platforms. Update issue 51 Status: FixedInGit
2013-01-13Add a test for the backwards compatibility of generated files.Petteri Aimonen5-1/+814
It is not necessary to maintain full compatibility of generated files for all of eternity, but this test will warn us if there is a need to regenerate the files.
2013-01-10Add generator option for packed structs.Petteri Aimonen2-0/+9
Usage is: message Foo { option (nanopb_msgopt).packed_struct = true; ... } Valid also in file scope. Update issue 49 Status: FixedInGit
2012-11-16Use TESTS variable to define dependencies for run_unittestsSteffen Siering1-6/+11
2012-11-16Select compilation options based on $(CC) in tests/Makefile.Petteri Aimonen1-3/+11
Makes 'make CC=clang' work. Based on patch submitted by Steffen Siering. Update issue 40: Status: FixedInGit
2012-11-16Rename test_compiles.c to test_multiple_files.cPetteri Aimonen2-3/+3
2012-11-16Fix STATIC_ASSERT macro when using multiple .proto files.Steffen Siering3-2/+27
The __COUNTER__ macro (used for generating unique names) is at least supported by gcc, clang and Visual Studio. With this change test_compiles.c is compilable, since no more typedefs are redefined. Compilers/Preprocessors not supporting __COUNTER__ error's are still possible which are hopfully handled by the usage of __LINE__ in most sittuations. Added unit test for the problem.
2012-11-14Fix naming of nested Enums with short namesPetteri Aimonen2-0/+12
2012-11-14Fix naming of enums when long_names=false.Petteri Aimonen3-2/+8
Modify test case to check that options.pb.o compiles. Update issue 42 Status: FixedInGit Update issue 43 Status: FixedInGit
2012-10-29Add option to use short names for enum values.Petteri Aimonen3-7/+13
Update issue 38 Status: FixedInGit
2012-10-29Allow defining field type in .proto.Petteri Aimonen2-0/+7
Update issue 30 Status: FixedInGit
2012-10-29Improve .proto options parsing.Petteri Aimonen3-1/+40
Options can now be defined on command line, file, message or in field scope. Update issue 12 Status: Started
2012-10-21Improve the person_with_extra_field test.Petteri Aimonen3-4/+1
Added a field after the extra field to verify it's also ok.
2012-10-18Remove the "buf = NULL" => skip requirement from pb_istream_t callbacks.Petteri Aimonen4-7/+6
Rationale: it's easy to implement the callback wrong. Doing so introduces io errors when unknown fields are present in the input. If code is not tested with unknown fields, these bugs can remain hidden for long time. Added a special case for the memory buffer stream, where it gives a small speed benefit. Added testcase for skipping fields with test_decode2 implementation. Update issue 37 Status: FixedInGit
2012-10-14Add tests for negative values in the alltypes testcase.Petteri Aimonen2-24/+24
2012-09-18Add buffer size check in test_decode1.c example.Petteri Aimonen1-0/+6
This check gives a better error message in case you test stuff and have a message longer than 512 bytes. Update issue 34 Status: FixedInGit
2012-09-03Enable -Wconversion for core and fix the warnings.Petteri Aimonen1-1/+1
This should help avoid issue 33 in the future.
2012-09-02Fix -Wextra warning in generated .pb.c files.Petteri Aimonen1-0/+3
Compile the generated files with the same extra-strict settings as the core, in order to detect problems in tests. Update issue 32 Status: FixedInGit
2012-08-26Fix warnings with -Wcast-qual. Add test for C++ compile.Petteri Aimonen1-2/+8
Update issue 27 Status: FixedInGit
2012-08-26Added alltypes-testcases for optional fields and default values.Petteri Aimonen4-12/+180
2012-08-24Implement error messages in the decoder side.Petteri Aimonen4-4/+4
Update issue 7 Status: Started
2012-08-24Reorganize the field decoder interface.Petteri Aimonen2-2/+4
This makes the field decoding functions more intuitive to use. The old interface is still present if you specify NANOPB_INTERNALS. Update issue 2 Status: FixedInGit
2012-07-31Extend 'alltypes' testcase to cover repeated fields.Petteri Aimonen3-24/+104
2012-07-18Fixed a few compiler warnings, added check.Petteri Aimonen1-2/+5
Main code is now compiled (for tests) with -pedantic -Wextra. The test programs are not as strictly bound, but this should improve the chances that atleast the core library compiles with most compilers without warnings.
2012-07-05Fix bug with .proto without messages (again), and add a test case for it.Petteri Aimonen2-1/+9
2012-06-30Improve the detection of missing required fields.Petteri Aimonen3-2/+192
Now the limit of tracked fields is configurable at compile-time using PB_MAX_REQUIRED_FIELDS. Added related test and updated documentation. Fixes issue #18.
2012-03-01Refactoring the field encoder interface.Petteri Aimonen2-5/+4
Replaced the confusing pb_enc_* functions with new pb_encode_* functions that have a cleaner interface. Updated documentation. Got rid of the endian_copy stuff in pb_encode.c, instead using C casts to do it automatically. This makes the code safer and also reduces binary size by about 5%. Fixes Issue 6.
2012-01-12Fixed issue 1 reported by Erik Rosen:Petteri Aimonen1-2/+10
The size of non-callback bytes-fields was miscalculated, which caused all following fields in a message to contain garbage. Previous commit contains a testcase for this. This fix changes the generated message description. If your protocol uses bytes-fields, you should regenerate *.pb.c.
2012-01-12Added an encode/decode test for 'required' fields of all types.Petteri Aimonen4-3/+168
2011-12-30Make the fuzztest runnable againPetteri Aimonen1-2/+2
git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1091 e3a754e5-d11d-0410-8d38-ebb782a927b9
2011-12-30Expanding the tests to better cover decoding from memory buffer.Petteri Aimonen4-26/+103
git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1090 e3a754e5-d11d-0410-8d38-ebb782a927b9
2011-12-30Fixed a bug related to submessage encoding into memory buffer.Petteri Aimonen4-26/+66
Stream state was not copied back from substream in pb_enc_submessage, which caused garbage output if the stream callback modified the state. Expanded tests to cover this problem. Thanks to Paweł Pery for debugging and reporting this problem. git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1089 e3a754e5-d11d-0410-8d38-ebb782a927b9
2011-11-30Merged 0004-Added-missing-trailing-newlines.patch by Matt Kern.Petteri Aimonen1-1/+1
Just adding newlines at the end of files to satisfy old GCC versions. git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1021 e3a754e5-d11d-0410-8d38-ebb782a927b9
2011-11-30Merged 0003-Fixed-format-specifiers.patch by Matt Kern.Petteri Aimonen2-8/+8
Fixes cross-platform issues with the length modifier in printf specifiers, most importantly %d -> %ld. git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1020 e3a754e5-d11d-0410-8d38-ebb782a927b9
2011-09-18Added comments to the simplest decode/encode examples.Petteri Aimonen2-6/+25
git-svn-id: https://svn.kapsi.fi/jpa/nanopb@979 e3a754e5-d11d-0410-8d38-ebb782a927b9
2011-09-13Fixed a bunch of bugs related to callback fields.Petteri Aimonen6-40/+117
Most importantly, callback fields in submessages were being overwritten with garbage, causing segfaults. Additionally, converted PB_LTYPE_FIXED to PB_LTYPE_FIXED32 and PB_LTYPE_FIXED64. This makes the interface a bit easier to use, and in addition runs faster. git-svn-id: https://svn.kapsi.fi/jpa/nanopb@975 e3a754e5-d11d-0410-8d38-ebb782a927b9
2011-09-12Tests for callback fieldsPetteri Aimonen6-2/+108
git-svn-id: https://svn.kapsi.fi/jpa/nanopb@974 e3a754e5-d11d-0410-8d38-ebb782a927b9