diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2008-08-28 22:53:15 +0300 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2008-08-28 22:53:15 +0300 |
commit | 3b34851de1eaf358cf9268922fa0eeed8278d680 (patch) | |
tree | 7bab212af647541df64227a8d350d17a2e789f6b /tests | |
parent | 57b9a145a527f0716822615e5ed536d33aebd3fc (diff) | |
download | xz-3b34851de1eaf358cf9268922fa0eeed8278d680.tar.gz |
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')
123 files changed, 165 insertions, 234 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index f9f15c5..2d087e1 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -48,6 +48,7 @@ TESTS = \ test_filter_flags \ test_block_header \ test_index \ + test_files.sh \ test_compress.sh clean-local: diff --git a/tests/files/README b/tests/files/README index 4d0ef8b..7c7f4e1 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 Binary files differnew file mode 100644 index 0000000..07c4695 --- /dev/null +++ b/tests/files/bad-0-backward_size.lzma diff --git a/tests/files/bad-0-empty-truncated.lzma b/tests/files/bad-0-empty-truncated.lzma Binary files differnew file mode 100644 index 0000000..15b6fe3 --- /dev/null +++ b/tests/files/bad-0-empty-truncated.lzma diff --git a/tests/files/bad-0-nonempty_index.lzma b/tests/files/bad-0-nonempty_index.lzma Binary files differnew file mode 100644 index 0000000..2a612c6 --- /dev/null +++ b/tests/files/bad-0-nonempty_index.lzma diff --git a/tests/files/bad-0cat-alone.lzma b/tests/files/bad-0cat-alone.lzma Binary files differnew file mode 100644 index 0000000..650c67f --- /dev/null +++ b/tests/files/bad-0cat-alone.lzma diff --git a/tests/files/bad-0catpad-empty.lzma b/tests/files/bad-0catpad-empty.lzma Binary files differnew file mode 100644 index 0000000..33892a2 --- /dev/null +++ b/tests/files/bad-0catpad-empty.lzma diff --git a/tests/files/bad-0pad-empty.lzma b/tests/files/bad-0pad-empty.lzma Binary files differnew file mode 100644 index 0000000..c5b985c --- /dev/null +++ b/tests/files/bad-0pad-empty.lzma diff --git a/tests/files/bad-1-block_header-1.lzma b/tests/files/bad-1-block_header-1.lzma Binary files differnew file mode 100644 index 0000000..a68119f --- /dev/null +++ b/tests/files/bad-1-block_header-1.lzma diff --git a/tests/files/bad-1-block_header-2.lzma b/tests/files/bad-1-block_header-2.lzma Binary files differnew file mode 100644 index 0000000..7a2eb5e --- /dev/null +++ b/tests/files/bad-1-block_header-2.lzma diff --git a/tests/files/bad-1-block_header-3.lzma b/tests/files/bad-1-block_header-3.lzma Binary files differnew file mode 100644 index 0000000..801a05c --- /dev/null +++ b/tests/files/bad-1-block_header-3.lzma diff --git a/tests/files/bad-1-block_header-4.lzma b/tests/files/bad-1-block_header-4.lzma Binary files differnew file mode 100644 index 0000000..0d00545 --- /dev/null +++ b/tests/files/bad-1-block_header-4.lzma diff --git a/tests/files/bad-1-check-crc32.lzma b/tests/files/bad-1-check-crc32.lzma Binary files differnew file mode 100644 index 0000000..b82b659 --- /dev/null +++ b/tests/files/bad-1-check-crc32.lzma diff --git a/tests/files/bad-1-check-crc64.lzma b/tests/files/bad-1-check-crc64.lzma Binary files differnew file mode 100644 index 0000000..5793892 --- /dev/null +++ b/tests/files/bad-1-check-crc64.lzma diff --git a/tests/files/bad-1-check-sha256.lzma b/tests/files/bad-1-check-sha256.lzma Binary files differnew file mode 100644 index 0000000..e47609c --- /dev/null +++ b/tests/files/bad-1-check-sha256.lzma diff --git a/tests/files/bad-1-lzma2-1.lzma b/tests/files/bad-1-lzma2-1.lzma Binary files differnew file mode 100644 index 0000000..0296e5f --- /dev/null +++ b/tests/files/bad-1-lzma2-1.lzma diff --git a/tests/files/bad-1-lzma2-2.lzma b/tests/files/bad-1-lzma2-2.lzma Binary files differnew file mode 100644 index 0000000..faefa1b --- /dev/null +++ b/tests/files/bad-1-lzma2-2.lzma diff --git a/tests/files/bad-1-lzma2-3.lzma b/tests/files/bad-1-lzma2-3.lzma Binary files differnew file mode 100644 index 0000000..fbe3297 --- /dev/null +++ b/tests/files/bad-1-lzma2-3.lzma diff --git a/tests/files/bad-1-lzma2-4.lzma b/tests/files/bad-1-lzma2-4.lzma Binary files differnew file mode 100644 index 0000000..ef0dc49 --- /dev/null +++ b/tests/files/bad-1-lzma2-4.lzma diff --git a/tests/files/bad-1-lzma2-5.lzma b/tests/files/bad-1-lzma2-5.lzma Binary files differnew file mode 100644 index 0000000..797b7d3 --- /dev/null +++ b/tests/files/bad-1-lzma2-5.lzma diff --git a/tests/files/bad-1-lzma2-6.lzma b/tests/files/bad-1-lzma2-6.lzma Binary files differnew file mode 100644 index 0000000..73db5bf --- /dev/null +++ b/tests/files/bad-1-lzma2-6.lzma diff --git a/tests/files/bad-1-lzma2-7.lzma b/tests/files/bad-1-lzma2-7.lzma Binary files differnew file mode 100644 index 0000000..845da22 --- /dev/null +++ b/tests/files/bad-1-lzma2-7.lzma diff --git a/tests/files/bad-1-stream_flags-1.lzma b/tests/files/bad-1-stream_flags-1.lzma Binary files differnew file mode 100644 index 0000000..cd0d6f4 --- /dev/null +++ b/tests/files/bad-1-stream_flags-1.lzma diff --git a/tests/files/bad-1-stream_flags-2.lzma b/tests/files/bad-1-stream_flags-2.lzma Binary files differnew file mode 100644 index 0000000..63dec85 --- /dev/null +++ b/tests/files/bad-1-stream_flags-2.lzma diff --git a/tests/files/bad-1-stream_flags-3.lzma b/tests/files/bad-1-stream_flags-3.lzma Binary files differnew file mode 100644 index 0000000..3b306ff --- /dev/null +++ b/tests/files/bad-1-stream_flags-3.lzma diff --git a/tests/files/bad-1-vli-1.lzma b/tests/files/bad-1-vli-1.lzma Binary files differnew file mode 100644 index 0000000..7bcdd56 --- /dev/null +++ b/tests/files/bad-1-vli-1.lzma diff --git a/tests/files/bad-1-vli-2.lzma b/tests/files/bad-1-vli-2.lzma Binary files differnew file mode 100644 index 0000000..af2b614 --- /dev/null +++ b/tests/files/bad-1-vli-2.lzma diff --git a/tests/files/bad-2-compressed_data_padding.lzma b/tests/files/bad-2-compressed_data_padding.lzma Binary files differnew file mode 100644 index 0000000..c9de474 --- /dev/null +++ b/tests/files/bad-2-compressed_data_padding.lzma diff --git a/tests/files/bad-2-index-1.lzma b/tests/files/bad-2-index-1.lzma Binary files differnew file mode 100644 index 0000000..cc6ba6d --- /dev/null +++ b/tests/files/bad-2-index-1.lzma diff --git a/tests/files/bad-2-index-2.lzma b/tests/files/bad-2-index-2.lzma Binary files differnew file mode 100644 index 0000000..8ce40b6 --- /dev/null +++ b/tests/files/bad-2-index-2.lzma diff --git a/tests/files/bad-2-index-3.lzma b/tests/files/bad-2-index-3.lzma Binary files differnew file mode 100644 index 0000000..de27f55 --- /dev/null +++ b/tests/files/bad-2-index-3.lzma diff --git a/tests/files/bad-2-index-4.lzma b/tests/files/bad-2-index-4.lzma Binary files differnew file mode 100644 index 0000000..0a27347 --- /dev/null +++ b/tests/files/bad-2-index-4.lzma diff --git a/tests/files/bad-cat-single-none-pad_garbage_1.lzma b/tests/files/bad-cat-single-none-pad_garbage_1.lzma Binary files differdeleted file mode 100644 index 447f199..0000000 --- a/tests/files/bad-cat-single-none-pad_garbage_1.lzma +++ /dev/null diff --git a/tests/files/bad-cat-single-none-pad_garbage_2.lzma b/tests/files/bad-cat-single-none-pad_garbage_2.lzma Binary files differdeleted file mode 100644 index 26595aa..0000000 --- a/tests/files/bad-cat-single-none-pad_garbage_2.lzma +++ /dev/null diff --git a/tests/files/bad-cat-single-none-pad_garbage_3.lzma b/tests/files/bad-cat-single-none-pad_garbage_3.lzma Binary files differdeleted file mode 100644 index 73c8744..0000000 --- a/tests/files/bad-cat-single-none-pad_garbage_3.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-1.lzma b/tests/files/bad-multi-none-1.lzma Binary files differdeleted file mode 100644 index 208e510..0000000 --- a/tests/files/bad-multi-none-1.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-2.lzma b/tests/files/bad-multi-none-2.lzma Binary files differdeleted file mode 100644 index f338e5b..0000000 --- a/tests/files/bad-multi-none-2.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-3.lzma b/tests/files/bad-multi-none-3.lzma Binary files differdeleted file mode 100644 index 936ae69..0000000 --- a/tests/files/bad-multi-none-3.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-block_1.lzma b/tests/files/bad-multi-none-block_1.lzma Binary files differdeleted file mode 100644 index 17385ae..0000000 --- a/tests/files/bad-multi-none-block_1.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-block_2.lzma b/tests/files/bad-multi-none-block_2.lzma Binary files differdeleted file mode 100644 index b88836a..0000000 --- a/tests/files/bad-multi-none-block_2.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-block_3.lzma b/tests/files/bad-multi-none-block_3.lzma Binary files differdeleted file mode 100644 index f5bc72b..0000000 --- a/tests/files/bad-multi-none-block_3.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-extra_1.lzma b/tests/files/bad-multi-none-extra_1.lzma Binary files differdeleted file mode 100644 index ac408dc..0000000 --- a/tests/files/bad-multi-none-extra_1.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-extra_2.lzma b/tests/files/bad-multi-none-extra_2.lzma Binary files differdeleted file mode 100644 index 9cb47e1..0000000 --- a/tests/files/bad-multi-none-extra_2.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-extra_3.lzma b/tests/files/bad-multi-none-extra_3.lzma Binary files differdeleted file mode 100644 index 9c83715..0000000 --- a/tests/files/bad-multi-none-extra_3.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-header_1.lzma b/tests/files/bad-multi-none-header_1.lzma Binary files differdeleted file mode 100644 index fbad401..0000000 --- a/tests/files/bad-multi-none-header_1.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-header_2.lzma b/tests/files/bad-multi-none-header_2.lzma Binary files differdeleted file mode 100644 index e7e66a7..0000000 --- a/tests/files/bad-multi-none-header_2.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-header_3.lzma b/tests/files/bad-multi-none-header_3.lzma Binary files differdeleted file mode 100644 index 37648e3..0000000 --- a/tests/files/bad-multi-none-header_3.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-header_4.lzma b/tests/files/bad-multi-none-header_4.lzma Binary files differdeleted file mode 100644 index 33cf425..0000000 --- a/tests/files/bad-multi-none-header_4.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-header_5.lzma b/tests/files/bad-multi-none-header_5.lzma Binary files differdeleted file mode 100644 index 313661f..0000000 --- a/tests/files/bad-multi-none-header_5.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-header_6.lzma b/tests/files/bad-multi-none-header_6.lzma Binary files differdeleted file mode 100644 index 4055256..0000000 --- a/tests/files/bad-multi-none-header_6.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-header_7.lzma b/tests/files/bad-multi-none-header_7.lzma Binary files differdeleted file mode 100644 index 66b2d4b..0000000 --- a/tests/files/bad-multi-none-header_7.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-index_1.lzma b/tests/files/bad-multi-none-index_1.lzma Binary files differdeleted file mode 100644 index b1bd0ce..0000000 --- a/tests/files/bad-multi-none-index_1.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-index_2.lzma b/tests/files/bad-multi-none-index_2.lzma Binary files differdeleted file mode 100644 index 59d92c6..0000000 --- a/tests/files/bad-multi-none-index_2.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-index_3.lzma b/tests/files/bad-multi-none-index_3.lzma Binary files differdeleted file mode 100644 index 5b94972..0000000 --- a/tests/files/bad-multi-none-index_3.lzma +++ /dev/null diff --git a/tests/files/bad-multi-none-index_4.lzma b/tests/files/bad-multi-none-index_4.lzma Binary files differdeleted file mode 100644 index 880878a..0000000 --- a/tests/files/bad-multi-none-index_4.lzma +++ /dev/null diff --git a/tests/files/bad-single-data_after_eopm_1.lzma b/tests/files/bad-single-data_after_eopm_1.lzma Binary files differdeleted file mode 100644 index 3c1e90f..0000000 --- a/tests/files/bad-single-data_after_eopm_1.lzma +++ /dev/null diff --git a/tests/files/bad-single-data_after_eopm_2.lzma b/tests/files/bad-single-data_after_eopm_2.lzma Binary files differdeleted file mode 100644 index 008e394..0000000 --- a/tests/files/bad-single-data_after_eopm_2.lzma +++ /dev/null diff --git a/tests/files/bad-single-lzma-flush_beginning.lzma b/tests/files/bad-single-lzma-flush_beginning.lzma Binary files differdeleted file mode 100644 index 1952c04..0000000 --- a/tests/files/bad-single-lzma-flush_beginning.lzma +++ /dev/null diff --git a/tests/files/bad-single-lzma-flush_twice.lzma b/tests/files/bad-single-lzma-flush_twice.lzma Binary files differdeleted file mode 100644 index d71dac0..0000000 --- a/tests/files/bad-single-lzma-flush_twice.lzma +++ /dev/null diff --git a/tests/files/bad-single-none-empty.lzma b/tests/files/bad-single-none-empty.lzma Binary files differdeleted file mode 100644 index 3007e9a..0000000 --- a/tests/files/bad-single-none-empty.lzma +++ /dev/null diff --git a/tests/files/bad-single-none-footer_filter_flags.lzma b/tests/files/bad-single-none-footer_filter_flags.lzma Binary files differdeleted file mode 100644 index 1257ce3..0000000 --- a/tests/files/bad-single-none-footer_filter_flags.lzma +++ /dev/null diff --git a/tests/files/bad-single-none-too_long_vli.lzma b/tests/files/bad-single-none-too_long_vli.lzma Binary files differdeleted file mode 100644 index 57fc4e9..0000000 --- a/tests/files/bad-single-none-too_long_vli.lzma +++ /dev/null diff --git a/tests/files/bad-single-none-truncated.lzma b/tests/files/bad-single-none-truncated.lzma Binary files differdeleted file mode 100644 index cc7aa56..0000000 --- a/tests/files/bad-single-none-truncated.lzma +++ /dev/null diff --git a/tests/files/bad-single-subblock-padding_loop.lzma b/tests/files/bad-single-subblock-padding_loop.lzma Binary files differdeleted file mode 100644 index 7f0f5f7..0000000 --- a/tests/files/bad-single-subblock-padding_loop.lzma +++ /dev/null diff --git a/tests/files/bad-single-subblock1023-slow.lzma b/tests/files/bad-single-subblock1023-slow.lzma Binary files differdeleted file mode 100644 index 842defe..0000000 --- a/tests/files/bad-single-subblock1023-slow.lzma +++ /dev/null diff --git a/tests/files/bad-single-subblock_subblock.lzma b/tests/files/bad-single-subblock_subblock.lzma Binary files differdeleted file mode 100644 index 4b6987d..0000000 --- a/tests/files/bad-single-subblock_subblock.lzma +++ /dev/null diff --git a/tests/files/good-0-empty.lzma b/tests/files/good-0-empty.lzma Binary files differnew file mode 100644 index 0000000..3256fe1 --- /dev/null +++ b/tests/files/good-0-empty.lzma diff --git a/tests/files/good-0cat-empty.lzma b/tests/files/good-0cat-empty.lzma Binary files differnew file mode 100644 index 0000000..ef8e106 --- /dev/null +++ b/tests/files/good-0cat-empty.lzma diff --git a/tests/files/good-0catpad-empty.lzma b/tests/files/good-0catpad-empty.lzma Binary files differnew file mode 100644 index 0000000..7e5a81d --- /dev/null +++ b/tests/files/good-0catpad-empty.lzma diff --git a/tests/files/good-0pad-empty.lzma b/tests/files/good-0pad-empty.lzma Binary files differnew file mode 100644 index 0000000..3bbc241 --- /dev/null +++ b/tests/files/good-0pad-empty.lzma diff --git a/tests/files/good-1-3delta-lzma2.lzma b/tests/files/good-1-3delta-lzma2.lzma Binary files differnew file mode 100644 index 0000000..2724ed4 --- /dev/null +++ b/tests/files/good-1-3delta-lzma2.lzma diff --git a/tests/files/good-1-block_header-1.lzma b/tests/files/good-1-block_header-1.lzma Binary files differnew file mode 100644 index 0000000..0eeaf46 --- /dev/null +++ b/tests/files/good-1-block_header-1.lzma diff --git a/tests/files/good-1-block_header-2.lzma b/tests/files/good-1-block_header-2.lzma Binary files differnew file mode 100644 index 0000000..7afa25f --- /dev/null +++ b/tests/files/good-1-block_header-2.lzma diff --git a/tests/files/good-1-block_header-3.lzma b/tests/files/good-1-block_header-3.lzma Binary files differnew file mode 100644 index 0000000..85a1f8e --- /dev/null +++ b/tests/files/good-1-block_header-3.lzma diff --git a/tests/files/good-1-check-crc32.lzma b/tests/files/good-1-check-crc32.lzma Binary files differnew file mode 100644 index 0000000..b586af1 --- /dev/null +++ b/tests/files/good-1-check-crc32.lzma diff --git a/tests/files/good-1-check-crc64.lzma b/tests/files/good-1-check-crc64.lzma Binary files differnew file mode 100644 index 0000000..9b8cc1f --- /dev/null +++ b/tests/files/good-1-check-crc64.lzma diff --git a/tests/files/good-1-check-none.lzma b/tests/files/good-1-check-none.lzma Binary files differnew file mode 100644 index 0000000..7b7ccd5 --- /dev/null +++ b/tests/files/good-1-check-none.lzma diff --git a/tests/files/good-1-check-sha256.lzma b/tests/files/good-1-check-sha256.lzma Binary files differnew file mode 100644 index 0000000..0919afd --- /dev/null +++ b/tests/files/good-1-check-sha256.lzma diff --git a/tests/files/good-1-delta-lzma2.tiff.lzma b/tests/files/good-1-delta-lzma2.tiff.lzma Binary files differnew file mode 100644 index 0000000..d52b70d --- /dev/null +++ b/tests/files/good-1-delta-lzma2.tiff.lzma diff --git a/tests/files/good-1-lzma2-1.lzma b/tests/files/good-1-lzma2-1.lzma Binary files differnew file mode 100644 index 0000000..386a1c1 --- /dev/null +++ b/tests/files/good-1-lzma2-1.lzma diff --git a/tests/files/good-1-lzma2-2.lzma b/tests/files/good-1-lzma2-2.lzma Binary files differnew file mode 100644 index 0000000..2397a84 --- /dev/null +++ b/tests/files/good-1-lzma2-2.lzma diff --git a/tests/files/good-1-lzma2-3.lzma b/tests/files/good-1-lzma2-3.lzma Binary files differnew file mode 100644 index 0000000..096f65c --- /dev/null +++ b/tests/files/good-1-lzma2-3.lzma diff --git a/tests/files/good-single-sparc-lzma.lzma b/tests/files/good-1-sparc-lzma2.lzma Binary files differindex c464fbb..bfc7ac0 100644 --- a/tests/files/good-single-sparc-lzma.lzma +++ b/tests/files/good-1-sparc-lzma2.lzma diff --git a/tests/files/good-single-x86-lzma.lzma b/tests/files/good-1-x86-lzma2.lzma Binary files differindex 04b9b2d..62fb01a 100644 --- a/tests/files/good-single-x86-lzma.lzma +++ b/tests/files/good-1-x86-lzma2.lzma diff --git a/tests/files/good-2-lzma2.lzma b/tests/files/good-2-lzma2.lzma Binary files differnew file mode 100644 index 0000000..4916530 --- /dev/null +++ b/tests/files/good-2-lzma2.lzma diff --git a/tests/files/good-cat-single-none-pad.lzma b/tests/files/good-cat-single-none-pad.lzma Binary files differdeleted file mode 100644 index 74cb998..0000000 --- a/tests/files/good-cat-single-none-pad.lzma +++ /dev/null diff --git a/tests/files/good-multi-none-1.lzma b/tests/files/good-multi-none-1.lzma Binary files differdeleted file mode 100644 index 53c6afa..0000000 --- a/tests/files/good-multi-none-1.lzma +++ /dev/null diff --git a/tests/files/good-multi-none-2.lzma b/tests/files/good-multi-none-2.lzma Binary files differdeleted file mode 100644 index bef0681..0000000 --- a/tests/files/good-multi-none-2.lzma +++ /dev/null diff --git a/tests/files/good-multi-none-block_1.lzma b/tests/files/good-multi-none-block_1.lzma Binary files differdeleted file mode 100644 index b573e36..0000000 --- a/tests/files/good-multi-none-block_1.lzma +++ /dev/null diff --git a/tests/files/good-multi-none-block_2.lzma b/tests/files/good-multi-none-block_2.lzma Binary files differdeleted file mode 100644 index 901b030..0000000 --- a/tests/files/good-multi-none-block_2.lzma +++ /dev/null diff --git a/tests/files/good-multi-none-extra_1.lzma b/tests/files/good-multi-none-extra_1.lzma Binary files differdeleted file mode 100644 index ead3885..0000000 --- a/tests/files/good-multi-none-extra_1.lzma +++ /dev/null diff --git a/tests/files/good-multi-none-extra_2.lzma b/tests/files/good-multi-none-extra_2.lzma Binary files differdeleted file mode 100644 index 3dc8e51..0000000 --- a/tests/files/good-multi-none-extra_2.lzma +++ /dev/null diff --git a/tests/files/good-multi-none-extra_3.lzma b/tests/files/good-multi-none-extra_3.lzma Binary files differdeleted file mode 100644 index 6e35306..0000000 --- a/tests/files/good-multi-none-extra_3.lzma +++ /dev/null diff --git a/tests/files/good-multi-none-header_1.lzma b/tests/files/good-multi-none-header_1.lzma Binary files differdeleted file mode 100644 index 169b5c9..0000000 --- a/tests/files/good-multi-none-header_1.lzma +++ /dev/null diff --git a/tests/files/good-multi-none-header_2.lzma b/tests/files/good-multi-none-header_2.lzma Binary files differdeleted file mode 100644 index 9bec4ff..0000000 --- a/tests/files/good-multi-none-header_2.lzma +++ /dev/null diff --git a/tests/files/good-multi-none-header_3.lzma b/tests/files/good-multi-none-header_3.lzma Binary files differdeleted file mode 100644 index 45cceba..0000000 --- a/tests/files/good-multi-none-header_3.lzma +++ /dev/null diff --git a/tests/files/good-single-delta-lzma.tiff.lzma b/tests/files/good-single-delta-lzma.tiff.lzma Binary files differdeleted file mode 100644 index 94ff3a1..0000000 --- a/tests/files/good-single-delta-lzma.tiff.lzma +++ /dev/null diff --git a/tests/files/good-single-lzma-empty.lzma b/tests/files/good-single-lzma-empty.lzma Binary files differdeleted file mode 100644 index b445780..0000000 --- a/tests/files/good-single-lzma-empty.lzma +++ /dev/null diff --git a/tests/files/good-single-lzma-flush_1.lzma b/tests/files/good-single-lzma-flush_1.lzma Binary files differdeleted file mode 100644 index 7de086f..0000000 --- a/tests/files/good-single-lzma-flush_1.lzma +++ /dev/null diff --git a/tests/files/good-single-lzma-flush_2.lzma b/tests/files/good-single-lzma-flush_2.lzma Binary files differdeleted file mode 100644 index c444a21..0000000 --- a/tests/files/good-single-lzma-flush_2.lzma +++ /dev/null diff --git a/tests/files/good-single-lzma.lzma b/tests/files/good-single-lzma.lzma Binary files differdeleted file mode 100644 index 0e120f2..0000000 --- a/tests/files/good-single-lzma.lzma +++ /dev/null diff --git a/tests/files/good-single-none-empty_1.lzma b/tests/files/good-single-none-empty_1.lzma Binary files differdeleted file mode 100644 index ef80321..0000000 --- a/tests/files/good-single-none-empty_1.lzma +++ /dev/null diff --git a/tests/files/good-single-none-empty_2.lzma b/tests/files/good-single-none-empty_2.lzma Binary files differdeleted file mode 100644 index 612bdac..0000000 --- a/tests/files/good-single-none-empty_2.lzma +++ /dev/null diff --git a/tests/files/good-single-none-empty_3.lzma b/tests/files/good-single-none-empty_3.lzma Binary files differdeleted file mode 100644 index 7e1d19b..0000000 --- a/tests/files/good-single-none-empty_3.lzma +++ /dev/null diff --git a/tests/files/good-single-none-pad.lzma b/tests/files/good-single-none-pad.lzma Binary files differdeleted file mode 100644 index b32efa1..0000000 --- a/tests/files/good-single-none-pad.lzma +++ /dev/null diff --git a/tests/files/good-single-none.lzma b/tests/files/good-single-none.lzma Binary files differdeleted file mode 100644 index a6b24ae..0000000 --- a/tests/files/good-single-none.lzma +++ /dev/null diff --git a/tests/files/good-single-subblock-lzma.lzma b/tests/files/good-single-subblock-lzma.lzma Binary files differdeleted file mode 100644 index 1ab36e4..0000000 --- a/tests/files/good-single-subblock-lzma.lzma +++ /dev/null diff --git a/tests/files/good-single-subblock_implicit.lzma b/tests/files/good-single-subblock_implicit.lzma Binary files differdeleted file mode 100644 index b33c602..0000000 --- a/tests/files/good-single-subblock_implicit.lzma +++ /dev/null diff --git a/tests/files/good-single-subblock_rle.lzma b/tests/files/good-single-subblock_rle.lzma Binary files differdeleted file mode 100644 index 32d49cc..0000000 --- a/tests/files/good-single-subblock_rle.lzma +++ /dev/null diff --git a/tests/files/malicious-multi-metadata-64PiB.lzma b/tests/files/malicious-multi-metadata-64PiB.lzma Binary files differdeleted file mode 100644 index a29f877..0000000 --- a/tests/files/malicious-multi-metadata-64PiB.lzma +++ /dev/null diff --git a/tests/files/malicious-single-subblock-256MiB.lzma b/tests/files/malicious-single-subblock-256MiB.lzma Binary files differdeleted file mode 100644 index 2199f2a..0000000 --- a/tests/files/malicious-single-subblock-256MiB.lzma +++ /dev/null diff --git a/tests/files/malicious-single-subblock-64PiB.lzma b/tests/files/malicious-single-subblock-64PiB.lzma Binary files differdeleted file mode 100644 index cbe2c49..0000000 --- a/tests/files/malicious-single-subblock-64PiB.lzma +++ /dev/null diff --git a/tests/files/malicious-single-subblock31-slow.lzma b/tests/files/malicious-single-subblock31-slow.lzma Binary files differdeleted file mode 100644 index 0589a41..0000000 --- a/tests/files/malicious-single-subblock31-slow.lzma +++ /dev/null diff --git a/tests/files/unsupported-block_header.lzma b/tests/files/unsupported-block_header.lzma Binary files differnew file mode 100644 index 0000000..2fa33a5 --- /dev/null +++ b/tests/files/unsupported-block_header.lzma diff --git a/tests/files/unsupported-check.lzma b/tests/files/unsupported-check.lzma Binary files differnew file mode 100644 index 0000000..6d8a295 --- /dev/null +++ b/tests/files/unsupported-check.lzma diff --git a/tests/files/unsupported-filter_flags-1.lzma b/tests/files/unsupported-filter_flags-1.lzma Binary files differnew file mode 100644 index 0000000..c70571f --- /dev/null +++ b/tests/files/unsupported-filter_flags-1.lzma diff --git a/tests/files/unsupported-filter_flags-2.lzma b/tests/files/unsupported-filter_flags-2.lzma Binary files differnew file mode 100644 index 0000000..1fd68f9 --- /dev/null +++ b/tests/files/unsupported-filter_flags-2.lzma diff --git a/tests/files/unsupported-filter_flags-3.lzma b/tests/files/unsupported-filter_flags-3.lzma Binary files differnew file mode 100644 index 0000000..dcaf21f --- /dev/null +++ b/tests/files/unsupported-filter_flags-3.lzma diff --git a/tests/test_block_header.c b/tests/test_block_header.c index a8ce09b..28929de 100644 --- a/tests/test_block_header.c +++ b/tests/test_block_header.c @@ -21,19 +21,19 @@ static uint8_t buf[LZMA_BLOCK_HEADER_SIZE_MAX]; -static lzma_options_block known_options; -static lzma_options_block decoded_options; +static lzma_block known_options; +static lzma_block decoded_options; -static lzma_options_filter filters_none[1] = { +static lzma_filter filters_none[1] = { { .id = LZMA_VLI_VALUE_UNKNOWN, }, }; -static lzma_options_filter filters_one[2] = { +static lzma_filter filters_one[2] = { { - .id = LZMA_FILTER_LZMA, + .id = LZMA_FILTER_LZMA2, .options = (void *)(&lzma_preset_lzma[0]), }, { .id = LZMA_VLI_VALUE_UNKNOWN, @@ -41,7 +41,7 @@ static lzma_options_filter filters_one[2] = { }; -static lzma_options_filter filters_four[5] = { +static lzma_filter filters_four[5] = { { .id = LZMA_FILTER_X86, .options = NULL, @@ -52,7 +52,7 @@ static lzma_options_filter filters_four[5] = { .id = LZMA_FILTER_X86, .options = NULL, }, { - .id = LZMA_FILTER_LZMA, + .id = LZMA_FILTER_LZMA2, .options = (void *)(&lzma_preset_lzma[0]), }, { .id = LZMA_VLI_VALUE_UNKNOWN, @@ -60,7 +60,7 @@ static lzma_options_filter filters_four[5] = { }; -static lzma_options_filter filters_five[6] = { +static lzma_filter filters_five[6] = { { .id = LZMA_FILTER_X86, .options = NULL, @@ -74,7 +74,7 @@ static lzma_options_filter filters_five[6] = { .id = LZMA_FILTER_X86, .options = NULL, }, { - .id = LZMA_FILTER_LZMA, + .id = LZMA_FILTER_LZMA2, .options = (void *)(&lzma_preset_lzma[0]), }, { .id = LZMA_VLI_VALUE_UNKNOWN, @@ -87,7 +87,7 @@ code(void) { expect(lzma_block_header_encode(&known_options, buf) == LZMA_OK); - lzma_options_filter filters[LZMA_BLOCK_FILTERS_MAX + 1]; + lzma_filter filters[LZMA_BLOCK_FILTERS_MAX + 1]; memcrap(filters, sizeof(filters)); memcrap(&decoded_options, sizeof(decoded_options)); @@ -114,7 +114,7 @@ code(void) static void test1(void) { - known_options = (lzma_options_block){ + known_options = (lzma_block){ .check = LZMA_CHECK_NONE, .compressed_size = LZMA_VLI_VALUE_UNKNOWN, .uncompressed_size = LZMA_VLI_VALUE_UNKNOWN, @@ -153,7 +153,7 @@ test1(void) static void test2(void) { - known_options = (lzma_options_block){ + known_options = (lzma_block){ .check = LZMA_CHECK_CRC32, .compressed_size = LZMA_VLI_VALUE_UNKNOWN, .uncompressed_size = LZMA_VLI_VALUE_UNKNOWN, @@ -179,7 +179,7 @@ test2(void) static void test3(void) { - known_options = (lzma_options_block){ + known_options = (lzma_block){ .check = LZMA_CHECK_CRC32, .compressed_size = LZMA_VLI_VALUE_UNKNOWN, .uncompressed_size = LZMA_VLI_VALUE_UNKNOWN, @@ -190,7 +190,7 @@ test3(void) known_options.header_size += 4; expect(lzma_block_header_encode(&known_options, buf) == LZMA_OK); - lzma_options_filter filters[LZMA_BLOCK_FILTERS_MAX + 1]; + lzma_filter filters[LZMA_BLOCK_FILTERS_MAX + 1]; decoded_options.header_size = known_options.header_size; decoded_options.check = known_options.check; decoded_options.filters = filters; diff --git a/tests/test_compress.sh b/tests/test_compress.sh index e322d38..49f3fd5 100755 --- a/tests/test_compress.sh +++ b/tests/test_compress.sh @@ -121,8 +121,8 @@ do --armthumb \ --sparc do - test_lzma $ARGS --lzma=dict=64KiB,fb=32,mode=fast - test_lzma --subblock $ARGS --lzma=dict=64KiB,fb=32,mode=fast + test_lzma $ARGS --lzma2=dict=64KiB,fb=32,mode=fast + test_lzma --subblock $ARGS --lzma2=dict=64KiB,fb=32,mode=fast done echo diff --git a/tests/test_filter_flags.c b/tests/test_filter_flags.c index dde0138..d4d309f 100644 --- a/tests/test_filter_flags.c +++ b/tests/test_filter_flags.c @@ -21,8 +21,8 @@ static uint8_t buffer[4096]; -static lzma_options_filter known_flags; -static lzma_options_filter decoded_flags; +static lzma_filter known_flags; +static lzma_filter decoded_flags; static lzma_stream strm = LZMA_STREAM_INIT; @@ -39,8 +39,8 @@ encode(uint32_t known_size) return true; size_t out_pos = 0; - if (lzma_filter_flags_encode(buffer, &out_pos, known_size, - &known_flags) != LZMA_OK) + if (lzma_filter_flags_encode(&known_flags, + buffer, &out_pos, known_size) != LZMA_OK) return true; if (out_pos != known_size) @@ -78,32 +78,18 @@ decode(uint32_t known_size) } -#ifdef HAVE_FILTER_SUBBLOCK +#if defined(HAVE_ENCODER_SUBBLOCK) && defined(HAVE_DECODER_SUBBLOCK) static void test_subblock(void) { // Test 1 known_flags.id = LZMA_FILTER_SUBBLOCK; known_flags.options = NULL; - expect(!encode(2)); expect(!decode(2)); - expect(decoded_flags.options != NULL); - expect(((lzma_options_subblock *)(decoded_flags.options)) - ->allow_subfilters); + expect(decoded_flags.options == NULL); // Test 2 - known_flags.options = decoded_flags.options; - expect(!encode(2)); - expect(!decode(2)); - expect(decoded_flags.options != NULL); - expect(((lzma_options_subblock *)(decoded_flags.options)) - ->allow_subfilters); - - free(decoded_flags.options); - free(known_flags.options); - - // Test 3 buffer[0] = LZMA_FILTER_SUBBLOCK; buffer[1] = 1; buffer[2] = 0; @@ -112,7 +98,7 @@ test_subblock(void) #endif -#ifdef HAVE_FILTER_SIMPLE +#if defined(HAVE_ENCODER_X86) && defined(HAVE_DECODER_X86) static void test_simple(void) { @@ -147,7 +133,7 @@ test_simple(void) #endif -#ifdef HAVE_FILTER_DELTA +#if defined(HAVE_ENCODER_DELTA) && defined(HAVE_DECODER_DELTA) static void test_delta(void) { @@ -157,7 +143,10 @@ test_delta(void) expect(encode(99)); // Test 2 - lzma_options_delta options = { 0 }; + lzma_options_delta options = { + .type = LZMA_DELTA_TYPE_BYTE, + .distance = 0 + }; known_flags.options = &options; expect(encode(99)); @@ -185,7 +174,7 @@ test_delta(void) } #endif - +/* #ifdef HAVE_FILTER_LZMA static void validate_lzma(void) @@ -275,25 +264,25 @@ test_lzma(void) } } #endif - +*/ int main(void) { lzma_init(); -#ifdef HAVE_FILTER_SUBBLOCK +#if defined(HAVE_ENCODER_SUBBLOCK) && defined(HAVE_DECODER_SUBBLOCK) test_subblock(); #endif -#ifdef HAVE_FILTER_SIMPLE +#if defined(HAVE_ENCODER_X86) && defined(HAVE_DECODER_X86) test_simple(); #endif -#ifdef HAVE_FILTER_DELTA +#if defined(HAVE_ENCODER_DELTA) && defined(HAVE_DECODER_DELTA) test_delta(); #endif -#ifdef HAVE_FILTER_LZMA - test_lzma(); -#endif +// #ifdef HAVE_FILTER_LZMA +// test_lzma(); +// #endif lzma_end(&strm); diff --git a/tests/test_stream_flags.c b/tests/test_stream_flags.c index 0de87cd..ead7550 100644 --- a/tests/test_stream_flags.c +++ b/tests/test_stream_flags.c @@ -95,7 +95,7 @@ test_encode_invalid(void) expect(lzma_stream_footer_encode(&known_flags, buffer) == LZMA_PROG_ERROR); - known_flags.check = (lzma_check_type)(-1); + known_flags.check = (lzma_check)(-1); expect(lzma_stream_header_encode(&known_flags, buffer) == LZMA_PROG_ERROR); @@ -171,7 +171,7 @@ main(void) // Valid headers known_flags.backward_size = 1024; - for (lzma_check_type check = LZMA_CHECK_NONE; + for (lzma_check check = LZMA_CHECK_NONE; check <= LZMA_CHECK_ID_MAX; ++check) { test_header(); test_footer(); diff --git a/tests/tests.h b/tests/tests.h index 8988055..3c59bb6 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -69,10 +69,18 @@ lzma_ret_sym(lzma_ret ret) str = "LZMA_HEADER_ERROR"; break; + case LZMA_NO_CHECK: + str = "LZMA_NO_CHECK"; + break; + case LZMA_UNSUPPORTED_CHECK: str = "LZMA_UNSUPPORTED_CHECK"; break; + case LZMA_SEE_CHECK: + str = "LZMA_SEE_CHECK"; + break; + case LZMA_FORMAT_ERROR: str = "LZMA_FORMAT_ERROR"; break; |