Tests: Create a test for the lzma_index_cat bug.

This commit is contained in:
Jia Tan 2022-09-21 20:29:28 +08:00 committed by Lasse Collin
parent 4ed5fd54c6
commit 5e53a6c28b
1 changed files with 42 additions and 1 deletions

View File

@ -290,7 +290,7 @@ test_many(lzma_index *i)
static void
test_cat(void)
{
lzma_index *a, *b, *c;
lzma_index *a, *b, *c, *d, *e, *f;
lzma_index_iter r;
// Empty Indexes
@ -411,6 +411,47 @@ test_cat(void)
^ (i == 0));
lzma_index_end(a, NULL);
// Test for the bug fix 3d5a99ca373a4e86faf671226ca6487febb9eeac.
// lzma_index_checks would previously only return the checks
// for the last stream that was concatenated to the index.
d = create_small();
e = create_small();
f = create_small();
lzma_stream_flags crc32_flags = {
.backward_size = LZMA_BACKWARD_SIZE_MIN,
.check = LZMA_CHECK_CRC32
};
expect(lzma_index_stream_flags(d, &crc32_flags) == LZMA_OK);
lzma_stream_flags crc64_flags = {
.backward_size = LZMA_BACKWARD_SIZE_MIN,
.check = LZMA_CHECK_CRC64
};
expect(lzma_index_stream_flags(e, &crc64_flags) == LZMA_OK);
lzma_stream_flags sha256_flags = {
.backward_size = LZMA_BACKWARD_SIZE_MIN,
.check = LZMA_CHECK_SHA256
};
expect(lzma_index_stream_flags(f, &sha256_flags) == LZMA_OK);
expect(lzma_index_checks(d) == (1U << LZMA_CHECK_CRC32));
expect(lzma_index_checks(e) == (1U << LZMA_CHECK_CRC64));
expect(lzma_index_checks(f) == (1U << LZMA_CHECK_SHA256));
expect(lzma_index_cat(d, e, NULL) == LZMA_OK);
expect(lzma_index_checks(d) == ((1U << LZMA_CHECK_CRC32) |
(1U << LZMA_CHECK_CRC64)));
expect(lzma_index_cat(d, f, NULL) == LZMA_OK);
expect(lzma_index_checks(d) == ((1U << LZMA_CHECK_CRC32) |
(1U << LZMA_CHECK_CRC64) |
(1U << LZMA_CHECK_SHA256)));
lzma_index_end(d, NULL);
}