chunk: Skip all leading zero bytes in chunk_skip_zero() not just the first

This commit is contained in:
Tobias Brunner
2016-04-04 15:39:42 +02:00
parent 85597f2983
commit b82b5f6398
2 changed files with 18 additions and 14 deletions
+16 -12
View File
@@ -316,11 +316,11 @@ START_TEST(test_chunk_skip)
foobar = chunk_from_str("foobar");
a = foobar;
a = chunk_skip(a, 0);
ck_assert(chunk_equals(a, foobar));
ck_assert_chunk_eq(a, foobar);
a = chunk_skip(a, 1);
ck_assert(chunk_equals(a, chunk_from_str("oobar")));
ck_assert_chunk_eq(a, chunk_from_str("oobar"));
a = chunk_skip(a, 2);
ck_assert(chunk_equals(a, chunk_from_str("bar")));
ck_assert_chunk_eq(a, chunk_from_str("bar"));
a = chunk_skip(a, 3);
assert_chunk_empty(a);
@@ -338,20 +338,24 @@ START_TEST(test_chunk_skip_zero)
{
chunk_t foobar, a;
a = chunk_empty;
a = chunk_skip_zero(a);
a = chunk_skip_zero(chunk_empty);
assert_chunk_empty(a);
foobar = chunk_from_str("foobar");
a = foobar;
a = chunk_skip_zero(a);
ck_assert(chunk_equals(a, foobar));
a = chunk_skip_zero(foobar);
ck_assert_chunk_eq(a, foobar);
a = chunk_from_chars(0x00, 0xaa, 0xbb, 0xcc);
foobar = chunk_from_chars(0x00);
a = chunk_skip_zero(foobar);
ck_assert_chunk_eq(a, foobar);
a = chunk_skip_zero(chunk_from_chars(0x00, 0xaa, 0xbb, 0xcc));
ck_assert_chunk_eq(a, chunk_from_chars(0xaa, 0xbb, 0xcc));
a = chunk_skip_zero(a);
ck_assert(chunk_equals(a, chunk_from_chars(0xaa, 0xbb, 0xcc)));
a = chunk_skip_zero(a);
ck_assert(chunk_equals(a, chunk_from_chars(0xaa, 0xbb, 0xcc)));
ck_assert_chunk_eq(a, chunk_from_chars(0xaa, 0xbb, 0xcc));
a = chunk_skip_zero(chunk_from_chars(0x00, 0x00, 0xaa, 0xbb, 0xcc));
ck_assert_chunk_eq(a, chunk_from_chars(0xaa, 0xbb, 0xcc));
}
END_TEST