test_bitstream.c 954 B

12345678910111213141516171819202122232425262728293031323334
  1. #include <stdarg.h>
  2. #include <stddef.h>
  3. #include <setjmp.h>
  4. #include <cmocka.h>
  5. #include <util/bitstream.h>
  6. static void bitstream_test(void **state)
  7. {
  8. struct bitstream_reader reader;
  9. uint8_t data[6] = {0x34, 0xff, 0xe1, 0x23, 0x91, 0x45};
  10. // set len to one less than the array to show that we stop reading at that len
  11. bitstream_reader_init(&reader, data, 5);
  12. assert_int_equal(bitstream_reader_read_bits(&reader, 8), 0x34);
  13. assert_int_equal(bitstream_reader_read_bits(&reader, 1), 1);
  14. assert_int_equal(bitstream_reader_read_bits(&reader, 3), 7);
  15. assert_int_equal(bitstream_reader_read_bits(&reader, 4), 0xF);
  16. assert_int_equal(bitstream_reader_r8(&reader), 0xe1);
  17. assert_int_equal(bitstream_reader_r16(&reader), 0x2391);
  18. // test reached end
  19. assert_int_equal(bitstream_reader_r8(&reader), 0);
  20. }
  21. int main()
  22. {
  23. const struct CMUnitTest tests[] = {
  24. cmocka_unit_test(bitstream_test),
  25. };
  26. return cmocka_run_group_tests(tests, NULL, NULL);
  27. }