obs-studio/test/cmocka/test_bitstream.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);
}