diff options
author | 2017-05-19 16:20:02 +0200 | |
---|---|---|
committer | 2017-05-19 16:20:02 +0200 | |
commit | 2d574dc77f68ecb5150016989900860e8b74be50 (patch) | |
tree | d691a8345a58dcd080131c58d028f77df51a45ed /CAN-binder/libs/nanopb/tests/regression/issue_166/enum_encoded_size.c | |
parent | 48a2605965af1f05ba7f01f6e8c1758a4c9b0522 (diff) | |
parent | 278ffb890e3d8722e4c7d824baaf221a1e375fc4 (diff) |
Add 'CAN-binder/libs/nanopb/' from commit '278ffb890e3d8722e4c7d824baaf221a1e375fc4'
git-subtree-dir: CAN-binder/libs/nanopb
git-subtree-mainline: 48a2605965af1f05ba7f01f6e8c1758a4c9b0522
git-subtree-split: 278ffb890e3d8722e4c7d824baaf221a1e375fc4
Diffstat (limited to 'CAN-binder/libs/nanopb/tests/regression/issue_166/enum_encoded_size.c')
-rw-r--r-- | CAN-binder/libs/nanopb/tests/regression/issue_166/enum_encoded_size.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/CAN-binder/libs/nanopb/tests/regression/issue_166/enum_encoded_size.c b/CAN-binder/libs/nanopb/tests/regression/issue_166/enum_encoded_size.c new file mode 100644 index 0000000..84e1c7d --- /dev/null +++ b/CAN-binder/libs/nanopb/tests/regression/issue_166/enum_encoded_size.c @@ -0,0 +1,43 @@ +#include <stdio.h> +#include <string.h> +#include <pb_encode.h> +#include "unittests.h" +#include "enums.pb.h" + +int main() +{ + int status = 0; + + uint8_t buf[256]; + SignedMsg msg1; + UnsignedMsg msg2; + pb_ostream_t s; + + { + COMMENT("Test negative value of signed enum"); + /* Negative value should take up the maximum size */ + msg1.value = SignedEnum_SE_MIN; + s = pb_ostream_from_buffer(buf, sizeof(buf)); + TEST(pb_encode(&s, SignedMsg_fields, &msg1)); + TEST(s.bytes_written == SignedMsg_size); + + COMMENT("Test positive value of signed enum"); + /* Positive value should be smaller */ + msg1.value = SignedEnum_SE_MAX; + s = pb_ostream_from_buffer(buf, sizeof(buf)); + TEST(pb_encode(&s, SignedMsg_fields, &msg1)); + TEST(s.bytes_written < SignedMsg_size); + } + + { + COMMENT("Test positive value of unsigned enum"); + /* This should take up the maximum size */ + msg2.value = UnsignedEnum_UE_MAX; + s = pb_ostream_from_buffer(buf, sizeof(buf)); + TEST(pb_encode(&s, UnsignedMsg_fields, &msg2)); + TEST(s.bytes_written == UnsignedMsg_size); + } + + return status; +} + |