From cf44e4b7f5dfdbf8c78aef377c10f71e274f63c0 Mon Sep 17 00:00:00 2001 From: Jia Tan Date: Fri, 23 Feb 2024 23:09:59 +0800 Subject: [PATCH] Tests: Add a few test files. --- tests/files/README | 19 +++++++++++++++++++ tests/files/bad-3-corrupt_lzma2.xz | Bin 0 -> 484 bytes tests/files/bad-dict_size.lzma | Bin 0 -> 41 bytes tests/files/good-2cat.xz | Bin 0 -> 136 bytes tests/files/good-large_compressed.lzma | Bin 0 -> 35430 bytes tests/files/good-small_compressed.lzma | Bin 0 -> 258 bytes 6 files changed, 19 insertions(+) create mode 100644 tests/files/bad-3-corrupt_lzma2.xz create mode 100644 tests/files/bad-dict_size.lzma create mode 100644 tests/files/good-2cat.xz create mode 100644 tests/files/good-large_compressed.lzma create mode 100644 tests/files/good-small_compressed.lzma diff --git a/tests/files/README b/tests/files/README index e16ee19c9..e987a5193 100644 --- a/tests/files/README +++ b/tests/files/README @@ -41,6 +41,8 @@ good-0catpad-empty.xz has two zero-Block Streams concatenated with four-byte Stream Padding between the Streams. + good-2cat.xz has two Streams with one Block each. + good-1-check-none.xz has one Stream with one Block with two uncompressed LZMA2 chunks and no integrity check. @@ -292,6 +294,11 @@ Uncompressed Size bytes of output will have been produced but the LZMA2 decoder doesn't indicate end of stream. + bad-3-corrupt_lzma2.xz has three Streams in it. The first and third + streams are valid xz Streams. The middle Stream has a correct Stream + Header, Block Header, Index and Stream Footer. Only the LZMA2 data + is corrupt. This file should decompress if --single-stream is used. + 3. Descriptions of Individual .lzma Files @@ -308,6 +315,14 @@ will give an error at the end of the file after producing the correct uncompressed output. + good-small_compressed.lzma was created with a small dictionary (2^16). + It contains the string "Hello World" repeated 100,000 times. This tests + match decoding and wrapping the dictionary. + + good-large_compressed.lzma was created with a mix of repeated + characters and random data to test a data stream containing many + matches and many literals. + 3.2. Bad Files @@ -329,6 +344,10 @@ 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. + bad-dict_size.lzma has a valid dictionary size according to the .lzma + File Format, but will be rejected by XZ Utils because it is not 2^n or + 2^n + 2^(n-1). + 4. Descriptions of Individual .lz (lzip) Files diff --git a/tests/files/bad-3-corrupt_lzma2.xz b/tests/files/bad-3-corrupt_lzma2.xz new file mode 100644 index 0000000000000000000000000000000000000000..926f95b0a955a187fbfa20cf98d3db299a748208 GIT binary patch literal 484 zcmexsUKJ6=z`*kC+7>q^21P~=1_p*3{K~?N3_Qv};E|e>lMiA5g&Bl8?z2P|H99dc zs`3^}9@!?p?Q<<7NP;CY>Mss+9 zE($)_d|Sz-BjB;!wAbEM3487>3-_p6udwmJSDSoCuS>sdC%;~nQr0}(v5xBBl2 z|9@6H7E0GCLAuf)^SZ+l41-FEn)?NkddIYZCv00z%9 ziQUUAj(Sg8&EX`F^RL*xIeh-fhF!s2kC`NAU1+i7SR?BxGxOR@c`mbmesQVpXXi=D z2lR>-tzN?L&2+}Xu!&jT42&C?UH}7r`I`298;_*_W+D)#j10V>C<)Im%1Hq+xPa;_ XK5%QENxy%Cfl-Z*L;3*=a@+s_xU|4k literal 0 HcmV?d00001 diff --git a/tests/files/bad-dict_size.lzma b/tests/files/bad-dict_size.lzma new file mode 100644 index 0000000000000000000000000000000000000000..f2ef5a586e5bd152acb45c98595b47aee93d8db5 GIT binary patch literal 41 scma$3_g|jjKNK*CyVz7#4<1d0PqqOLI3~& literal 0 HcmV?d00001 diff --git a/tests/files/good-2cat.xz b/tests/files/good-2cat.xz new file mode 100644 index 0000000000000000000000000000000000000000..ea4d6270fb6b5a6996f6df91b656bb0dc9aaf950 GIT binary patch literal 136 zcmexsUKJ6=z`*kC+7>q^21P~=1_p*3{K~?N3>@+C9;rDw`SI~UAqK74U-mw?y!L{D rQIRu8;^x8gMY-Rue#5*Uh literal 0 HcmV?d00001 diff --git a/tests/files/good-large_compressed.lzma b/tests/files/good-large_compressed.lzma new file mode 100644 index 0000000000000000000000000000000000000000..8450fea8fcf86b9089b1e910e5821640fd3d6b5d GIT binary patch literal 35430 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 I|L{)00OhlVX#fBK literal 0 HcmV?d00001