X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=tests%2Fencode_unittests.c;h=c3634ac8a5977d029566ea514e58e2e4d45f799e;hb=d7f3a74388b4825d2c980c53d0a740ddfd0e4770;hp=166e6e830b11e596f56baae977f67a884a92bb5f;hpb=fcfc99f766f278564c062922a2857c21ac9af041;p=apps%2Fagl-service-can-low-level.git diff --git a/tests/encode_unittests.c b/tests/encode_unittests.c index 166e6e83..c3634ac8 100644 --- a/tests/encode_unittests.c +++ b/tests/encode_unittests.c @@ -1,3 +1,5 @@ +#define NANOPB_INTERNALS + #include #include #include "pb_encode.h" @@ -15,7 +17,7 @@ bool streamcallback(pb_ostream_t *stream, const uint8_t *buf, size_t count) return true; } -bool fieldcallback(pb_ostream_t *stream, const pb_field_t *field, const void *arg) +bool fieldcallback(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) { int value = 0x55; if (!pb_encode_tag_for_field(stream, field)) @@ -23,7 +25,7 @@ bool fieldcallback(pb_ostream_t *stream, const pb_field_t *field, const void *ar return pb_encode_varint(stream, value); } -bool crazyfieldcallback(pb_ostream_t *stream, const pb_field_t *field, const void *arg) +bool crazyfieldcallback(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) { /* This callback writes different amount of data the second time. */ uint32_t *state = (uint32_t*)arg; @@ -123,7 +125,6 @@ int main() uint8_t buffer[30]; pb_ostream_t s; uint8_t value = 1; - int8_t svalue = -1; int32_t max = INT32_MAX; int32_t min = INT32_MIN; int64_t lmax = INT64_MAX; @@ -132,8 +133,6 @@ int main() COMMENT("Test pb_enc_varint and pb_enc_svarint") TEST(WRITES(pb_enc_varint(&s, &field, &value), "\x01")); - TEST(WRITES(pb_enc_svarint(&s, &field, &svalue), "\x01")); - TEST(WRITES(pb_enc_svarint(&s, &field, &value), "\x02")); field.data_size = sizeof(max); TEST(WRITES(pb_enc_svarint(&s, &field, &max), "\xfe\xff\xff\xff\x0f")); @@ -181,12 +180,14 @@ int main() { uint8_t buffer[30]; pb_ostream_t s; - char value[] = "xyzzy"; + char value[30] = "xyzzy"; COMMENT("Test pb_enc_string") - TEST(WRITES(pb_enc_string(&s, NULL, &value), "\x05xyzzy")) + TEST(WRITES(pb_enc_string(&s, &StringMessage_fields[0], &value), "\x05xyzzy")) value[0] = '\0'; - TEST(WRITES(pb_enc_string(&s, NULL, &value), "\x00")) + TEST(WRITES(pb_enc_string(&s, &StringMessage_fields[0], &value), "\x00")) + memset(value, 'x', 30); + TEST(WRITES(pb_enc_string(&s, &StringMessage_fields[0], &value), "\x0Axxxxxxxxxx")) } { @@ -243,6 +244,16 @@ int main() "\x0A\x07\x0A\x05\x01\x02\x03\x04\x05")) } + { + uint8_t buffer[20]; + pb_ostream_t s; + IntegerContainer msg = {{5, {1,2,3,4,5}}}; + + COMMENT("Test pb_encode_delimited.") + TEST(WRITES(pb_encode_delimited(&s, IntegerContainer_fields, &msg), + "\x09\x0A\x07\x0A\x05\x01\x02\x03\x04\x05")) + } + { uint8_t buffer[10]; pb_ostream_t s;