aboutsummaryrefslogtreecommitdiff
path: root/tests/decode_unittests/decode_unittests.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/decode_unittests/decode_unittests.c')
-rw-r--r--tests/decode_unittests/decode_unittests.c107
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");