]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
test_sparse_basic: test ARCHIVE_READDISK_NO_SPARSE 1614/head
authorJonas Witschel <diabonas@archlinux.org>
Sat, 20 Nov 2021 10:37:50 +0000 (11:37 +0100)
committerJonas Witschel <diabonas@archlinux.org>
Sun, 21 Nov 2021 09:31:23 +0000 (10:31 +0100)
libarchive/test/test_sparse_basic.c

index 5b6f848242b6026c775b0baafead3ad153e37369..133a853985474fa9340fec025f974d29dc557073 100644 (file)
@@ -616,6 +616,33 @@ DEFINE_TEST(test_sparse_basic)
        verify_sparse_file2(a, "file0", sparse_file0, 5, 0);
        verify_sparse_file2(a, "file0", sparse_file0, 5, 1);
 
+       assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+
+       /*
+        * Test that setting ARCHIVE_READDISK_NO_SPARSE
+        * creates no sparse entries.
+        */
+       assert((a = archive_read_disk_new()) != NULL);
+
+       assertEqualIntA(a, ARCHIVE_OK, archive_read_disk_set_behavior(a,
+               ARCHIVE_READDISK_NO_SPARSE));
+
+       verify_sparse_file(a, "file0", sparse_file0, 0);
+       verify_sparse_file(a, "file1", sparse_file1, 0);
+       verify_sparse_file(a, "file2", sparse_file2, 0);
+       verify_sparse_file(a, "file3", sparse_file3, 0);
+       verify_sparse_file(a, "file4", sparse_file4, 0);
+
+       assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+
+       assert((a = archive_read_disk_new()) != NULL);
+
+       assertEqualIntA(a, ARCHIVE_OK, archive_read_disk_set_behavior(a,
+               ARCHIVE_READDISK_NO_SPARSE));
+
+       verify_sparse_file2(a, "file0", sparse_file0, 0, 0);
+       verify_sparse_file2(a, "file0", sparse_file0, 0, 1);
+
        assertEqualInt(ARCHIVE_OK, archive_read_free(a));
        free(cwd);
 }