Mercurial > libjeffpc
changeset 717:8babb41c0f94
cbor: test that buffer position after unpacking is correct
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Tue, 19 Mar 2019 14:27:27 -0400 |
parents | 264c92a1d709 |
children | c36d9d172b17 |
files | tests/test_cbor_unpack.c |
diffstat | 1 files changed, 12 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test_cbor_unpack.c Mon Mar 18 17:50:48 2019 -0400 +++ b/tests/test_cbor_unpack.c Tue Mar 19 14:27:27 2019 -0400 @@ -57,10 +57,16 @@ \ if (ret) { \ /* failed, so there is no value to compare */ \ + if (buffer_offset(&tmp) != 0) \ + fail("direct unpack changed buffer"); \ + \ fprintf(stderr, "ok.\n"); \ break; \ } \ \ + if (buffer_offset(&tmp) != buffer_size(&tmp)) \ + fail("direct unpack didn't consume buffer"); \ + \ wrap = alloc; \ if (!sexpr_equal(wrap, val_getref(exp))) \ fail("direct unpack not equal"); \ @@ -88,10 +94,16 @@ \ if (IS_ERR(ret)) { \ /* failed, so there is no value to compare */ \ + if (buffer_offset(&tmp) != 0) \ + fail("indirect unpack changed buffer"); \ + \ fprintf(stderr, "ok.\n"); \ break; \ } \ \ + if (buffer_offset(&tmp) != buffer_size(&tmp)) \ + fail("indirect unpack didn't consume buffer"); \ + \ if (sexpr_is_null(exp)) { \ if ((ret->type != VT_ARRAY) || \ (ret->array.nelem != 0)) \