aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/files/README63
-rw-r--r--tests/files/bad-too_big_size-with_eopm.lzmabin0 -> 37 bytes
-rw-r--r--tests/files/bad-too_small_size-without_eopm-1.lzmabin0 -> 31 bytes
-rw-r--r--tests/files/bad-too_small_size-without_eopm-2.lzmabin0 -> 31 bytes
-rw-r--r--tests/files/bad-too_small_size-without_eopm-3.lzmabin0 -> 36 bytes
-rw-r--r--tests/files/bad-unknown_size-without_eopm.lzmabin0 -> 31 bytes
-rw-r--r--tests/files/good-known_size-with_eopm.lzmabin0 -> 37 bytes
-rw-r--r--tests/files/good-known_size-without_eopm.lzmabin0 -> 31 bytes
-rw-r--r--tests/files/good-unknown_size-with_eopm.lzmabin0 -> 37 bytes
9 files changed, 50 insertions, 13 deletions
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
--- /dev/null
+++ b/tests/files/bad-too_big_size-with_eopm.lzma
Binary files 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
--- /dev/null
+++ b/tests/files/bad-too_small_size-without_eopm-1.lzma
Binary files 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
--- /dev/null
+++ b/tests/files/bad-too_small_size-without_eopm-2.lzma
Binary files 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
--- /dev/null
+++ b/tests/files/bad-too_small_size-without_eopm-3.lzma
Binary files 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
--- /dev/null
+++ b/tests/files/bad-unknown_size-without_eopm.lzma
Binary files 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
--- /dev/null
+++ b/tests/files/good-known_size-with_eopm.lzma
Binary files 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
--- /dev/null
+++ b/tests/files/good-known_size-without_eopm.lzma
Binary files 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
--- /dev/null
+++ b/tests/files/good-unknown_size-with_eopm.lzma
Binary files differ