diff options
author | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2023-08-10 17:18:44 +0200 |
---|---|---|
committer | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2023-08-14 15:09:11 +0200 |
commit | 149b74e00eb0937231087251d7644be0aa478929 (patch) | |
tree | 0c058276a089d17c37c20fe04f420cf6c4b0defa /test | |
parent | 89757d717dd93b38ee5fe1d282b5946641fc6f29 (diff) | |
download | justbuild-149b74e00eb0937231087251d7644be0aa478929.tar.gz |
test: Add checks for tarballs with lzip and lzma compression
Diffstat (limited to 'test')
-rw-r--r-- | test/other_tools/utils/archive_usage.test.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/test/other_tools/utils/archive_usage.test.cpp b/test/other_tools/utils/archive_usage.test.cpp index 59b09d8c..3131e7a2 100644 --- a/test/other_tools/utils/archive_usage.test.cpp +++ b/test/other_tools/utils/archive_usage.test.cpp @@ -73,6 +73,18 @@ std::vector<archive_test_info_t> const kTestScenarios = { .filename = "test.tar.xz", .tools = {"tar", "xz"}, .cmd = "/usr/bin/tar xJf"}, + {.test_name = "tar.lz", + .type = ArchiveType::TarLz, + .test_dir = "test_tar_lz", + .filename = "test.tar.lz", + .tools = {"tar", "lzip"}, + .cmd = "/usr/bin/tar --lzip -x -f"}, + {.test_name = "tar.lzma", + .type = ArchiveType::TarLzma, + .test_dir = "test_tar_lzma", + .filename = "test.tar.lzma", + .tools = {"tar", "lzma"}, + .cmd = "/usr/bin/tar --lzma -x -f"}, {.test_name = "zip", .type = ArchiveType::Zip, .test_dir = "test_zip", @@ -138,6 +150,8 @@ void extract_archive(std::string const& path) { REQUIRE(archive_read_support_filter_gzip(a) == ARCHIVE_OK); REQUIRE(archive_read_support_filter_bzip2(a) == ARCHIVE_OK); REQUIRE(archive_read_support_filter_xz(a) == ARCHIVE_OK); + REQUIRE(archive_read_support_filter_lzip(a) == ARCHIVE_OK); + REQUIRE(archive_read_support_filter_lzma(a) == ARCHIVE_OK); REQUIRE(archive_read_open_filename(a, path.c_str(), kBlockSize) == ARCHIVE_OK); @@ -224,6 +238,14 @@ void enable_write_format_and_filter(archive* aw, ArchiveType type) { REQUIRE(archive_write_set_format_pax_restricted(aw) == ARCHIVE_OK); REQUIRE(archive_write_add_filter_xz(aw) == ARCHIVE_OK); } break; + case ArchiveType::TarLz: { + REQUIRE(archive_write_set_format_pax_restricted(aw) == ARCHIVE_OK); + REQUIRE(archive_write_add_filter_lzip(aw) == ARCHIVE_OK); + } break; + case ArchiveType::TarLzma: { + REQUIRE(archive_write_set_format_pax_restricted(aw) == ARCHIVE_OK); + REQUIRE(archive_write_add_filter_lzma(aw) == ARCHIVE_OK); + } break; case ArchiveType::TarAuto: return; // unused } @@ -249,6 +271,14 @@ void enable_read_format_and_filter(archive* ar, ArchiveType type) { REQUIRE(archive_read_support_format_tar(ar) == ARCHIVE_OK); REQUIRE(archive_read_support_filter_xz(ar) == ARCHIVE_OK); } break; + case ArchiveType::TarLz: { + REQUIRE(archive_read_support_format_tar(ar) == ARCHIVE_OK); + REQUIRE(archive_read_support_filter_lzip(ar) == ARCHIVE_OK); + } break; + case ArchiveType::TarLzma: { + REQUIRE(archive_read_support_format_tar(ar) == ARCHIVE_OK); + REQUIRE(archive_read_support_filter_lzma(ar) == ARCHIVE_OK); + } break; case ArchiveType::TarAuto: return; // unused } @@ -311,6 +341,7 @@ TEST_CASE("Read-write archives", "[archive_read_write]") { tools_exist &= FileSystemManager::IsExecutable( std::string("/usr/bin/") + tool); } + if (tools_exist) { SECTION("Extract via system tools") { REQUIRE( |