diff options
Diffstat (limited to 'tests/decode_unittests/decode_unittests.c')
-rw-r--r-- | tests/decode_unittests/decode_unittests.c | 107 |
1 files changed, 7 insertions, 100 deletions
diff --git a/tests/decode_unittests/decode_unittests.c b/tests/decode_unittests/decode_unittests.c index dc1e719..1be0191 100644 --- a/tests/decode_unittests/decode_unittests.c +++ b/tests/decode_unittests/decode_unittests.c @@ -1,6 +1,4 @@ /* This includes the whole .c file to get access to static functions. */ -#define PB_ENABLE_MALLOC -#include "pb_common.c" #include "pb_decode.c" #include <stdio.h> @@ -87,23 +85,6 @@ int main() pb_decode_varint(&s, (uint64_t*)&i) && i == -1)); TEST((s = S("\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01"), pb_decode_varint(&s, &u) && u == UINT64_MAX)); - TEST((s = S("\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01"), - !pb_decode_varint(&s, &u))); - } - - { - pb_istream_t s; - uint32_t u; - - COMMENT("Test pb_decode_varint32"); - TEST((s = S("\x00"), pb_decode_varint32(&s, &u) && u == 0)); - TEST((s = S("\x01"), pb_decode_varint32(&s, &u) && u == 1)); - TEST((s = S("\xAC\x02"), pb_decode_varint32(&s, &u) && u == 300)); - TEST((s = S("\xFF\xFF\xFF\xFF\x0F"), pb_decode_varint32(&s, &u) && u == UINT32_MAX)); - TEST((s = S("\xFF\xFF\xFF\xFF\x8F\x00"), pb_decode_varint32(&s, &u) && u == UINT32_MAX)); - TEST((s = S("\xFF\xFF\xFF\xFF\x10"), !pb_decode_varint32(&s, &u))); - TEST((s = S("\xFF\xFF\xFF\xFF\x40"), !pb_decode_varint32(&s, &u))); - TEST((s = S("\xFF\xFF\xFF\xFF\xFF\x01"), !pb_decode_varint32(&s, &u))); } { @@ -126,16 +107,16 @@ int main() } { - pb_istream_t s = S("\x01\x00"); + pb_istream_t s = S("\x01\xFF\xFF\x03"); pb_field_t f = {1, PB_LTYPE_VARINT, 0, 0, 4, 0, 0}; uint32_t d; COMMENT("Test pb_dec_varint using uint32_t") TEST(pb_dec_varint(&s, &f, &d) && d == 1) /* Verify that no more than data_size is written. */ - d = 0xFFFFFFFF; + d = 0; f.data_size = 1; - TEST(pb_dec_varint(&s, &f, &d) && (d == 0xFFFFFF00 || d == 0x00FFFFFF)) + TEST(pb_dec_varint(&s, &f, &d) && (d == 0xFF || d == 0xFF000000)) } { @@ -153,9 +134,9 @@ int main() { pb_istream_t s; pb_field_t f = {1, PB_LTYPE_SVARINT, 0, 0, 8, 0, 0}; - int64_t d; + uint64_t d; - COMMENT("Test pb_dec_svarint using int64_t") + COMMENT("Test pb_dec_svarint using uint64_t") TEST((s = S("\x01"), pb_dec_svarint(&s, &f, &d) && d == -1)) TEST((s = S("\x02"), pb_dec_svarint(&s, &f, &d) && d == 1)) TEST((s = S("\xFE\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01"), pb_dec_svarint(&s, &f, &d) && d == INT64_MAX)) @@ -164,50 +145,6 @@ int main() { pb_istream_t s; - pb_field_t f = {1, PB_LTYPE_SVARINT, 0, 0, 4, 0, 0}; - int32_t d; - - COMMENT("Test pb_dec_svarint overflow detection using int32_t"); - TEST((s = S("\xfe\xff\xff\xff\x0f"), pb_dec_svarint(&s, &f, &d))); - TEST((s = S("\xfe\xff\xff\xff\x10"), !pb_dec_svarint(&s, &f, &d))); - TEST((s = S("\xff\xff\xff\xff\x0f"), pb_dec_svarint(&s, &f, &d))); - TEST((s = S("\xff\xff\xff\xff\x10"), !pb_dec_svarint(&s, &f, &d))); - } - - { - pb_istream_t s; - pb_field_t f = {1, PB_LTYPE_SVARINT, 0, 0, 4, 0, 0}; - uint32_t d; - - COMMENT("Test pb_dec_uvarint using uint32_t") - TEST((s = S("\x01"), pb_dec_uvarint(&s, &f, &d) && d == 1)) - TEST((s = S("\x02"), pb_dec_uvarint(&s, &f, &d) && d == 2)) - TEST((s = S("\xff\xff\xff\xff\x0f"), pb_dec_uvarint(&s, &f, &d) && d == UINT32_MAX)) - } - - { - pb_istream_t s; - pb_field_t f = {1, PB_LTYPE_SVARINT, 0, 0, 8, 0, 0}; - uint64_t d; - - COMMENT("Test pb_dec_uvarint using uint64_t") - TEST((s = S("\x01"), pb_dec_uvarint(&s, &f, &d) && d == 1)) - TEST((s = S("\x02"), pb_dec_uvarint(&s, &f, &d) && d == 2)) - TEST((s = S("\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01"), pb_dec_uvarint(&s, &f, &d) && d == UINT64_MAX)) - } - - { - pb_istream_t s; - pb_field_t f = {1, PB_LTYPE_SVARINT, 0, 0, 4, 0, 0}; - uint32_t d; - - COMMENT("Test pb_dec_uvarint overflow detection using int32_t"); - TEST((s = S("\xff\xff\xff\xff\x0f"), pb_dec_uvarint(&s, &f, &d))); - TEST((s = S("\xff\xff\xff\xff\x10"), !pb_dec_uvarint(&s, &f, &d))); - } - - { - pb_istream_t s; pb_field_t f = {1, PB_LTYPE_FIXED32, 0, 0, 4, 0, 0}; float d; @@ -231,7 +168,7 @@ int main() { pb_istream_t s; - struct { pb_size_t size; uint8_t bytes[5]; } d; + struct { size_t size; uint8_t bytes[5]; } d; pb_field_t f = {1, PB_LTYPE_BYTES, 0, 0, sizeof(d), 0, 0}; COMMENT("Test pb_dec_bytes") @@ -312,7 +249,7 @@ int main() { pb_istream_t s; CallbackArray dest; - struct { pb_size_t size; uint8_t bytes[10]; } ref; + struct { size_t size; uint8_t bytes[10]; } ref; dest.data.funcs.decode = &callback_check; dest.data.arg = &ref; @@ -354,14 +291,6 @@ int main() { pb_istream_t s; - IntegerArray dest; - - COMMENT("Testing pb_decode with invalid tag numbers") - TEST((s = S("\x9f\xea"), !pb_decode(&s, IntegerArray_fields, &dest))); - } - - { - pb_istream_t s; IntegerContainer dest = {{0}}; COMMENT("Testing pb_decode_delimited") @@ -370,28 +299,6 @@ int main() dest.submsg.data_count == 5) } - { - pb_istream_t s = {0}; - void *data = NULL; - - COMMENT("Testing allocate_field") - TEST(allocate_field(&s, &data, 10, 10) && data != NULL); - TEST(allocate_field(&s, &data, 10, 20) && data != NULL); - - { - void *oldvalue = data; - size_t very_big = (size_t)-1; - size_t somewhat_big = very_big / 2 + 1; - size_t not_so_big = (size_t)1 << (4 * sizeof(size_t)); - - TEST(!allocate_field(&s, &data, very_big, 2) && data == oldvalue); - TEST(!allocate_field(&s, &data, somewhat_big, 2) && data == oldvalue); - TEST(!allocate_field(&s, &data, not_so_big, not_so_big) && data == oldvalue); - } - - pb_free(data); - } - if (status != 0) fprintf(stdout, "\n\nSome tests FAILED!\n"); |