aboutsummaryrefslogtreecommitdiff
path: root/tests/files
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2008-08-28 22:53:15 +0300
committerLasse Collin <lasse.collin@tukaani.org>2008-08-28 22:53:15 +0300
commit3b34851de1eaf358cf9268922fa0eeed8278d680 (patch)
tree7bab212af647541df64227a8d350d17a2e789f6b /tests/files
parentFix test_filter_flags to match the new restriction of lc+lp. (diff)
downloadxz-3b34851de1eaf358cf9268922fa0eeed8278d680.tar.xz
Sort of garbage collection commit. :-| Many things are still
broken. API has changed a lot and it will still change a little more here and there. The command line tool doesn't have all the required changes to reflect the API changes, so it's easy to get "internal error" or trigger assertions.
Diffstat (limited to 'tests/files')
-rw-r--r--tests/files/README303
-rw-r--r--tests/files/bad-0-backward_size.lzmabin0 -> 32 bytes
-rw-r--r--tests/files/bad-0-empty-truncated.lzmabin0 -> 31 bytes
-rw-r--r--tests/files/bad-0-nonempty_index.lzmabin0 -> 32 bytes
-rw-r--r--tests/files/bad-0cat-alone.lzmabin0 -> 55 bytes
-rw-r--r--tests/files/bad-0catpad-empty.lzmabin0 -> 69 bytes
-rw-r--r--tests/files/bad-0pad-empty.lzmabin0 -> 37 bytes
-rw-r--r--tests/files/bad-1-block_header-1.lzmabin0 -> 64 bytes
-rw-r--r--tests/files/bad-1-block_header-2.lzmabin0 -> 64 bytes
-rw-r--r--tests/files/bad-1-block_header-3.lzmabin0 -> 68 bytes
-rw-r--r--tests/files/bad-1-block_header-4.lzmabin0 -> 72 bytes
-rw-r--r--tests/files/bad-1-check-crc32.lzmabin0 -> 68 bytes
-rw-r--r--tests/files/bad-1-check-crc64.lzmabin0 -> 72 bytes
-rw-r--r--tests/files/bad-1-check-sha256.lzmabin0 -> 96 bytes
-rw-r--r--tests/files/bad-1-lzma2-1.lzmabin0 -> 64 bytes
-rw-r--r--tests/files/bad-1-lzma2-2.lzmabin0 -> 424 bytes
-rw-r--r--tests/files/bad-1-lzma2-3.lzmabin0 -> 424 bytes
-rw-r--r--tests/files/bad-1-lzma2-4.lzmabin0 -> 408 bytes
-rw-r--r--tests/files/bad-1-lzma2-5.lzmabin0 -> 408 bytes
-rw-r--r--tests/files/bad-1-lzma2-6.lzmabin0 -> 68 bytes
-rw-r--r--tests/files/bad-1-lzma2-7.lzmabin0 -> 408 bytes
-rw-r--r--tests/files/bad-1-stream_flags-1.lzmabin0 -> 68 bytes
-rw-r--r--tests/files/bad-1-stream_flags-2.lzmabin0 -> 68 bytes
-rw-r--r--tests/files/bad-1-stream_flags-3.lzmabin0 -> 68 bytes
-rw-r--r--tests/files/bad-1-vli-1.lzmabin0 -> 72 bytes
-rw-r--r--tests/files/bad-1-vli-2.lzmabin0 -> 72 bytes
-rw-r--r--tests/files/bad-2-compressed_data_padding.lzmabin0 -> 92 bytes
-rw-r--r--tests/files/bad-2-index-1.lzmabin0 -> 92 bytes
-rw-r--r--tests/files/bad-2-index-2.lzmabin0 -> 92 bytes
-rw-r--r--tests/files/bad-2-index-3.lzmabin0 -> 92 bytes
-rw-r--r--tests/files/bad-2-index-4.lzmabin0 -> 92 bytes
-rw-r--r--tests/files/bad-cat-single-none-pad_garbage_1.lzmabin65 -> 0 bytes
-rw-r--r--tests/files/bad-cat-single-none-pad_garbage_2.lzmabin65 -> 0 bytes
-rw-r--r--tests/files/bad-cat-single-none-pad_garbage_3.lzmabin65 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-1.lzmabin54 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-2.lzmabin53 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-3.lzmabin53 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-block_1.lzmabin66 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-block_2.lzmabin66 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-block_3.lzmabin58 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-extra_1.lzmabin54 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-extra_2.lzmabin54 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-extra_3.lzmabin55 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-header_1.lzmabin57 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-header_2.lzmabin61 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-header_3.lzmabin59 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-header_4.lzmabin59 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-header_5.lzmabin58 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-header_6.lzmabin59 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-header_7.lzmabin59 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-index_1.lzmabin51 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-index_2.lzmabin49 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-index_3.lzmabin51 -> 0 bytes
-rw-r--r--tests/files/bad-multi-none-index_4.lzmabin51 -> 0 bytes
-rw-r--r--tests/files/bad-single-data_after_eopm_1.lzmabin55 -> 0 bytes
-rw-r--r--tests/files/bad-single-data_after_eopm_2.lzmabin56 -> 0 bytes
-rw-r--r--tests/files/bad-single-lzma-flush_beginning.lzmabin53 -> 0 bytes
-rw-r--r--tests/files/bad-single-lzma-flush_twice.lzmabin63 -> 0 bytes
-rw-r--r--tests/files/bad-single-none-empty.lzmabin19 -> 0 bytes
-rw-r--r--tests/files/bad-single-none-footer_filter_flags.lzmabin30 -> 0 bytes
-rw-r--r--tests/files/bad-single-none-too_long_vli.lzmabin39 -> 0 bytes
-rw-r--r--tests/files/bad-single-none-truncated.lzmabin29 -> 0 bytes
-rw-r--r--tests/files/bad-single-subblock-padding_loop.lzmabin43 -> 0 bytes
-rw-r--r--tests/files/bad-single-subblock1023-slow.lzmabin7886 -> 0 bytes
-rw-r--r--tests/files/bad-single-subblock_subblock.lzmabin26 -> 0 bytes
-rw-r--r--tests/files/good-0-empty.lzmabin0 -> 32 bytes
-rw-r--r--tests/files/good-0cat-empty.lzmabin0 -> 64 bytes
-rw-r--r--tests/files/good-0catpad-empty.lzmabin0 -> 68 bytes
-rw-r--r--tests/files/good-0pad-empty.lzmabin0 -> 36 bytes
-rw-r--r--tests/files/good-1-3delta-lzma2.lzmabin0 -> 528 bytes
-rw-r--r--tests/files/good-1-block_header-1.lzmabin0 -> 72 bytes
-rw-r--r--tests/files/good-1-block_header-2.lzmabin0 -> 68 bytes
-rw-r--r--tests/files/good-1-block_header-3.lzmabin0 -> 68 bytes
-rw-r--r--tests/files/good-1-check-crc32.lzmabin0 -> 68 bytes
-rw-r--r--tests/files/good-1-check-crc64.lzmabin0 -> 72 bytes
-rw-r--r--tests/files/good-1-check-none.lzmabin0 -> 64 bytes
-rw-r--r--tests/files/good-1-check-sha256.lzmabin0 -> 96 bytes
-rw-r--r--tests/files/good-1-delta-lzma2.tiff.lzmabin0 -> 51312 bytes
-rw-r--r--tests/files/good-1-lzma2-1.lzmabin0 -> 424 bytes
-rw-r--r--tests/files/good-1-lzma2-2.lzmabin0 -> 424 bytes
-rw-r--r--tests/files/good-1-lzma2-3.lzmabin0 -> 408 bytes
-rw-r--r--tests/files/good-1-sparc-lzma2.lzma (renamed from tests/files/good-single-sparc-lzma.lzma)bin2263 -> 2292 bytes
-rw-r--r--tests/files/good-1-x86-lzma2.lzma (renamed from tests/files/good-single-x86-lzma.lzma)bin1909 -> 1936 bytes
-rw-r--r--tests/files/good-2-lzma2.lzmabin0 -> 92 bytes
-rw-r--r--tests/files/good-cat-single-none-pad.lzmabin64 -> 0 bytes
-rw-r--r--tests/files/good-multi-none-1.lzmabin75 -> 0 bytes
-rw-r--r--tests/files/good-multi-none-2.lzmabin53 -> 0 bytes
-rw-r--r--tests/files/good-multi-none-block_1.lzmabin66 -> 0 bytes
-rw-r--r--tests/files/good-multi-none-block_2.lzmabin58 -> 0 bytes
-rw-r--r--tests/files/good-multi-none-extra_1.lzmabin51 -> 0 bytes
-rw-r--r--tests/files/good-multi-none-extra_2.lzmabin79 -> 0 bytes
-rw-r--r--tests/files/good-multi-none-extra_3.lzmabin55 -> 0 bytes
-rw-r--r--tests/files/good-multi-none-header_1.lzmabin58 -> 0 bytes
-rw-r--r--tests/files/good-multi-none-header_2.lzmabin66 -> 0 bytes
-rw-r--r--tests/files/good-multi-none-header_3.lzmabin59 -> 0 bytes
-rw-r--r--tests/files/good-single-delta-lzma.tiff.lzmabin51409 -> 0 bytes
-rw-r--r--tests/files/good-single-lzma-empty.lzmabin21 -> 0 bytes
-rw-r--r--tests/files/good-single-lzma-flush_1.lzmabin48 -> 0 bytes
-rw-r--r--tests/files/good-single-lzma-flush_2.lzmabin63 -> 0 bytes
-rw-r--r--tests/files/good-single-lzma.lzmabin44 -> 0 bytes
-rw-r--r--tests/files/good-single-none-empty_1.lzmabin18 -> 0 bytes
-rw-r--r--tests/files/good-single-none-empty_2.lzmabin26 -> 0 bytes
-rw-r--r--tests/files/good-single-none-empty_3.lzmabin19 -> 0 bytes
-rw-r--r--tests/files/good-single-none-pad.lzmabin32 -> 0 bytes
-rw-r--r--tests/files/good-single-none.lzmabin30 -> 0 bytes
-rw-r--r--tests/files/good-single-subblock-lzma.lzmabin50 -> 0 bytes
-rw-r--r--tests/files/good-single-subblock_implicit.lzmabin35 -> 0 bytes
-rw-r--r--tests/files/good-single-subblock_rle.lzmabin118 -> 0 bytes
-rw-r--r--tests/files/malicious-multi-metadata-64PiB.lzmabin51 -> 0 bytes
-rw-r--r--tests/files/malicious-single-subblock-256MiB.lzmabin30 -> 0 bytes
-rw-r--r--tests/files/malicious-single-subblock-64PiB.lzmabin45 -> 0 bytes
-rw-r--r--tests/files/malicious-single-subblock31-slow.lzmabin1233 -> 0 bytes
-rw-r--r--tests/files/unsupported-block_header.lzmabin0 -> 68 bytes
-rw-r--r--tests/files/unsupported-check.lzmabin0 -> 68 bytes
-rw-r--r--tests/files/unsupported-filter_flags-1.lzmabin0 -> 68 bytes
-rw-r--r--tests/files/unsupported-filter_flags-2.lzmabin0 -> 68 bytes
-rw-r--r--tests/files/unsupported-filter_flags-3.lzmabin0 -> 68 bytes
117 files changed, 118 insertions, 185 deletions
diff --git a/tests/files/README b/tests/files/README
index 4d0ef8bd..7c7f4e18 100644
--- a/tests/files/README
+++ b/tests/files/README
@@ -14,259 +14,192 @@
1. File Types
Good files (good-*.lzma) must decode successfully without requiring
- a lot of CPU time or RAM. If the decoder supports only Single-Block
- Streams, then good-multi-*.lzma won't decode, of course.
+ a lot of CPU time or RAM.
+
+ Unsupported files (unsupported-*.lzma) are good files, but headers
+ indicate features not supported by the current file format
+ specification.
Bad files (bad-*.lzma) must cause the decoder to give an error. Like
with the good files, these files must not require a lot of CPU time
or RAM before they get detected to be broken.
- Malicious files (malicious-*.lzma) are good in terms of the file format
- specification, but try to trigger excessive CPU, RAM or disk usage in
- the decoder. To prevent malicious files from putting the decoder in
- inifinite loop (*), eating all available RAM or disk space, decoders
- should have internal limiters that catch these situations.
-
- (*) Strictly speaking not infinite, but if decoding of a small file
- would take a few weeks or even years, it's an infinite loop in
- practice.
-
2. Descriptions of Individual Files
2.1. Good Files
- good-single-none.lzma uses implicit Copy filter with known Uncompressed
- Size.
+ good-0-empty.lzma has one Stream with no Blocks.
+
+ good-0pad-empty.lzma has one Stream with no Blocks followed by
+ four-byte Stream Padding.
- good-single-none-pad.lzma is good-single-none.lzma with Footer Padding.
+ good-0cat-empty.lzma has two zero-Block Streams concatenated without
+ Stream Padding.
- good-cat-single-none-pad.lzma is two good-single-none-pad.lzma files
- concatenated as is. Fully decoding this file requires that the decoder
- supports decoding concatenated files.
+ good-0catpad-empty.lzma has two zero-Block Streams concatenated with
+ four-byte Stream Padding between the Streams.
- good-single-subblock_implicit.lzma uses implicit Subblock filter.
+ good-1-check-none.lzma has one Stream with one Block with two
+ uncompressed LZMA2 chunks and no integrity check.
- good-single-lzma.lzma is LZMA compressed file with EOPM.
+ good-1-check-crc32.lzma has one Stream with one Block with two
+ uncompressed LZMA2 chunks and CRC32 check.
- good-single-subblock-lzma.lzma has basic combination of Subblock and
- LZMA filters.
+ good-1-check-crc64.lzma is like good-1-check-crc32.lzma but with CRC64.
- good-single-none-empty_1.lzma is an empty file with implicit Copy
- filter and no integrity Check.
+ good-1-check-sha256.lzma is like good-1-check-crc32.lzma but with
+ SHA256.
- good-single-none-empty_2.lzma is an empty file with implicit Copy
- filter and CRC32 as Check.
+ good-2-lzma2.lzma has one Stream with two Blocks with one uncompressed
+ LZMA2 chunk in each Block.
- good-single-none-empty_3.lzma is an empty file with implicit Copy
- filter, known Compressed Size, and no integrity Check.
+ good-1-block_header-1.lzma has both Compressed Size and Uncompressed
+ Size in the Block Header. This has also four extra bytes of Header
+ Padding.
- good-single-lzma-empty.lzma is an empty file with LZMA filter and no
- integrity Check.
+ good-1-block_header-2.lzma has known Compressed Size.
- good-single-subblock_rle.lzma takes advantage of Subblock filter's
- run-length encoding.
+ good-1-block_header-3.lzma has known Uncompressed Size.
- good-single-delta-lzma.tiff.lzma is an image file that compresses
- better with Delta+LZMA than with plain LZMA.
+ good-1-delta-lzma2.tiff.lzma is an image file that compresses
+ better with Delta+LZMA2 than with plain LZMA2.
- good-single-x86-lzma.lzma uses the x86 filter (BCJ) and LZMA. The
+ good-1-x86-lzma2.lzma uses the x86 filter (BCJ) and LZMA2. The
uncompressed file is compress_prepared_bcj_x86 found from the tests
directory.
- good-single-sparc-lzma.lzma uses the SPARC filter and LZMA. The
+ good-1-sparc-lzma2.lzma uses the SPARC filter and LZMA. The
uncompressed file is compress_prepared_bcj_sparc found from the tests
directory.
- good-single-lzma-flush_1.lzma has a flush marker in the middle of
- the file, and no EOPM.
-
- good-single-lzma-flush_2.lzma has a flush marker in the middle of
- the file and just before EOPM.
-
- good-multi-none-1.lzma is a basic Multi-Block Stream with two Data
- Blocks and Footer Metadata Block.
-
- good-multi-none-2.lzma is good-multi-none-1.lzma with Total Size and
- Uncompressed Size added to the Footer Metadata Block.
-
- good-multi-none-extra_1.lzma has the `Extra is present' flag set but
- no actual Extra Records.
-
- good-multi-none-extra_2.lzma has two non-empty Extra Records.
-
- good-multi-none-extra_3.lzma has an Extra Record that has empty Data.
-
- good-multi-none-header_1.lzma has very minimal Header Metadata Block
- with only the Metadata Flags field.
-
- good-multi-none-header_2.lzma has all information in both Header and
- Footer Metadata Blocks. The Size of Header Metadata Block has wrong
- value in Header Metadata Block, but this value must be ignored by
- the decoder in case of Header Metadata Block.
-
- good-multi-none-header_3.lzma has Index only in the Header Metadata
- Block. Footer Metadata Block contains only Size of Header Metadata
- Block and Total Size.
-
- good-multi-none-block_1.lzma has Index in Header Metadata Block. The
- Compressed Size and Uncompressed Size fields are present in the Data
- Blocks. There is some Footer Padding between the Blocks.
-
- good-multi-none-block_2.lzma has Index in Header Metadata Block. The
- Uncompressed Size field is present in Data Blocks and no EOPM is used.
+ good-1-lzma2-1.lzma has two LZMA2 chunks, of which the second sets
+ new properties.
+ good-1-lzma2-2.lzma has two LZMA2 chunks, of which the second resets
+ the state without specifying new properties.
-2.2. Bad Files
+ good-1-lzma2-3.lzma has two LZMA2 chunks, of which the first is
+ uncompressed and the second is LZMA. The first chunk resets dictionary
+ and the second sets new properties.
- bad-single-none-truncated.lzma is good-single-none.lzma without the
- last byte of the file.
+ good-1-3delta-lzma2.lzma has three Delta filters and LZMA2.
- bad-cat-single-none-pad_garbage_1.lzma is good-cat-single-none-pad.lzma
- with 0xFE appended to the end of the file. 0xFE doesn't begin .lzma
- or LZMA_Alone format file.
- bad-cat-single-none-pad_garbage_2.lzma is good-cat-single-none-pad.lzma
- with 0xFF appended to the end of the file. 0xFF begins .lzma format
- file, thus the decoder has to detect that the file is incomplete.
+2.2. Unsupported Files
- bad-cat-single-none-pad_garbage_3.lzma is good-cat-single-none-pad.lzma
- with 0x5D appended to the end of the file. 0x5D is the most common
- first byte of LZMA_Alone format file.
+ unsupported-check.lzma uses Check ID 0x02 which isn't supported by
+ the current version of the file format. It is implementation-defined
+ how this file handled (it may reject it, or decode it possibly with
+ a warning).
- bad-single-none-footer_filter_flags.lzma has different Stream Flags
- in Stream Footer than in Stream Header.
+ unsupported-block_header.lzma has a non-nul byte in Header Padding,
+ which may indicate presence of a new unsupported field.
- bad-single-none-too_long_vli.lzma has 10-byte variable-length integer.
+ unsupported-filter_flags-1.lzma has unsupported Filter ID 0x7F.
- bad-single-none-empty.lzma is like good-single-none-empty_3.lzma but
- with non-zero value in the Compressed Size field.
+ unsupported-filter_flags-2.lzma specifies only Delta filter in the
+ List of Filter Flags, but Delta isn't allowed as the last filter in
+ the chain. It could be a little more correct to detect this file as
+ corrupt instead of unsupported, but saying it is unsupported is
+ simpler in case of liblzma.
- bad-single-data_after_eopm_1.lzma has LZMA+Subblock, where the Subblock
- filter gives one byte of data to LZMA after LZMA has detected EOPM.
+ unsupported-filter_flags-3.lzma specifies two LZMA2 filters in the
+ List of Filter Flags. LZMA2 is allowed only as the last filter in the
+ chain. It could be a little more correct to detect this file as
+ corrupt instead of unsupported, but saying it is unsupported is
+ simpler in case of liblzma.
- bad-single-data_after_eopm_2.lzma is like
- bad-single-data_after_eopm_1.lzma but Subblock gives 256 MiB of data
- to LZMA after LZMA has detected EOPM.
- bad-single-subblock_subblock.lzma has Subblock+Subblock, where the
- Subblock decoder is given End of Input in the middle of a Subblock.
+2.3. Bad Files
- bad-single-subblock-padding_loop.lzma contains huge amount of
- consecutive Padding bytes, which isn't allowed by the Subblock filter
- format. If it were allowed, this file would hang the decoder for very
- long time (weeks to years).
+ bad-0pad-empty.lzma has one Stream with no Blocks followed by
+ five-byte Stream Padding. Stream Padding must be a multiple of four
+ bytes, thus this file is corrupt.
- bad-single-subblock1023-slow.lzma is similar to
- malicious-single-subblock31-slow.lzma except that this uses 1023 bytes
- of Padding in every place instead of 31 bytes. The Subblock filter
- format specification allows only 31-byte Padings, thus this file must
- get detected as bad without producing any output. Allowing larger
- Padding than 31 bytes was considered (so this test file was created),
- but it seemed to be a bad idea since it would increase worst-case CPU
- usage.
+ bad-0catpad-empty.lzma has two zero-Block Streams concatenated with
+ five-byte Stream Padding between the Streams.
- bad-single-lzma-flush_beginning.lzma has flush marker in the beginning
- of the LZMA data.
+ bad-0cat-alone.lzma is good-0-empty.lzma concatenated with an empty
+ LZMA_Alone file.
- bad-single-lzma-flush_twice.lzma has two flush markers with no data
- between them.
+ bad-0-empty-truncated.lzma is good-0-empty.lzma without the last byte
+ of the file.
- bad-multi-none-1.lzma has data after the last field in the Metadata
- Block and the `Extra is present' flag is not set.
+ bad-0-nonempty_index.lzma has no Blocks but Index claims that there is
+ one Block.
- bad-multi-none-2.lzma has wrong Total Size in Footer Metadata Block.
+ bad-0-backward_size.lzma has wrong Backward Size in Stream Footer.
- bad-multi-none-3.lzma has wrong Uncompressed Size in Footer Metadata
- Block.
+ bad-1-stream_flags-1.lzma has different Stream Flags in Stream Header
+ and Stream Footer.
- bad-multi-none-index_1.lzma has wrong value in the Number of Data
- Blocks field.
+ bad-1-stream_flags-2.lzma has wrong CRC32 in Stream Header.
- bad-multi-none-index_2.lzma has too short Metadata to contain all
- the Index Records.
+ bad-1-stream_flags-3.lzma has wrong CRC32 in Stream Footer.
- bad-multi-none-index_3.lzma has wrong value in Total Size field in
- the Index.
+ bad-1-vli-1.lzma has two-byte variable-length integer in the
+ Uncompressed Size field in Block Header while one-byte would be enough
+ for that value. It's important that the file gets rejected due to too
+ big integer encoding instead of due to Uncompressed Size not matching
+ the value stored in the Block Header. That is, the decoder must not
+ try to decode the Compressed Data field.
- bad-multi-none-index_4.lzma has wrong value in Uncompressed Size field
- in the Index.
+ bad-1-vli-2.lzma has ten-byte variable-length integer as Uncompressed
+ Size in Block Header. It's important that the file gets rejected due
+ to too big integer encoding instead of due to Uncompressed Size not
+ matching the value stored in the Block Header. That is, the decoder
+ must not try to decode the Compressed Data field.
- bad-multi-none-extra_1.lzma has incomplete Extra Record at the end of
- the Metadata Block.
+ bad-1-block_header-1.lzma has Block Header that ends in the middle of
+ the Filter Flags field.
- bad-multi-none-extra_2.lzma has incomplete variable-length integer as
- Extra Record ID.
+ bad-1-block_header-2.lzma has Block Header that has Compressed Size and
+ Uncompressed Size but no List of Filter Flags field.
- bad-multi-none-extra_3.lzma has incomplete Extra Record at the end of
- the Metadata Block.
+ bad-1-block_header-3.lzma has wrong CRC32 in Block Header.
- bad-multi-none-header_1.lzma has empty Header Metadata Block (even
- the Metadata Flags field is not present).
+ bad-1-block_header-4.lzma has too big Compressed Size (2^63 bytes while
+ maximum is 2^63 - 4 bytes) in Block Header. It's important that the
+ file gets rejected due to invalid Compressed Size value; the decoder
+ must not try decoding the Compressed Data field.
- bad-multi-none-header_2.lzma has Index in the Header Metadata Block,
- which describes only one Data Block, while the Stream actually has
- two Data Blocks. A sophisticated decoder should give an error when
- it detects the second Data Block; all Multi-Block decoders must
- detect the file as corrupt at some point.
+ bad-2-index-1.lzma has wrong Total Sizes in Index.
- bad-multi-none-header_3.lzma contains too small Total Size in Header
- Metadata Block. A sophisticated decoder should abort decoding before
- the second Data Block, preferably before the first Data Block has
- been finished; all Multi-Block decoders must detect the file as
- corrupt at some point.
+ bad-2-index-2.lzma has wrong Uncompressed Sizes in Index.
- bad-multi-none-header_4.lzma is like bad-multi-none-header_3.lzma but
- with too small Uncompressed Size.
+ bad-2-index-3.lzma has non-nul byte in Index Padding.
- bad-multi-none-header_5.lzma has Index in the Header Metadata Block,
- but the Total Size field is missing from the Footer Metadata Block.
+ bad-2-index-4.lzma wrong CRC32 in Index.
- bad-multi-none-header_6.lzma has both Index and Total Size in Header
- Metadata Block, but Total Size doesn't match the Index. A sophisticated
- decoder should abort before decoding any Data Blocks; all Multi-Block
- decoders must detect the file as corrupt at some point.
+ bad-2-compressed_data_padding.lzma has non-nul byte in the padding of
+ the Compressed Data field of the first Block.
- bad-multi-none-header_7.lzma has zero as the Size of Header Metadata
- Block in the Header Metadata Block.
+ bad-1-check-crc32.lzma has wrong Check (CRC32).
- bad-multi-none-block_1.lzma has wrong Uncompressed Size in the first
- Data Block. A sophisticated decoder should detect this error before
- producing any output, because it can see that the Uncompressed Size
- doesn't match with the Index in Header Metadata Block; all Multi-Block
- decoders must detect the file as corrupt at some point.
+ bad-1-check-crc64.lzma has wrong Check (CRC64).
- bad-multi-none-block_2.lzma has too big Compressed Size in the first
- Data Block. A sophisticated decoder may be able to detect the file as
- corrupt before producing any output, because Comrpessed Size + size
- of Block Header exceed the Total Size stored in Index in Header
- Metadata Block. A sophisticated decoder should be able to detect the
- error before the end of the first Data Block; all Multi-Block decoders
- must detect the file as corrupt at some point.
+ bad-1-check-sha256.lzma has wrong Check (SHA-256).
- bad-multi-none-block_3.lzma has only the Compressed Size field in the
- Block Header of the second Data Block and EOPM isn't used.
+ bad-1-lzma2-1.lzma has LZMA2 stream whose first chunk (uncompressed)
+ doesn't reset the dictionary.
+ bad-1-lzma2-2.lzma has two LZMA2 chunks, of which the second chunk
+ indicates dictionary reset, but the LZMA compressed data tries to
+ repeat data from the previous chunk.
-2.3. Malicious Files
+ bad-1-lzma2-3.lzma sets new invalid properties (lc=8, lp=0, pb=0) in
+ the middle of Block.
- malicious-single-subblock31-slow.lzma requires quite a bit of CPU time
- per decoded byte. It contains LZMA compressed Subblock filter data that
- has as much Padding as the specification allows. LZMA is also used as
- a Subfilter, to further slowdown the decoder. Every Subfilter instance
- produces only one byte of output. If you can create a file that wastes
- notably more CPU cycles than this file, please contact Lasse Collin.
+ bad-1-lzma2-4.lzma has two LZMA2 chunks, of which the first is
+ uncompressed and the second is LZMA. The first chunk resets dictionary
+ as it should, but the second chunk tries to reset state without
+ specifying properties for LZMA.
- malicious-single-subblock-256MiB.lzma is a tiny file that produces
- 256 MiB of output. It uses Subblock filter's run-length encoding
- to achieve this.
+ bad-1-lzma2-5.lzma is like bad-1-lzma2-4.lzma but doesn't try to reset
+ anything in the header of the second chunk.
- malicious-single-subblock-64PiB.lzma is a tiny file that produces
- 64 PiB of output (if you have patience to wait). This is done by
- chaining two Subblock filters and using their run-length encoders.
+ bad-1-lzma2-6.lzma has reserved LZMA2 control byte value (0x03).
- malicious-multi-metadata-64PiB.lzma is like
- malicious-single-subblock-64PiB.lzma but the huge amount of output
- is in a Metadata Block. Trying to decode this file may take years
- unless the decoder catches that the Metadata has unreasonable size.
+ bad-1-lzma2-7.lzma has EOPM at LZMA level.
diff --git a/tests/files/bad-0-backward_size.lzma b/tests/files/bad-0-backward_size.lzma
new file mode 100644
index 00000000..07c4695a
--- /dev/null
+++ b/tests/files/bad-0-backward_size.lzma
Binary files differ
diff --git a/tests/files/bad-0-empty-truncated.lzma b/tests/files/bad-0-empty-truncated.lzma
new file mode 100644
index 00000000..15b6fe36
--- /dev/null
+++ b/tests/files/bad-0-empty-truncated.lzma
Binary files differ
diff --git a/tests/files/bad-0-nonempty_index.lzma b/tests/files/bad-0-nonempty_index.lzma
new file mode 100644
index 00000000..2a612c61
--- /dev/null
+++ b/tests/files/bad-0-nonempty_index.lzma
Binary files differ
diff --git a/tests/files/bad-0cat-alone.lzma b/tests/files/bad-0cat-alone.lzma
new file mode 100644
index 00000000..650c67f0
--- /dev/null
+++ b/tests/files/bad-0cat-alone.lzma
Binary files differ
diff --git a/tests/files/bad-0catpad-empty.lzma b/tests/files/bad-0catpad-empty.lzma
new file mode 100644
index 00000000..33892a24
--- /dev/null
+++ b/tests/files/bad-0catpad-empty.lzma
Binary files differ
diff --git a/tests/files/bad-0pad-empty.lzma b/tests/files/bad-0pad-empty.lzma
new file mode 100644
index 00000000..c5b985c0
--- /dev/null
+++ b/tests/files/bad-0pad-empty.lzma
Binary files differ
diff --git a/tests/files/bad-1-block_header-1.lzma b/tests/files/bad-1-block_header-1.lzma
new file mode 100644
index 00000000..a68119ff
--- /dev/null
+++ b/tests/files/bad-1-block_header-1.lzma
Binary files differ
diff --git a/tests/files/bad-1-block_header-2.lzma b/tests/files/bad-1-block_header-2.lzma
new file mode 100644
index 00000000..7a2eb5e4
--- /dev/null
+++ b/tests/files/bad-1-block_header-2.lzma
Binary files differ
diff --git a/tests/files/bad-1-block_header-3.lzma b/tests/files/bad-1-block_header-3.lzma
new file mode 100644
index 00000000..801a05c1
--- /dev/null
+++ b/tests/files/bad-1-block_header-3.lzma
Binary files differ
diff --git a/tests/files/bad-1-block_header-4.lzma b/tests/files/bad-1-block_header-4.lzma
new file mode 100644
index 00000000..0d005455
--- /dev/null
+++ b/tests/files/bad-1-block_header-4.lzma
Binary files differ
diff --git a/tests/files/bad-1-check-crc32.lzma b/tests/files/bad-1-check-crc32.lzma
new file mode 100644
index 00000000..b82b6591
--- /dev/null
+++ b/tests/files/bad-1-check-crc32.lzma
Binary files differ
diff --git a/tests/files/bad-1-check-crc64.lzma b/tests/files/bad-1-check-crc64.lzma
new file mode 100644
index 00000000..57938927
--- /dev/null
+++ b/tests/files/bad-1-check-crc64.lzma
Binary files differ
diff --git a/tests/files/bad-1-check-sha256.lzma b/tests/files/bad-1-check-sha256.lzma
new file mode 100644
index 00000000..e47609cd
--- /dev/null
+++ b/tests/files/bad-1-check-sha256.lzma
Binary files differ
diff --git a/tests/files/bad-1-lzma2-1.lzma b/tests/files/bad-1-lzma2-1.lzma
new file mode 100644
index 00000000..0296e5ff
--- /dev/null
+++ b/tests/files/bad-1-lzma2-1.lzma
Binary files differ
diff --git a/tests/files/bad-1-lzma2-2.lzma b/tests/files/bad-1-lzma2-2.lzma
new file mode 100644
index 00000000..faefa1b4
--- /dev/null
+++ b/tests/files/bad-1-lzma2-2.lzma
Binary files differ
diff --git a/tests/files/bad-1-lzma2-3.lzma b/tests/files/bad-1-lzma2-3.lzma
new file mode 100644
index 00000000..fbe3297f
--- /dev/null
+++ b/tests/files/bad-1-lzma2-3.lzma
Binary files differ
diff --git a/tests/files/bad-1-lzma2-4.lzma b/tests/files/bad-1-lzma2-4.lzma
new file mode 100644
index 00000000..ef0dc491
--- /dev/null
+++ b/tests/files/bad-1-lzma2-4.lzma
Binary files differ
diff --git a/tests/files/bad-1-lzma2-5.lzma b/tests/files/bad-1-lzma2-5.lzma
new file mode 100644
index 00000000..797b7d35
--- /dev/null
+++ b/tests/files/bad-1-lzma2-5.lzma
Binary files differ
diff --git a/tests/files/bad-1-lzma2-6.lzma b/tests/files/bad-1-lzma2-6.lzma
new file mode 100644
index 00000000..73db5bff
--- /dev/null
+++ b/tests/files/bad-1-lzma2-6.lzma
Binary files differ
diff --git a/tests/files/bad-1-lzma2-7.lzma b/tests/files/bad-1-lzma2-7.lzma
new file mode 100644
index 00000000..845da22e
--- /dev/null
+++ b/tests/files/bad-1-lzma2-7.lzma
Binary files differ
diff --git a/tests/files/bad-1-stream_flags-1.lzma b/tests/files/bad-1-stream_flags-1.lzma
new file mode 100644
index 00000000..cd0d6f43
--- /dev/null
+++ b/tests/files/bad-1-stream_flags-1.lzma
Binary files differ
diff --git a/tests/files/bad-1-stream_flags-2.lzma b/tests/files/bad-1-stream_flags-2.lzma
new file mode 100644
index 00000000..63dec85b
--- /dev/null
+++ b/tests/files/bad-1-stream_flags-2.lzma
Binary files differ
diff --git a/tests/files/bad-1-stream_flags-3.lzma b/tests/files/bad-1-stream_flags-3.lzma
new file mode 100644
index 00000000..3b306ff7
--- /dev/null
+++ b/tests/files/bad-1-stream_flags-3.lzma
Binary files differ
diff --git a/tests/files/bad-1-vli-1.lzma b/tests/files/bad-1-vli-1.lzma
new file mode 100644
index 00000000..7bcdd568
--- /dev/null
+++ b/tests/files/bad-1-vli-1.lzma
Binary files differ
diff --git a/tests/files/bad-1-vli-2.lzma b/tests/files/bad-1-vli-2.lzma
new file mode 100644
index 00000000..af2b614b
--- /dev/null
+++ b/tests/files/bad-1-vli-2.lzma
Binary files differ
diff --git a/tests/files/bad-2-compressed_data_padding.lzma b/tests/files/bad-2-compressed_data_padding.lzma
new file mode 100644
index 00000000..c9de4748
--- /dev/null
+++ b/tests/files/bad-2-compressed_data_padding.lzma
Binary files differ
diff --git a/tests/files/bad-2-index-1.lzma b/tests/files/bad-2-index-1.lzma
new file mode 100644
index 00000000..cc6ba6dd
--- /dev/null
+++ b/tests/files/bad-2-index-1.lzma
Binary files differ
diff --git a/tests/files/bad-2-index-2.lzma b/tests/files/bad-2-index-2.lzma
new file mode 100644
index 00000000..8ce40b63
--- /dev/null
+++ b/tests/files/bad-2-index-2.lzma
Binary files differ
diff --git a/tests/files/bad-2-index-3.lzma b/tests/files/bad-2-index-3.lzma
new file mode 100644
index 00000000..de27f55f
--- /dev/null
+++ b/tests/files/bad-2-index-3.lzma
Binary files differ
diff --git a/tests/files/bad-2-index-4.lzma b/tests/files/bad-2-index-4.lzma
new file mode 100644
index 00000000..0a273477
--- /dev/null
+++ b/tests/files/bad-2-index-4.lzma
Binary files differ
diff --git a/tests/files/bad-cat-single-none-pad_garbage_1.lzma b/tests/files/bad-cat-single-none-pad_garbage_1.lzma
deleted file mode 100644
index 447f1998..00000000
--- a/tests/files/bad-cat-single-none-pad_garbage_1.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-cat-single-none-pad_garbage_2.lzma b/tests/files/bad-cat-single-none-pad_garbage_2.lzma
deleted file mode 100644
index 26595aae..00000000
--- a/tests/files/bad-cat-single-none-pad_garbage_2.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-cat-single-none-pad_garbage_3.lzma b/tests/files/bad-cat-single-none-pad_garbage_3.lzma
deleted file mode 100644
index 73c87449..00000000
--- a/tests/files/bad-cat-single-none-pad_garbage_3.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-1.lzma b/tests/files/bad-multi-none-1.lzma
deleted file mode 100644
index 208e5100..00000000
--- a/tests/files/bad-multi-none-1.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-2.lzma b/tests/files/bad-multi-none-2.lzma
deleted file mode 100644
index f338e5b3..00000000
--- a/tests/files/bad-multi-none-2.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-3.lzma b/tests/files/bad-multi-none-3.lzma
deleted file mode 100644
index 936ae694..00000000
--- a/tests/files/bad-multi-none-3.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-block_1.lzma b/tests/files/bad-multi-none-block_1.lzma
deleted file mode 100644
index 17385aec..00000000
--- a/tests/files/bad-multi-none-block_1.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-block_2.lzma b/tests/files/bad-multi-none-block_2.lzma
deleted file mode 100644
index b88836a5..00000000
--- a/tests/files/bad-multi-none-block_2.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-block_3.lzma b/tests/files/bad-multi-none-block_3.lzma
deleted file mode 100644
index f5bc72be..00000000
--- a/tests/files/bad-multi-none-block_3.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-extra_1.lzma b/tests/files/bad-multi-none-extra_1.lzma
deleted file mode 100644
index ac408dc3..00000000
--- a/tests/files/bad-multi-none-extra_1.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-extra_2.lzma b/tests/files/bad-multi-none-extra_2.lzma
deleted file mode 100644
index 9cb47e16..00000000
--- a/tests/files/bad-multi-none-extra_2.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-extra_3.lzma b/tests/files/bad-multi-none-extra_3.lzma
deleted file mode 100644
index 9c837151..00000000
--- a/tests/files/bad-multi-none-extra_3.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-header_1.lzma b/tests/files/bad-multi-none-header_1.lzma
deleted file mode 100644
index fbad4010..00000000
--- a/tests/files/bad-multi-none-header_1.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-header_2.lzma b/tests/files/bad-multi-none-header_2.lzma
deleted file mode 100644
index e7e66a7c..00000000
--- a/tests/files/bad-multi-none-header_2.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-header_3.lzma b/tests/files/bad-multi-none-header_3.lzma
deleted file mode 100644
index 37648e3e..00000000
--- a/tests/files/bad-multi-none-header_3.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-header_4.lzma b/tests/files/bad-multi-none-header_4.lzma
deleted file mode 100644
index 33cf425d..00000000
--- a/tests/files/bad-multi-none-header_4.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-header_5.lzma b/tests/files/bad-multi-none-header_5.lzma
deleted file mode 100644
index 313661f9..00000000
--- a/tests/files/bad-multi-none-header_5.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-header_6.lzma b/tests/files/bad-multi-none-header_6.lzma
deleted file mode 100644
index 4055256b..00000000
--- a/tests/files/bad-multi-none-header_6.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-header_7.lzma b/tests/files/bad-multi-none-header_7.lzma
deleted file mode 100644
index 66b2d4b5..00000000
--- a/tests/files/bad-multi-none-header_7.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-index_1.lzma b/tests/files/bad-multi-none-index_1.lzma
deleted file mode 100644
index b1bd0cee..00000000
--- a/tests/files/bad-multi-none-index_1.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-index_2.lzma b/tests/files/bad-multi-none-index_2.lzma
deleted file mode 100644
index 59d92c6c..00000000
--- a/tests/files/bad-multi-none-index_2.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-index_3.lzma b/tests/files/bad-multi-none-index_3.lzma
deleted file mode 100644
index 5b94972a..00000000
--- a/tests/files/bad-multi-none-index_3.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-multi-none-index_4.lzma b/tests/files/bad-multi-none-index_4.lzma
deleted file mode 100644
index 880878a5..00000000
--- a/tests/files/bad-multi-none-index_4.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-single-data_after_eopm_1.lzma b/tests/files/bad-single-data_after_eopm_1.lzma
deleted file mode 100644
index 3c1e90f2..00000000
--- a/tests/files/bad-single-data_after_eopm_1.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-single-data_after_eopm_2.lzma b/tests/files/bad-single-data_after_eopm_2.lzma
deleted file mode 100644
index 008e3941..00000000
--- a/tests/files/bad-single-data_after_eopm_2.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-single-lzma-flush_beginning.lzma b/tests/files/bad-single-lzma-flush_beginning.lzma
deleted file mode 100644
index 1952c043..00000000
--- a/tests/files/bad-single-lzma-flush_beginning.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-single-lzma-flush_twice.lzma b/tests/files/bad-single-lzma-flush_twice.lzma
deleted file mode 100644
index d71dac00..00000000
--- a/tests/files/bad-single-lzma-flush_twice.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-single-none-empty.lzma b/tests/files/bad-single-none-empty.lzma
deleted file mode 100644
index 3007e9a9..00000000
--- a/tests/files/bad-single-none-empty.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-single-none-footer_filter_flags.lzma b/tests/files/bad-single-none-footer_filter_flags.lzma
deleted file mode 100644
index 1257ce38..00000000
--- a/tests/files/bad-single-none-footer_filter_flags.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-single-none-too_long_vli.lzma b/tests/files/bad-single-none-too_long_vli.lzma
deleted file mode 100644
index 57fc4e91..00000000
--- a/tests/files/bad-single-none-too_long_vli.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-single-none-truncated.lzma b/tests/files/bad-single-none-truncated.lzma
deleted file mode 100644
index cc7aa56b..00000000
--- a/tests/files/bad-single-none-truncated.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-single-subblock-padding_loop.lzma b/tests/files/bad-single-subblock-padding_loop.lzma
deleted file mode 100644
index 7f0f5f78..00000000
--- a/tests/files/bad-single-subblock-padding_loop.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-single-subblock1023-slow.lzma b/tests/files/bad-single-subblock1023-slow.lzma
deleted file mode 100644
index 842defee..00000000
--- a/tests/files/bad-single-subblock1023-slow.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/bad-single-subblock_subblock.lzma b/tests/files/bad-single-subblock_subblock.lzma
deleted file mode 100644
index 4b6987d8..00000000
--- a/tests/files/bad-single-subblock_subblock.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-0-empty.lzma b/tests/files/good-0-empty.lzma
new file mode 100644
index 00000000..3256fe15
--- /dev/null
+++ b/tests/files/good-0-empty.lzma
Binary files differ
diff --git a/tests/files/good-0cat-empty.lzma b/tests/files/good-0cat-empty.lzma
new file mode 100644
index 00000000..ef8e106a
--- /dev/null
+++ b/tests/files/good-0cat-empty.lzma
Binary files differ
diff --git a/tests/files/good-0catpad-empty.lzma b/tests/files/good-0catpad-empty.lzma
new file mode 100644
index 00000000..7e5a81d4
--- /dev/null
+++ b/tests/files/good-0catpad-empty.lzma
Binary files differ
diff --git a/tests/files/good-0pad-empty.lzma b/tests/files/good-0pad-empty.lzma
new file mode 100644
index 00000000..3bbc241b
--- /dev/null
+++ b/tests/files/good-0pad-empty.lzma
Binary files differ
diff --git a/tests/files/good-1-3delta-lzma2.lzma b/tests/files/good-1-3delta-lzma2.lzma
new file mode 100644
index 00000000..2724ed4b
--- /dev/null
+++ b/tests/files/good-1-3delta-lzma2.lzma
Binary files differ
diff --git a/tests/files/good-1-block_header-1.lzma b/tests/files/good-1-block_header-1.lzma
new file mode 100644
index 00000000..0eeaf464
--- /dev/null
+++ b/tests/files/good-1-block_header-1.lzma
Binary files differ
diff --git a/tests/files/good-1-block_header-2.lzma b/tests/files/good-1-block_header-2.lzma
new file mode 100644
index 00000000..7afa25fa
--- /dev/null
+++ b/tests/files/good-1-block_header-2.lzma
Binary files differ
diff --git a/tests/files/good-1-block_header-3.lzma b/tests/files/good-1-block_header-3.lzma
new file mode 100644
index 00000000..85a1f8e8
--- /dev/null
+++ b/tests/files/good-1-block_header-3.lzma
Binary files differ
diff --git a/tests/files/good-1-check-crc32.lzma b/tests/files/good-1-check-crc32.lzma
new file mode 100644
index 00000000..b586af14
--- /dev/null
+++ b/tests/files/good-1-check-crc32.lzma
Binary files differ
diff --git a/tests/files/good-1-check-crc64.lzma b/tests/files/good-1-check-crc64.lzma
new file mode 100644
index 00000000..9b8cc1f6
--- /dev/null
+++ b/tests/files/good-1-check-crc64.lzma
Binary files differ
diff --git a/tests/files/good-1-check-none.lzma b/tests/files/good-1-check-none.lzma
new file mode 100644
index 00000000..7b7ccd5f
--- /dev/null
+++ b/tests/files/good-1-check-none.lzma
Binary files differ
diff --git a/tests/files/good-1-check-sha256.lzma b/tests/files/good-1-check-sha256.lzma
new file mode 100644
index 00000000..0919afdb
--- /dev/null
+++ b/tests/files/good-1-check-sha256.lzma
Binary files differ
diff --git a/tests/files/good-1-delta-lzma2.tiff.lzma b/tests/files/good-1-delta-lzma2.tiff.lzma
new file mode 100644
index 00000000..d52b70d4
--- /dev/null
+++ b/tests/files/good-1-delta-lzma2.tiff.lzma
Binary files differ
diff --git a/tests/files/good-1-lzma2-1.lzma b/tests/files/good-1-lzma2-1.lzma
new file mode 100644
index 00000000..386a1c15
--- /dev/null
+++ b/tests/files/good-1-lzma2-1.lzma
Binary files differ
diff --git a/tests/files/good-1-lzma2-2.lzma b/tests/files/good-1-lzma2-2.lzma
new file mode 100644
index 00000000..2397a849
--- /dev/null
+++ b/tests/files/good-1-lzma2-2.lzma
Binary files differ
diff --git a/tests/files/good-1-lzma2-3.lzma b/tests/files/good-1-lzma2-3.lzma
new file mode 100644
index 00000000..096f65c1
--- /dev/null
+++ b/tests/files/good-1-lzma2-3.lzma
Binary files differ
diff --git a/tests/files/good-single-sparc-lzma.lzma b/tests/files/good-1-sparc-lzma2.lzma
index c464fbb3..bfc7ac0b 100644
--- a/tests/files/good-single-sparc-lzma.lzma
+++ b/tests/files/good-1-sparc-lzma2.lzma
Binary files differ
diff --git a/tests/files/good-single-x86-lzma.lzma b/tests/files/good-1-x86-lzma2.lzma
index 04b9b2d4..62fb01a2 100644
--- a/tests/files/good-single-x86-lzma.lzma
+++ b/tests/files/good-1-x86-lzma2.lzma
Binary files differ
diff --git a/tests/files/good-2-lzma2.lzma b/tests/files/good-2-lzma2.lzma
new file mode 100644
index 00000000..49165309
--- /dev/null
+++ b/tests/files/good-2-lzma2.lzma
Binary files differ
diff --git a/tests/files/good-cat-single-none-pad.lzma b/tests/files/good-cat-single-none-pad.lzma
deleted file mode 100644
index 74cb9987..00000000
--- a/tests/files/good-cat-single-none-pad.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-multi-none-1.lzma b/tests/files/good-multi-none-1.lzma
deleted file mode 100644
index 53c6afaa..00000000
--- a/tests/files/good-multi-none-1.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-multi-none-2.lzma b/tests/files/good-multi-none-2.lzma
deleted file mode 100644
index bef06817..00000000
--- a/tests/files/good-multi-none-2.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-multi-none-block_1.lzma b/tests/files/good-multi-none-block_1.lzma
deleted file mode 100644
index b573e36a..00000000
--- a/tests/files/good-multi-none-block_1.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-multi-none-block_2.lzma b/tests/files/good-multi-none-block_2.lzma
deleted file mode 100644
index 901b030c..00000000
--- a/tests/files/good-multi-none-block_2.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-multi-none-extra_1.lzma b/tests/files/good-multi-none-extra_1.lzma
deleted file mode 100644
index ead38857..00000000
--- a/tests/files/good-multi-none-extra_1.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-multi-none-extra_2.lzma b/tests/files/good-multi-none-extra_2.lzma
deleted file mode 100644
index 3dc8e51e..00000000
--- a/tests/files/good-multi-none-extra_2.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-multi-none-extra_3.lzma b/tests/files/good-multi-none-extra_3.lzma
deleted file mode 100644
index 6e35306a..00000000
--- a/tests/files/good-multi-none-extra_3.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-multi-none-header_1.lzma b/tests/files/good-multi-none-header_1.lzma
deleted file mode 100644
index 169b5c90..00000000
--- a/tests/files/good-multi-none-header_1.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-multi-none-header_2.lzma b/tests/files/good-multi-none-header_2.lzma
deleted file mode 100644
index 9bec4ff5..00000000
--- a/tests/files/good-multi-none-header_2.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-multi-none-header_3.lzma b/tests/files/good-multi-none-header_3.lzma
deleted file mode 100644
index 45cceba2..00000000
--- a/tests/files/good-multi-none-header_3.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-single-delta-lzma.tiff.lzma b/tests/files/good-single-delta-lzma.tiff.lzma
deleted file mode 100644
index 94ff3a12..00000000
--- a/tests/files/good-single-delta-lzma.tiff.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-single-lzma-empty.lzma b/tests/files/good-single-lzma-empty.lzma
deleted file mode 100644
index b4457804..00000000
--- a/tests/files/good-single-lzma-empty.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-single-lzma-flush_1.lzma b/tests/files/good-single-lzma-flush_1.lzma
deleted file mode 100644
index 7de086fa..00000000
--- a/tests/files/good-single-lzma-flush_1.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-single-lzma-flush_2.lzma b/tests/files/good-single-lzma-flush_2.lzma
deleted file mode 100644
index c444a217..00000000
--- a/tests/files/good-single-lzma-flush_2.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-single-lzma.lzma b/tests/files/good-single-lzma.lzma
deleted file mode 100644
index 0e120f2a..00000000
--- a/tests/files/good-single-lzma.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-single-none-empty_1.lzma b/tests/files/good-single-none-empty_1.lzma
deleted file mode 100644
index ef803210..00000000
--- a/tests/files/good-single-none-empty_1.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-single-none-empty_2.lzma b/tests/files/good-single-none-empty_2.lzma
deleted file mode 100644
index 612bdac2..00000000
--- a/tests/files/good-single-none-empty_2.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-single-none-empty_3.lzma b/tests/files/good-single-none-empty_3.lzma
deleted file mode 100644
index 7e1d19b6..00000000
--- a/tests/files/good-single-none-empty_3.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-single-none-pad.lzma b/tests/files/good-single-none-pad.lzma
deleted file mode 100644
index b32efa19..00000000
--- a/tests/files/good-single-none-pad.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-single-none.lzma b/tests/files/good-single-none.lzma
deleted file mode 100644
index a6b24ae8..00000000
--- a/tests/files/good-single-none.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-single-subblock-lzma.lzma b/tests/files/good-single-subblock-lzma.lzma
deleted file mode 100644
index 1ab36e40..00000000
--- a/tests/files/good-single-subblock-lzma.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-single-subblock_implicit.lzma b/tests/files/good-single-subblock_implicit.lzma
deleted file mode 100644
index b33c6028..00000000
--- a/tests/files/good-single-subblock_implicit.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/good-single-subblock_rle.lzma b/tests/files/good-single-subblock_rle.lzma
deleted file mode 100644
index 32d49cc0..00000000
--- a/tests/files/good-single-subblock_rle.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/malicious-multi-metadata-64PiB.lzma b/tests/files/malicious-multi-metadata-64PiB.lzma
deleted file mode 100644
index a29f8776..00000000
--- a/tests/files/malicious-multi-metadata-64PiB.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/malicious-single-subblock-256MiB.lzma b/tests/files/malicious-single-subblock-256MiB.lzma
deleted file mode 100644
index 2199f2a3..00000000
--- a/tests/files/malicious-single-subblock-256MiB.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/malicious-single-subblock-64PiB.lzma b/tests/files/malicious-single-subblock-64PiB.lzma
deleted file mode 100644
index cbe2c49b..00000000
--- a/tests/files/malicious-single-subblock-64PiB.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/malicious-single-subblock31-slow.lzma b/tests/files/malicious-single-subblock31-slow.lzma
deleted file mode 100644
index 0589a416..00000000
--- a/tests/files/malicious-single-subblock31-slow.lzma
+++ /dev/null
Binary files differ
diff --git a/tests/files/unsupported-block_header.lzma b/tests/files/unsupported-block_header.lzma
new file mode 100644
index 00000000..2fa33a5b
--- /dev/null
+++ b/tests/files/unsupported-block_header.lzma
Binary files differ
diff --git a/tests/files/unsupported-check.lzma b/tests/files/unsupported-check.lzma
new file mode 100644
index 00000000..6d8a295e
--- /dev/null
+++ b/tests/files/unsupported-check.lzma
Binary files differ
diff --git a/tests/files/unsupported-filter_flags-1.lzma b/tests/files/unsupported-filter_flags-1.lzma
new file mode 100644
index 00000000..c70571f9
--- /dev/null
+++ b/tests/files/unsupported-filter_flags-1.lzma
Binary files differ
diff --git a/tests/files/unsupported-filter_flags-2.lzma b/tests/files/unsupported-filter_flags-2.lzma
new file mode 100644
index 00000000..1fd68f9e
--- /dev/null
+++ b/tests/files/unsupported-filter_flags-2.lzma
Binary files differ
diff --git a/tests/files/unsupported-filter_flags-3.lzma b/tests/files/unsupported-filter_flags-3.lzma
new file mode 100644
index 00000000..dcaf21f8
--- /dev/null
+++ b/tests/files/unsupported-filter_flags-3.lzma
Binary files differ