aboutsummaryrefslogtreecommitdiffstats
path: root/libarchive/test/test_read_format_zip.c
diff options
context:
space:
mode:
authorMartin Matuska <mm@FreeBSD.org>2020-12-01 10:36:46 +0000
committerMartin Matuska <mm@FreeBSD.org>2020-12-01 10:36:46 +0000
commitd5f2a5ff11474589cccacfc8e153d437f48530e2 (patch)
treeaeb7e201bfb2d629755c396db8001e39d116e852 /libarchive/test/test_read_format_zip.c
parent4dd2ae60c22045bc4e4f53a0cf45028322168ec0 (diff)
downloadsrc-d5f2a5ff11474589cccacfc8e153d437f48530e2.tar.gz
src-d5f2a5ff11474589cccacfc8e153d437f48530e2.zip
Update vendor/libarchive/dist to git 833821f55b1807cac22a63a58b759a7802df2fb7vendor/libarchive/3.5.0
Libarchive 3.5.0 Relevant vendor changes: Issue #1258: add archive_read_support_filter_by_code() PR #1347: mtree digest reader support Issue #1381: skip hardlinks pointing to itself on extraction PR #1387: fix writing of cpio archives with hardlinks without file type PR #1388: fix rdev field in cpio format for device nodes PR #1389: completed support for UTF-8 encoding conversion PR #1405: more formats in archive_read_support_format_by_code() PR #1408: fix uninitialized size in rar5_read_data PR #1409: system extended attribute support PR #1435: support for decompression of symbolic links in zipx archives Issue #1456: memory leak after unsuccessful archive_write_open_filename
Notes
Notes: svn path=/vendor/libarchive/dist/; revision=368207 svn path=/vendor/libarchive/3.5.0/; revision=368208; tag=vendor/libarchive/3.5.0
Diffstat (limited to 'libarchive/test/test_read_format_zip.c')
-rw-r--r--libarchive/test/test_read_format_zip.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/libarchive/test/test_read_format_zip.c b/libarchive/test/test_read_format_zip.c
index 04dfecb015f8..31f66f012767 100644
--- a/libarchive/test/test_read_format_zip.c
+++ b/libarchive/test/test_read_format_zip.c
@@ -966,3 +966,35 @@ DEFINE_TEST(test_read_format_zip_lzma_stream_end_blockread)
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
}
+
+DEFINE_TEST(test_read_format_zip_7z_lzma)
+{
+ const char *refname = "test_read_format_zip_7z_lzma.zip";
+ struct archive_entry *ae;
+ struct archive *a;
+
+ assert((a = archive_read_new()) != NULL);
+ if (ARCHIVE_OK != archive_read_support_filter_lzma(a)) {
+ skipping("lzma reading not fully supported on this platform");
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ return;
+ }
+ extract_reference_file(refname);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_open_filename(a, refname, 10240));
+ //read directories
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ //read symlink
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualInt(AE_IFLNK, archive_entry_filetype(ae));
+ assertEqualString("../samples/abc_measurement_analysis_sample"
+ "/src/abc_measurement_analysis_sample.py",
+ archive_entry_symlink(ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}