From 7f35fd8cf10a5cf3b3350cea9be0522882a941fd Mon Sep 17 00:00:00 2001 From: Lev Walkin Date: Thu, 28 Mar 2013 03:13:38 -0700 Subject: more PER tests --- skeletons/tests/check-PER.c | 54 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/skeletons/tests/check-PER.c b/skeletons/tests/check-PER.c index f21398b4..9fc02589 100644 --- a/skeletons/tests/check-PER.c +++ b/skeletons/tests/check-PER.c @@ -1,6 +1,8 @@ #include #include +#define EMIT_ASN_DEBUG 1 +#include #include static void @@ -69,6 +71,58 @@ check_per_decoding() { z = per_get_few_bits(&pos, 24); assert(z == 14443711); + pos.buffer = "\001"; + pos.nboff = 7; + pos.nbits = 7; + z = per_get_few_bits(&pos, 1); + assert(pos.nboff == 7); + assert(pos.nbits == 7); + assert(z == -1); + + pos.buffer = "\001"; + pos.nboff = 7; + pos.nbits = 8; + z = per_get_few_bits(&pos, 1); + assert(pos.nboff == 8); + assert(pos.nbits == 8); + assert(z == 1); + + pos.buffer = "\000"; + pos.nboff = 7; + pos.nbits = 8; + z = per_get_few_bits(&pos, 1); + assert(pos.nboff == 8); + assert(pos.nbits == 8); + assert(z == 0); + z = per_get_few_bits(&pos, 1); + assert(pos.nboff == 8); + assert(pos.nbits == 8); + assert(z == -1); + + pos.buffer = "\000"; + pos.nboff = 7; + pos.nbits = 9; + z = per_get_few_bits(&pos, 1); + assert(pos.nboff == 8); + assert(pos.nbits == 9); + assert(z == 0); + z = per_get_few_bits(&pos, 1); + assert(pos.nboff == 1); + assert(pos.nbits == 1); + assert(z == 0); + + pos.buffer = "\001"; + pos.nboff = 7; + pos.nbits = 9; + z = per_get_few_bits(&pos, 1); + assert(pos.nboff == 8); + assert(pos.nbits == 9); + assert(z == 1); + z = per_get_few_bits(&pos, 1); + assert(pos.nboff == 1); + assert(pos.nbits == 1); + assert(z == 0); + /* Get full 31-bit range */ pos.buffer = buf; pos.nboff = 7; -- cgit v1.2.3