]> git.ipfire.org Git - thirdparty/xz.git/commitdiff
Tests: Add .lzma test files.
authorLasse Collin <lasse.collin@tukaani.org>
Thu, 14 Jul 2022 16:37:42 +0000 (19:37 +0300)
committerLasse Collin <lasse.collin@tukaani.org>
Sun, 24 Jul 2022 08:37:44 +0000 (11:37 +0300)
tests/files/README
tests/files/bad-too_big_size-with_eopm.lzma [new file with mode: 0644]
tests/files/bad-too_small_size-without_eopm-1.lzma [new file with mode: 0644]
tests/files/bad-too_small_size-without_eopm-2.lzma [new file with mode: 0644]
tests/files/bad-too_small_size-without_eopm-3.lzma [new file with mode: 0644]
tests/files/bad-unknown_size-without_eopm.lzma [new file with mode: 0644]
tests/files/good-known_size-with_eopm.lzma [new file with mode: 0644]
tests/files/good-known_size-without_eopm.lzma [new file with mode: 0644]
tests/files/good-unknown_size-with_eopm.lzma [new file with mode: 0644]

index 59b54e4279f6cf6ccbe74d4bf9a571632614d404..ba05aba50bb86bc98c9a4d21735be73778135cef 100644 (file)
@@ -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
 
     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 (file)
index 0000000..b7cd3b0
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 (file)
index 0000000..cc2805c
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 (file)
index 0000000..e37cab1
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 (file)
index 0000000..67a1af3
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 (file)
index 0000000..b3d7a52
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 (file)
index 0000000..1b45307
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 (file)
index 0000000..83623fd
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 (file)
index 0000000..0f4ff82
Binary files /dev/null and b/tests/files/good-unknown_size-with_eopm.lzma differ