test_bitstream.c 981 B

123456789101112131415161718192021222324252627282930313233343536
  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. UNUSED_PARAMETER(state);
  9. struct bitstream_reader reader;
  10. uint8_t data[6] = {0x34, 0xff, 0xe1, 0x23, 0x91, 0x45};
  11. // set len to one less than the array to show that we stop reading at that len
  12. bitstream_reader_init(&reader, data, 5);
  13. assert_int_equal(bitstream_reader_read_bits(&reader, 8), 0x34);
  14. assert_int_equal(bitstream_reader_read_bits(&reader, 1), 1);
  15. assert_int_equal(bitstream_reader_read_bits(&reader, 3), 7);
  16. assert_int_equal(bitstream_reader_read_bits(&reader, 4), 0xF);
  17. assert_int_equal(bitstream_reader_r8(&reader), 0xe1);
  18. assert_int_equal(bitstream_reader_r16(&reader), 0x2391);
  19. // test reached end
  20. assert_int_equal(bitstream_reader_r8(&reader), 0);
  21. }
  22. int main()
  23. {
  24. const struct CMUnitTest tests[] = {
  25. cmocka_unit_test(bitstream_test),
  26. };
  27. return cmocka_run_group_tests(tests, NULL, NULL);
  28. }