]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Add tests 2947/head
authorFrançois Degros <fdegros@chromium.org>
Mon, 24 Feb 2025 23:19:12 +0000 (10:19 +1100)
committerFrançois Degros <fdegros@chromium.org>
Fri, 27 Mar 2026 10:49:16 +0000 (21:49 +1100)
test_read_append_lzop_filter
test_read_append_grzip_filter

Bug: https://github.com/libarchive/libarchive/issues/2513
Test: ./libarchive_test test_read_append_lzop_filter test_read_append_grzip_filter

libarchive/test/test_read_set_format.c

index 615dd8ae8022b5bdc9edc2034853b05c5521aec3..2ea39045201f271b9a1cfebfd13afd2d4cc57318 100644 (file)
@@ -177,6 +177,40 @@ DEFINE_TEST(test_read_append_wrong_filter)
   assertEqualInt(ARCHIVE_OK,archive_read_free(a));
 }
 
+DEFINE_TEST(test_read_append_lzop_filter)
+{
+  struct archive *a;
+  int r;
+
+  assert((a = archive_read_new()) != NULL);
+  assertA(0 == archive_read_set_format(a, ARCHIVE_FORMAT_TAR));
+  r = archive_read_append_filter(a, ARCHIVE_FILTER_LZOP);
+  if (archive_liblzo2_version() != NULL) {
+    assertEqualIntA(a, ARCHIVE_OK, r);
+  } else if (canLzop()) {
+    // We're using an external program
+    assertEqualIntA(a, ARCHIVE_WARN, r);
+  }
+
+  archive_read_free(a);
+}
+
+DEFINE_TEST(test_read_append_grzip_filter)
+{
+  struct archive *a;
+  int r;
+
+  assert((a = archive_read_new()) != NULL);
+  assertA(0 == archive_read_set_format(a, ARCHIVE_FORMAT_TAR));
+  r = archive_read_append_filter(a, ARCHIVE_FILTER_GRZIP);
+  // Grzip currently always uses an external program.
+  if (canGrzip()) {
+    assertEqualIntA(a, ARCHIVE_WARN, r);
+  }
+
+  archive_read_free(a);
+}
+
 DEFINE_TEST(test_read_append_filter_program)
 {
   struct archive_entry *ae;