diff options
author | Lev Walkin <vlm@lionet.info> | 2013-03-28 03:13:38 -0700 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2013-03-28 03:13:38 -0700 |
commit | 7f35fd8cf10a5cf3b3350cea9be0522882a941fd (patch) | |
tree | 17d5569a6edb182e2a8302112051b111ea20de12 /skeletons | |
parent | bbc78f6872766aeb669aef543390c33f56a5f72b (diff) |
more PER tests
Diffstat (limited to 'skeletons')
-rw-r--r-- | skeletons/tests/check-PER.c | 54 |
1 files changed, 54 insertions, 0 deletions
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 <stdio.h> #include <assert.h> +#define EMIT_ASN_DEBUG 1 +#include <per_support.c> #include <per_support.h> 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; |