diff --git a/tests/files/README b/tests/files/README index 59b54e42..ba05aba5 100644 --- a/tests/files/README +++ b/tests/files/README @@ -1,31 +1,31 @@ -.xz Test Files ----------------- +.xz and .lzma Test Files +------------------------ 0. Introduction - This directory contains bunch of files to test handling of .xz files - in .xz decoder implementations. Many of the files have been created - by hand with a hex editor, thus there is no better "source code" than - the files themselves. All the test files (*.xz) and this README have - been put into the public domain. + This directory contains bunch of files to test handling of .xz + and .lzma files in decoder implementations. Many of the files have + been created by hand with a hex editor, thus there is no better + "source code" than the files themselves. All the test files and + this README have been put into the public domain. 1. File Types - Good files (good-*.xz) must decode successfully without requiring - a lot of CPU time or RAM. + Good files (good-*.xz, good-*.lzma) must decode successfully + without requiring a lot of CPU time or RAM. Unsupported files (unsupported-*.xz) are good files, but headers indicate features not supported by the current file format specification. - Bad files (bad-*.xz) 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. + Bad files (bad-*.xz, 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. -2. Descriptions of Individual Files +2. Descriptions of Individual .xz Files 2.1. Good Files @@ -266,3 +266,40 @@ Uncompressed Size bytes of output will have been produced but the LZMA2 decoder doesn't indicate end of stream. + +3. Descriptions of Individual .lzma Files + +3.1. Good Files + + good-unknown_size-with_eopm.lzma has unknown size in the header + and end of payload marker at the end. + + good-known_size-without_eopm.lzma has a known size in the header + and no end of payload marker at the end. + + good-known_size-with_eopm.lzma has a known size in the header + and end of payload marker at the end. XZ Utils 5.2.5 and older + will give an error at the end of the file after producing the + correct uncompressed output. + + +3.2. Bad Files + + bad-unknown_size-without_eopm.lzma has unknown size in the header + but no end of payload marker at the end. This file might be seen + by a decoder as if it were truncated. + + bad-too_big_size-with_eopm.lzma has too big uncompressed size in + the header and the end of payload marker will be detected before + the specified number of bytes have been decoded. + + bad-too_small_size-without_eopm-1.lzma has too small uncompressed + size in the header. The decoder will look for end of payload marker + but instead find a literal that would produce more output. + + bad-too_small_size-without_eopm-2.lzma is like -1 above but instead + of a literal the problem occurs with a short repeated match. + + bad-too_small_size-without_eopm-3.lzma is like -1 above but instead + of a literal the problem occurs in the middle of a match. + diff --git a/tests/files/bad-too_big_size-with_eopm.lzma b/tests/files/bad-too_big_size-with_eopm.lzma new file mode 100644 index 00000000..b7cd3b05 Binary files /dev/null and b/tests/files/bad-too_big_size-with_eopm.lzma differ diff --git a/tests/files/bad-too_small_size-without_eopm-1.lzma b/tests/files/bad-too_small_size-without_eopm-1.lzma new file mode 100644 index 00000000..cc2805cd Binary files /dev/null and b/tests/files/bad-too_small_size-without_eopm-1.lzma differ diff --git a/tests/files/bad-too_small_size-without_eopm-2.lzma b/tests/files/bad-too_small_size-without_eopm-2.lzma new file mode 100644 index 00000000..e37cab14 Binary files /dev/null and b/tests/files/bad-too_small_size-without_eopm-2.lzma differ diff --git a/tests/files/bad-too_small_size-without_eopm-3.lzma b/tests/files/bad-too_small_size-without_eopm-3.lzma new file mode 100644 index 00000000..67a1af34 Binary files /dev/null and b/tests/files/bad-too_small_size-without_eopm-3.lzma differ diff --git a/tests/files/bad-unknown_size-without_eopm.lzma b/tests/files/bad-unknown_size-without_eopm.lzma new file mode 100644 index 00000000..b3d7a521 Binary files /dev/null and b/tests/files/bad-unknown_size-without_eopm.lzma differ diff --git a/tests/files/good-known_size-with_eopm.lzma b/tests/files/good-known_size-with_eopm.lzma new file mode 100644 index 00000000..1b453079 Binary files /dev/null and b/tests/files/good-known_size-with_eopm.lzma differ diff --git a/tests/files/good-known_size-without_eopm.lzma b/tests/files/good-known_size-without_eopm.lzma new file mode 100644 index 00000000..83623fde Binary files /dev/null and b/tests/files/good-known_size-without_eopm.lzma differ diff --git a/tests/files/good-unknown_size-with_eopm.lzma b/tests/files/good-unknown_size-with_eopm.lzma new file mode 100644 index 00000000..0f4ff822 Binary files /dev/null and b/tests/files/good-unknown_size-with_eopm.lzma differ