37 lines
981 B
C
37 lines
981 B
C
#include <stdarg.h>
|
|
#include <stddef.h>
|
|
#include <setjmp.h>
|
|
#include <cmocka.h>
|
|
|
|
#include <util/bitstream.h>
|
|
|
|
static void bitstream_test(void **state)
|
|
{
|
|
UNUSED_PARAMETER(state);
|
|
|
|
struct bitstream_reader reader;
|
|
uint8_t data[6] = {0x34, 0xff, 0xe1, 0x23, 0x91, 0x45};
|
|
|
|
// set len to one less than the array to show that we stop reading at that len
|
|
bitstream_reader_init(&reader, data, 5);
|
|
|
|
assert_int_equal(bitstream_reader_read_bits(&reader, 8), 0x34);
|
|
assert_int_equal(bitstream_reader_read_bits(&reader, 1), 1);
|
|
assert_int_equal(bitstream_reader_read_bits(&reader, 3), 7);
|
|
assert_int_equal(bitstream_reader_read_bits(&reader, 4), 0xF);
|
|
assert_int_equal(bitstream_reader_r8(&reader), 0xe1);
|
|
assert_int_equal(bitstream_reader_r16(&reader), 0x2391);
|
|
|
|
// test reached end
|
|
assert_int_equal(bitstream_reader_r8(&reader), 0);
|
|
}
|
|
|
|
int main()
|
|
{
|
|
const struct CMUnitTest tests[] = {
|
|
cmocka_unit_test(bitstream_test),
|
|
};
|
|
|
|
return cmocka_run_group_tests(tests, NULL, NULL);
|
|
}
|