aboutsummaryrefslogtreecommitdiff
path: root/tests/files
diff options
context:
space:
mode:
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