aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2021-05-09 14:40:35 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2021-05-09 14:41:56 +0200
commitf64e2a3b0b701249b02adf2b389bae8576a3441b (patch)
treef228748175b639ee01b9182c506909d4b062c57e
parentcfa417a44111e1801b17aa0ab31fd0368794c034 (diff)
Add a test case for XZ stream concatenation
A modified version of the libfstream XZ stream uncompress test case is added that deliberately chops the compressed data up into two independend XZ streams to test the behaviour where the decompressor has to read across stream boundaries, like those resulting from parallel compression. Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
-rw-r--r--tests/libfstream/Makemodule.am9
-rw-r--r--tests/libfstream/uncompress.c65
2 files changed, 71 insertions, 3 deletions
diff --git a/tests/libfstream/Makemodule.am b/tests/libfstream/Makemodule.am
index 9303a8a..d943686 100644
--- a/tests/libfstream/Makemodule.am
+++ b/tests/libfstream/Makemodule.am
@@ -13,6 +13,11 @@ test_xfrm_xz_LDADD = libfstream.a libcompat.a $(BZIP2_LIBS) $(ZLIB_LIBS)
test_xfrm_xz_LDADD += $(XZ_LIBS) $(ZSTD_LIBS)
test_xfrm_xz_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_XZ=1
+test_xfrm_xz2_SOURCES = tests/libfstream/uncompress.c tests/test.h
+test_xfrm_xz2_LDADD = libfstream.a libcompat.a $(BZIP2_LIBS) $(ZLIB_LIBS)
+test_xfrm_xz2_LDADD += $(XZ_LIBS) $(ZSTD_LIBS)
+test_xfrm_xz2_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_XZ=2
+
test_xfrm_gzip_SOURCES = tests/libfstream/uncompress.c tests/test.h
test_xfrm_gzip_LDADD = libfstream.a libcompat.a $(BZIP2_LIBS) $(ZLIB_LIBS)
test_xfrm_gzip_LDADD += $(XZ_LIBS) $(ZSTD_LIBS)
@@ -40,8 +45,8 @@ TESTS += test_xfrm_bzip2
endif
if WITH_XZ
-check_PROGRAMS += test_xfrm_xz
-TESTS += test_xfrm_xz
+check_PROGRAMS += test_xfrm_xz test_xfrm_xz2
+TESTS += test_xfrm_xz test_xfrm_xz2
endif
if WITH_GZIP
diff --git a/tests/libfstream/uncompress.c b/tests/libfstream/uncompress.c
index bd7df46..385af29 100644
--- a/tests/libfstream/uncompress.c
+++ b/tests/libfstream/uncompress.c
@@ -97,6 +97,69 @@ static sqfs_u8 data_in[] = {
0xbe, 0x03, 0x00, 0x00, 0xda, 0x2c, 0x45, 0x49,
0xa8, 0x00, 0x0a, 0xfc, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x59, 0x5a
+#elif defined(TEST_XZ2)
+ 0xfd, 0x37, 0x7a, 0x58, 0x5a, 0x00, 0x00, 0x04,
+ 0xe6, 0xd6, 0xb4, 0x46, 0x02, 0x00, 0x21, 0x01,
+ 0x16, 0x00, 0x00, 0x00, 0x74, 0x2f, 0xe5, 0xa3,
+ 0xe0, 0x00, 0xdc, 0x00, 0xb3, 0x5d, 0x00, 0x26,
+ 0x1b, 0xca, 0x46, 0x67, 0x5a, 0xf2, 0x77, 0xb8,
+ 0x7d, 0x86, 0xd8, 0x41, 0xdb, 0x05, 0x35, 0xcd,
+ 0x83, 0xa5, 0x7c, 0x12, 0xa5, 0x05, 0xdb, 0x90,
+ 0xbd, 0x2f, 0x14, 0xd3, 0x71, 0x72, 0x96, 0xa8,
+ 0x8a, 0x7d, 0x84, 0x56, 0x71, 0x8d, 0x6a, 0x22,
+ 0x98, 0xab, 0x9e, 0x3d, 0xc3, 0x55, 0xef, 0xcc,
+ 0xa5, 0xc3, 0xdd, 0x5b, 0x8e, 0xbf, 0x03, 0x81,
+ 0x21, 0x40, 0xd6, 0x26, 0x91, 0x02, 0x45, 0x4e,
+ 0x20, 0x91, 0xcf, 0x8c, 0x51, 0x22, 0x02, 0x70,
+ 0xba, 0x05, 0x6b, 0x83, 0xef, 0x3f, 0x8e, 0x09,
+ 0xef, 0x88, 0xf5, 0x37, 0x1b, 0x89, 0x8d, 0xff,
+ 0x1e, 0xee, 0xe8, 0xb0, 0xac, 0xf2, 0x6e, 0xd4,
+ 0x3e, 0x25, 0xaf, 0xa0, 0x6d, 0x2e, 0xc0, 0x7f,
+ 0xb5, 0xa0, 0xcb, 0x90, 0x1f, 0x08, 0x1a, 0xe2,
+ 0x90, 0x20, 0x19, 0x71, 0x0c, 0xe8, 0x3f, 0xe5,
+ 0x39, 0xeb, 0x9a, 0x62, 0x4f, 0x06, 0xda, 0x3c,
+ 0x32, 0x59, 0xcc, 0x83, 0xe3, 0x83, 0x0f, 0x38,
+ 0x7d, 0x43, 0x37, 0x6c, 0x0b, 0x05, 0x65, 0x98,
+ 0x25, 0xdb, 0xf2, 0xc0, 0x2d, 0x39, 0x36, 0x5d,
+ 0xd4, 0xb6, 0xc2, 0x79, 0x73, 0x3e, 0xc2, 0x6e,
+ 0x54, 0xec, 0x78, 0x2b, 0x5d, 0xf1, 0xd1, 0xb4,
+ 0xb3, 0xcd, 0xf3, 0x89, 0xf5, 0x80, 0x79, 0x46,
+ 0xc0, 0x00, 0x00, 0x00, 0xc4, 0xf5, 0x1d, 0x08,
+ 0xf0, 0x34, 0x3a, 0x59, 0x00, 0x01, 0xcf, 0x01,
+ 0xdd, 0x01, 0x00, 0x00, 0x7f, 0x5a, 0x77, 0xcb,
+ 0xb1, 0xc4, 0x67, 0xfb, 0x02, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x59, 0x5a,
+ 0xfd, 0x37, 0x7a, 0x58, 0x5a, 0x00, 0x00, 0x04,
+ 0xe6, 0xd6, 0xb4, 0x46, 0x02, 0x00, 0x21, 0x01,
+ 0x16, 0x00, 0x00, 0x00, 0x74, 0x2f, 0xe5, 0xa3,
+ 0xe0, 0x00, 0xe0, 0x00, 0xb7, 0x5d, 0x00, 0x31,
+ 0x9b, 0xca, 0x19, 0xc5, 0x54, 0xec, 0xb6, 0x54,
+ 0xe7, 0xb1, 0x7d, 0xc4, 0x57, 0x9e, 0x6c, 0x89,
+ 0xad, 0x4a, 0x6d, 0x16, 0xd8, 0x3c, 0x05, 0x94,
+ 0x10, 0x16, 0x99, 0x38, 0x21, 0xa3, 0xb9, 0xc5,
+ 0x80, 0xff, 0xfc, 0xee, 0xd4, 0xd5, 0x3f, 0xdd,
+ 0x8c, 0xd7, 0x3d, 0x8f, 0x76, 0xec, 0x96, 0x9d,
+ 0x20, 0xac, 0xcb, 0x18, 0xf5, 0xb2, 0x9c, 0x12,
+ 0xf6, 0x7c, 0x33, 0xdc, 0x4f, 0x9a, 0xe5, 0x2d,
+ 0x63, 0x68, 0xa4, 0x2b, 0x1d, 0x0a, 0x1e, 0xf0,
+ 0xfe, 0x73, 0xf2, 0x5f, 0x7b, 0xb4, 0xea, 0x54,
+ 0xad, 0x27, 0xd1, 0xff, 0xb6, 0x50, 0x06, 0x7b,
+ 0x51, 0x3f, 0x25, 0x8a, 0xcf, 0x4c, 0x03, 0x3e,
+ 0xc3, 0xad, 0x47, 0x34, 0xcf, 0xba, 0x45, 0x79,
+ 0xd0, 0x7b, 0xf6, 0x66, 0x63, 0xc0, 0xc6, 0x69,
+ 0xa7, 0x51, 0x84, 0xa8, 0xa0, 0x0b, 0xbc, 0x6f,
+ 0x13, 0x89, 0xd6, 0x5e, 0xac, 0xca, 0x2f, 0xd2,
+ 0xe7, 0xe1, 0x1e, 0x78, 0x22, 0x3a, 0x59, 0x6c,
+ 0x9c, 0x8c, 0x65, 0xf1, 0x5b, 0xf4, 0xbf, 0xd5,
+ 0xdc, 0x05, 0xeb, 0x70, 0x10, 0xb8, 0x6c, 0xf2,
+ 0x13, 0x20, 0xb0, 0xdd, 0x3e, 0xb2, 0x92, 0x5b,
+ 0xa3, 0xf7, 0x94, 0xa1, 0xa1, 0x74, 0x36, 0x9a,
+ 0xf1, 0xd8, 0xc2, 0xf0, 0xc6, 0x29, 0x7e, 0x85,
+ 0x28, 0xf5, 0xf2, 0x21, 0x00, 0x00, 0x00, 0x00,
+ 0xc8, 0x80, 0x67, 0x40, 0xc3, 0xaa, 0x17, 0x57,
+ 0x00, 0x01, 0xd3, 0x01, 0xe1, 0x01, 0x00, 0x00,
+ 0x86, 0xdf, 0x9e, 0x05, 0xb1, 0xc4, 0x67, 0xfb,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x59, 0x5a
#elif defined(TEST_GZIP)
0x1f, 0x8b, 0x08, 0x08, 0x82, 0xd4, 0x97, 0x60,
0x00, 0x03, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x74,
@@ -187,7 +250,7 @@ static const char orig[] =
#if defined(TEST_BZIP2)
#define COMP_NAME "bzip2"
#define COMP_ID FSTREAM_COMPRESSOR_BZIP2
-#elif defined(TEST_XZ)
+#elif defined(TEST_XZ) || defined(TEST_XZ2)
#define COMP_NAME "xz"
#define COMP_ID FSTREAM_COMPRESSOR_XZ
#elif defined(TEST_GZIP)