]> granicus.if.org Git - xz/commitdiff
Added more Multi-Block test files. Improved some
authorLasse Collin <lasse.collin@tukaani.org>
Fri, 25 Jan 2008 21:50:35 +0000 (23:50 +0200)
committerLasse Collin <lasse.collin@tukaani.org>
Fri, 25 Jan 2008 21:50:35 +0000 (23:50 +0200)
descriptions in the test files' README.

tests/files/README
tests/files/bad-multi-none-block_1.lzma [new file with mode: 0644]
tests/files/bad-multi-none-block_2.lzma [new file with mode: 0644]
tests/files/good-multi-none-block_1.lzma [new file with mode: 0644]

index ebf8d86362fe7ab3331de528ef46766530661502..b1d0b6867eb0248fb445d62b790a76da2d776bc2 100644 (file)
     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.
+
 
 2.2. Bad Files
 
 
     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 decoder should give an error when it detects the
-    second Data Block.
+    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-multi-none-header_3.lzma contains too small Total Size in Header
-    Metadata Block. A decoder should abort decoding before the second
-    Data Block, preferably before the first Data Block has been finished.
+    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-multi-none-header_4.lzma is like bad-multi-none-header_3.lzma but
     with too small Uncompressed Size.
     but the Total Size field is missing from the Footer Metadata Block.
 
     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 decoder
-    should abort before decoding any Data Blocks.
+    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-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-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.
 
 
 2.3. Malicious Files
diff --git a/tests/files/bad-multi-none-block_1.lzma b/tests/files/bad-multi-none-block_1.lzma
new file mode 100644 (file)
index 0000000..17385ae
Binary files /dev/null and b/tests/files/bad-multi-none-block_1.lzma differ
diff --git a/tests/files/bad-multi-none-block_2.lzma b/tests/files/bad-multi-none-block_2.lzma
new file mode 100644 (file)
index 0000000..b88836a
Binary files /dev/null and b/tests/files/bad-multi-none-block_2.lzma differ
diff --git a/tests/files/good-multi-none-block_1.lzma b/tests/files/good-multi-none-block_1.lzma
new file mode 100644 (file)
index 0000000..b573e36
Binary files /dev/null and b/tests/files/good-multi-none-block_1.lzma differ