]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Add tests for the new zstd options.
authorDag-Erling Smørgrav <des@des.no>
Tue, 20 Dec 2022 13:21:38 +0000 (14:21 +0100)
committerMartin Matuška <martin@matuska.de>
Mon, 9 Jan 2023 14:23:53 +0000 (15:23 +0100)
libarchive/test/test_write_filter_zstd.c

index 263cea5bc49e2ec83371076fd9b437818eed0d55..aa77b49860c0c9c84195060cc1d5503c579c16c6 100644 (file)
@@ -133,6 +133,33 @@ DEFINE_TEST(test_write_filter_zstd)
            archive_write_set_filter_option(a, NULL, "threads", "-1")); /* negative */
        assertEqualIntA(a, ARCHIVE_OK,
            archive_write_set_filter_option(a, NULL, "threads", "4"));
+#if HAVE_ZSTD_H && HAVE_LIBZSTD_COMPRESSOR
+       /* frame-per-file: boolean */
+       assertEqualIntA(a, ARCHIVE_OK,
+           archive_write_set_filter_option(a, NULL, "frame-per-file", ""));
+       /* min-frame-size: >= 0 */
+       assertEqualIntA(a, ARCHIVE_FAILED,
+           archive_write_set_filter_option(a, NULL, "min-frame-size", ""));
+       assertEqualIntA(a, ARCHIVE_FAILED,
+           archive_write_set_filter_option(a, NULL, "min-frame-size", "-1"));
+       assertEqualIntA(a, ARCHIVE_OK,
+           archive_write_set_filter_option(a, NULL, "min-frame-size", "0"));
+       assertEqualIntA(a, ARCHIVE_OK,
+           archive_write_set_filter_option(a, NULL, "min-frame-size", "1048576"));
+       /* max-frame-size: >= 1024 */
+       assertEqualIntA(a, ARCHIVE_FAILED,
+           archive_write_set_filter_option(a, NULL, "max-frame-size", ""));
+       assertEqualIntA(a, ARCHIVE_FAILED,
+           archive_write_set_filter_option(a, NULL, "max-frame-size", "-1"));
+       assertEqualIntA(a, ARCHIVE_FAILED,
+           archive_write_set_filter_option(a, NULL, "max-frame-size", "0"));
+       assertEqualIntA(a, ARCHIVE_FAILED,
+           archive_write_set_filter_option(a, NULL, "max-frame-size", "1023"));
+       assertEqualIntA(a, ARCHIVE_OK,
+           archive_write_set_filter_option(a, NULL, "max-frame-size", "1024"));
+       assertEqualIntA(a, ARCHIVE_OK,
+           archive_write_set_filter_option(a, NULL, "max-frame-size", "1048576"));
+#endif
        assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, buffsize, &used2));
        for (i = 0; i < 100; i++) {
                snprintf(path, sizeof(path), "file%03d", i);