diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile | 10 | ||||
-rw-r--r-- | tests/options.expected | 3 | ||||
-rw-r--r-- | tests/options.proto | 28 |
3 files changed, 40 insertions, 1 deletions
diff --git a/tests/Makefile b/tests/Makefile index 76561759..434819c3 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -55,7 +55,7 @@ coverage: run_unittests gcov pb_encode.gcda gcov pb_decode.gcda -run_unittests: decode_unittests encode_unittests test_cxxcompile test_encode1 test_encode2 test_encode3 test_decode1 test_decode2 test_decode3 test_encode_callbacks test_decode_callbacks test_missing_fields +run_unittests: decode_unittests encode_unittests test_cxxcompile test_encode1 test_encode2 test_encode3 test_decode1 test_decode2 test_decode3 test_encode_callbacks test_decode_callbacks test_missing_fields test_options rm -f *.gcda ./decode_unittests > /dev/null @@ -82,5 +82,13 @@ run_unittests: decode_unittests encode_unittests test_cxxcompile test_encode1 te ./test_missing_fields +test_options: options.pb.h options.expected + for p in $$(grep . options.expected); do \ + if ! grep -qF "$$p" $<; then \ + echo Expected: $$p; \ + exit 1; \ + fi \ + done + run_fuzztest: test_decode2 bash -c 'I=1; while true; do cat /dev/urandom | ./test_decode2 > /dev/null; I=$$(($$I+1)); echo -en "\r$$I"; done' diff --git a/tests/options.expected b/tests/options.expected new file mode 100644 index 00000000..e184cf91 --- /dev/null +++ b/tests/options.expected @@ -0,0 +1,3 @@ +char filesize[20]; +char msgsize[30]; +char fieldsize[40]; diff --git a/tests/options.proto b/tests/options.proto new file mode 100644 index 00000000..73edf2ba --- /dev/null +++ b/tests/options.proto @@ -0,0 +1,28 @@ +/* Test nanopb option parsing. + * options.expected lists the patterns that are searched for in the output. + */ + +import "nanopb.proto"; + +// File level options +option (nanopb_fileopt).max_size = 20; + +message Message1 +{ + required string filesize = 1; +} + +// Message level options +message Message2 +{ + option (nanopb_msgopt).max_size = 30; + required string msgsize = 1; +} + +// Field level options +message Message3 +{ + required string fieldsize = 1 [(nanopb).max_size = 40]; +} + + |