From: Gerhard Sittig Date: Sun, 19 Mar 2023 19:17:21 +0000 (+0100) Subject: tests: cover length checking incrementing endianess readers X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=0c7c6a1d7e2ad201a540fae1abb3843f26fea1e7;p=libsigrok.git tests: cover length checking incrementing endianess readers --- diff --git a/tests/conv.c b/tests/conv.c index 551365e2..788c3672 100644 --- a/tests/conv.c +++ b/tests/conv.c @@ -114,6 +114,36 @@ START_TEST(test_endian_read) } END_TEST +START_TEST(test_endian_read_inc_len) +{ + const uint8_t *p; + size_t l; + + /* Position to the start of the input stream. */ + p = &buff1234[0]; + l = sizeof(buff1234); + + /* Read several fields of known type and values. */ + fail_unless(l == 8); + fail_unless(read_u8_inc_len(&p, &l) == 0x11); + fail_unless(l == 7); + fail_unless(read_u8_inc_len(&p, &l) == 0x22); + fail_unless(l == 6); + fail_unless(read_u16le_inc_len(&p, &l) == 0x4433); + fail_unless(l == 4); + fail_unless(read_u16le_inc_len(&p, &l) == 0x6655); + fail_unless(l == 2); + fail_unless(read_u16le_inc_len(&p, &l) == 0x8877); + fail_unless(l == 0); + + /* Read beyond the end of the input stream. */ + fail_unless(read_u8_inc_len(&p, &l) == 0x0); + fail_unless(l == 0); + fail_unless(read_u16le_inc_len(&p, &l) == 0x0); + fail_unless(l == 0); +} +END_TEST + START_TEST(test_endian_read_inc) { const uint8_t *p; @@ -249,6 +279,7 @@ Suite *suite_conv(void) tcase_add_test(tc, test_endian_macro); tcase_add_test(tc, test_endian_read); tcase_add_test(tc, test_endian_read_inc); + tcase_add_test(tc, test_endian_read_inc_len); tcase_add_test(tc, test_endian_write); tcase_add_test(tc, test_endian_write_inc); suite_add_tcase(s, tc);