]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
archive_write: group option setter tests
authordatauwu <209150516+datauwu@users.noreply.github.com>
Tue, 30 Jun 2026 09:12:10 +0000 (17:12 +0800)
committerdatauwu <209150516+datauwu@users.noreply.github.com>
Tue, 30 Jun 2026 09:12:10 +0000 (17:12 +0800)
The write option setter checks used several tiny source files with the
same basic shape.

Keep the same DEFINE_TEST cases. Put the write-side option setter
checks in test_archive_write_set_options.c. Remove the extra source
files from the build lists.

Makefile.am
libarchive/test/CMakeLists.txt
libarchive/test/test_archive_write_set_filter_option.c [deleted file]
libarchive/test/test_archive_write_set_format_option.c [deleted file]
libarchive/test/test_archive_write_set_option.c [deleted file]
libarchive/test/test_archive_write_set_options.c

index 8f401c691d3eae59d3881eb074294343010cdeec..0dfa889b4f4b63660a0b11cbc582ea003d0f382d 100644 (file)
@@ -415,11 +415,8 @@ libarchive_test_SOURCES= \
        libarchive/test/test_archive_string_conversion.c \
        libarchive/test/test_archive_write_add_filter.c \
        libarchive/test/test_archive_write_add_filter_by_name.c \
-       libarchive/test/test_archive_write_set_filter_option.c \
        libarchive/test/test_archive_write_set_format_by_name.c \
        libarchive/test/test_archive_write_set_format_filter_by_ext.c \
-       libarchive/test/test_archive_write_set_format_option.c \
-       libarchive/test/test_archive_write_set_option.c \
        libarchive/test/test_archive_write_set_options.c \
        libarchive/test/test_archive_write_set_passphrase.c \
        libarchive/test/test_bad_fd.c \
index 801514641a4fd01f277f18d5fb5884ebf70352cb..a274d99469dd667b66c67000edcd2b9d142b1555 100644 (file)
@@ -44,11 +44,8 @@ IF(ENABLE_TEST)
     test_archive_string_conversion.c
     test_archive_write_add_filter.c
     test_archive_write_add_filter_by_name.c
-    test_archive_write_set_filter_option.c
     test_archive_write_set_format_by_name.c
     test_archive_write_set_format_filter_by_ext.c
-    test_archive_write_set_format_option.c
-    test_archive_write_set_option.c
     test_archive_write_set_options.c
     test_archive_write_set_passphrase.c
     test_bad_fd.c
diff --git a/libarchive/test/test_archive_write_set_filter_option.c b/libarchive/test/test_archive_write_set_filter_option.c
deleted file mode 100644 (file)
index 6b90a83..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*-
- * Copyright (c) 2011 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "test.h"
-
-#define should(__a, __code, __m, __o, __v) \
-assertEqualInt(__code, archive_write_set_filter_option(__a, __m, __o, __v))
-
-static void
-test(int pristine)
-{
-       struct archive* a = archive_write_new();
-
-       if (!pristine)
-               archive_write_add_filter_gzip(a);
-
-       should(a, ARCHIVE_OK, NULL, NULL, NULL);
-       should(a, ARCHIVE_OK, "", "", "");
-
-       should(a, ARCHIVE_FAILED, NULL, "fubar", NULL);
-       should(a, ARCHIVE_FAILED, NULL, "fubar", "snafu");
-       should(a, ARCHIVE_FAILED, "fubar", "snafu", NULL);
-       should(a, ARCHIVE_FAILED, "fubar", "snafu", "betcha");
-
-       archive_write_free(a);
-}
-
-DEFINE_TEST(test_archive_write_set_filter_option)
-{
-       test(1);
-       test(0);
-}
diff --git a/libarchive/test/test_archive_write_set_format_option.c b/libarchive/test/test_archive_write_set_format_option.c
deleted file mode 100644 (file)
index 38f83ab..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*-
- * Copyright (c) 2011 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "test.h"
-
-#define should(__a, __code, __m, __o, __v) \
-assertEqualInt(__code, archive_write_set_format_option(__a, __m, __o, __v))
-
-static void
-test(int pristine)
-{
-       struct archive* a = archive_write_new();
-       int known_option_rv = pristine ? ARCHIVE_FAILED : ARCHIVE_OK;
-
-       if (!pristine)
-               archive_write_set_format_iso9660(a);
-
-       /* NULL and "" denote `no option', so they're ok no matter
-        * what, if any, formats are registered */
-       should(a, ARCHIVE_OK, NULL, NULL, NULL);
-       should(a, ARCHIVE_OK, "", "", "");
-
-       /* unknown modules and options */
-       should(a, ARCHIVE_FAILED, "fubar", "snafu", NULL);
-       should(a, ARCHIVE_FAILED, "fubar", "snafu", "betcha");
-
-       /* unknown modules and options */
-       should(a, ARCHIVE_FAILED, NULL, "snafu", NULL);
-       should(a, ARCHIVE_FAILED, NULL, "snafu", "betcha");
-
-       /* ARCHIVE_OK with iso9660 loaded, ARCHIVE_WARN otherwise */
-       should(a, known_option_rv, "iso9660", "joliet", NULL);
-       should(a, known_option_rv, "iso9660", "joliet", NULL);
-       should(a, known_option_rv, NULL, "joliet", NULL);
-       should(a, known_option_rv, NULL, "joliet", NULL);
-
-       archive_write_free(a);
-}
-
-DEFINE_TEST(test_archive_write_set_format_option)
-{
-       test(1);
-       test(0);
-}
diff --git a/libarchive/test/test_archive_write_set_option.c b/libarchive/test/test_archive_write_set_option.c
deleted file mode 100644 (file)
index aa44eda..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*-
- * Copyright (c) 2011 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "test.h"
-
-#define should(__a, __code, __m, __o, __v) \
-assertEqualInt(__code, archive_write_set_option(__a, __m, __o, __v))
-
-static void
-test(int pristine)
-{
-       struct archive* a = archive_write_new();
-       int known_option_rv = pristine ? ARCHIVE_FAILED : ARCHIVE_OK;
-
-       if (!pristine) {
-               archive_write_add_filter_gzip(a);
-               archive_write_set_format_iso9660(a);
-        }
-
-       /* NULL and "" denote `no option', so they're ok no matter
-        * what, if any, formats are registered */
-       should(a, ARCHIVE_OK, NULL, NULL, NULL);
-       should(a, ARCHIVE_OK, "", "", "");
-
-       /* unknown modules and options */
-       should(a, ARCHIVE_FAILED, "fubar", "snafu", NULL);
-       should(a, ARCHIVE_FAILED, "fubar", "snafu", "betcha");
-
-       /* unknown modules and options */
-       should(a, ARCHIVE_FAILED, NULL, "snafu", NULL);
-       should(a, ARCHIVE_FAILED, NULL, "snafu", "betcha");
-
-       /* ARCHIVE_OK with iso9660 loaded, ARCHIVE_WARN otherwise */
-       should(a, known_option_rv, "iso9660", "joliet", NULL);
-       should(a, known_option_rv, "iso9660", "joliet", NULL);
-       should(a, known_option_rv, NULL, "joliet", NULL);
-       should(a, known_option_rv, NULL, "joliet", NULL);
-
-       archive_write_free(a);
-}
-
-DEFINE_TEST(test_archive_write_set_option)
-{
-       test(1);
-       test(0);
-}
index 6a0198de35e1fb3a816ae56bbcfc9a36cb9be5c7..c35c8718504142c33bf161419384425ddbe15612 100644 (file)
 
 #include "test.h"
 
-#define should(__a, __code, __opts) \
+#define should_write_set_filter_option(__a, __code, __m, __o, __v) \
+assertEqualInt(__code, archive_write_set_filter_option(__a, __m, __o, __v))
+
+static void
+write_set_filter_option_test(int pristine)
+{
+       struct archive* a = archive_write_new();
+
+       if (!pristine)
+               archive_write_add_filter_gzip(a);
+
+       should_write_set_filter_option(a, ARCHIVE_OK, NULL, NULL, NULL);
+       should_write_set_filter_option(a, ARCHIVE_OK, "", "", "");
+
+       should_write_set_filter_option(a, ARCHIVE_FAILED, NULL, "fubar", NULL);
+       should_write_set_filter_option(a, ARCHIVE_FAILED, NULL, "fubar", "snafu");
+       should_write_set_filter_option(a, ARCHIVE_FAILED, "fubar", "snafu", NULL);
+       should_write_set_filter_option(a, ARCHIVE_FAILED, "fubar", "snafu", "betcha");
+
+       archive_write_free(a);
+}
+
+DEFINE_TEST(test_archive_write_set_filter_option)
+{
+       write_set_filter_option_test(1);
+       write_set_filter_option_test(0);
+}
+
+#define should_write_set_format_option(__a, __code, __m, __o, __v) \
+assertEqualInt(__code, archive_write_set_format_option(__a, __m, __o, __v))
+
+static void
+write_set_format_option_test(int pristine)
+{
+       struct archive* a = archive_write_new();
+       int known_option_rv = pristine ? ARCHIVE_FAILED : ARCHIVE_OK;
+
+       if (!pristine)
+               archive_write_set_format_iso9660(a);
+
+       /* NULL and "" denote `no option', so they're ok no matter
+        * what, if any, formats are registered */
+       should_write_set_format_option(a, ARCHIVE_OK, NULL, NULL, NULL);
+       should_write_set_format_option(a, ARCHIVE_OK, "", "", "");
+
+       /* unknown modules and options */
+       should_write_set_format_option(a, ARCHIVE_FAILED, "fubar", "snafu", NULL);
+       should_write_set_format_option(a, ARCHIVE_FAILED, "fubar", "snafu", "betcha");
+
+       /* unknown modules and options */
+       should_write_set_format_option(a, ARCHIVE_FAILED, NULL, "snafu", NULL);
+       should_write_set_format_option(a, ARCHIVE_FAILED, NULL, "snafu", "betcha");
+
+       /* ARCHIVE_OK with iso9660 loaded, ARCHIVE_WARN otherwise */
+       should_write_set_format_option(a, known_option_rv, "iso9660", "joliet", NULL);
+       should_write_set_format_option(a, known_option_rv, "iso9660", "joliet", NULL);
+       should_write_set_format_option(a, known_option_rv, NULL, "joliet", NULL);
+       should_write_set_format_option(a, known_option_rv, NULL, "joliet", NULL);
+
+       archive_write_free(a);
+}
+
+DEFINE_TEST(test_archive_write_set_format_option)
+{
+       write_set_format_option_test(1);
+       write_set_format_option_test(0);
+}
+
+#define should_write_set_option(__a, __code, __m, __o, __v) \
+assertEqualInt(__code, archive_write_set_option(__a, __m, __o, __v))
+
+static void
+write_set_option_test(int pristine)
+{
+       struct archive* a = archive_write_new();
+       int known_option_rv = pristine ? ARCHIVE_FAILED : ARCHIVE_OK;
+
+       if (!pristine) {
+               archive_write_add_filter_gzip(a);
+               archive_write_set_format_iso9660(a);
+        }
+
+       /* NULL and "" denote `no option', so they're ok no matter
+        * what, if any, formats are registered */
+       should_write_set_option(a, ARCHIVE_OK, NULL, NULL, NULL);
+       should_write_set_option(a, ARCHIVE_OK, "", "", "");
+
+       /* unknown modules and options */
+       should_write_set_option(a, ARCHIVE_FAILED, "fubar", "snafu", NULL);
+       should_write_set_option(a, ARCHIVE_FAILED, "fubar", "snafu", "betcha");
+
+       /* unknown modules and options */
+       should_write_set_option(a, ARCHIVE_FAILED, NULL, "snafu", NULL);
+       should_write_set_option(a, ARCHIVE_FAILED, NULL, "snafu", "betcha");
+
+       /* ARCHIVE_OK with iso9660 loaded, ARCHIVE_WARN otherwise */
+       should_write_set_option(a, known_option_rv, "iso9660", "joliet", NULL);
+       should_write_set_option(a, known_option_rv, "iso9660", "joliet", NULL);
+       should_write_set_option(a, known_option_rv, NULL, "joliet", NULL);
+       should_write_set_option(a, known_option_rv, NULL, "joliet", NULL);
+
+       archive_write_free(a);
+}
+
+DEFINE_TEST(test_archive_write_set_option)
+{
+       write_set_option_test(1);
+       write_set_option_test(0);
+}
+
+#define should_write_set_options(__a, __code, __opts) \
 assertEqualInt(__code, archive_write_set_options(__a, __opts))
 
 static void
-test(int pristine)
+write_set_options_test(int pristine)
 {
        struct archive* a = archive_write_new();
        int halfempty_options_rv = pristine ? ARCHIVE_FAILED : ARCHIVE_OK;
@@ -42,62 +152,62 @@ test(int pristine)
 
        /* NULL and "" denote `no option', so they're ok no matter
         * what, if any, formats are registered */
-       should(a, ARCHIVE_OK, NULL);
-       should(a, ARCHIVE_OK, "");
+       should_write_set_options(a, ARCHIVE_OK, NULL);
+       should_write_set_options(a, ARCHIVE_OK, "");
 
        /* unknown modules and options */
-       should(a, ARCHIVE_FAILED, "fubar:snafu");
+       should_write_set_options(a, ARCHIVE_FAILED, "fubar:snafu");
        assertEqualString("Unknown module name: `fubar'",
            archive_error_string(a));
-       should(a, ARCHIVE_FAILED, "fubar:snafu=betcha");
+       should_write_set_options(a, ARCHIVE_FAILED, "fubar:snafu=betcha");
        assertEqualString("Unknown module name: `fubar'",
            archive_error_string(a));
 
        /* unknown modules and options */
-       should(a, ARCHIVE_FAILED, "snafu");
+       should_write_set_options(a, ARCHIVE_FAILED, "snafu");
        assertEqualString("Undefined option: `snafu'",
            archive_error_string(a));
-       should(a, ARCHIVE_FAILED, "snafu=betcha");
+       should_write_set_options(a, ARCHIVE_FAILED, "snafu=betcha");
        assertEqualString("Undefined option: `snafu'",
            archive_error_string(a));
 
        /* ARCHIVE_OK with iso9660 loaded, ARCHIVE_FAILED otherwise */
-       should(a, known_option_rv, "iso9660:joliet");
+       should_write_set_options(a, known_option_rv, "iso9660:joliet");
        if (pristine) {
                assertEqualString("Unknown module name: `iso9660'",
                    archive_error_string(a));
        }
-       should(a, known_option_rv, "iso9660:joliet");
+       should_write_set_options(a, known_option_rv, "iso9660:joliet");
        if (pristine) {
                assertEqualString("Unknown module name: `iso9660'",
                    archive_error_string(a));
        }
-       should(a, known_option_rv, "joliet");
+       should_write_set_options(a, known_option_rv, "joliet");
        if (pristine) {
                assertEqualString("Undefined option: `joliet'",
                    archive_error_string(a));
        }
-       should(a, known_option_rv, "!joliet");
+       should_write_set_options(a, known_option_rv, "!joliet");
        if (pristine) {
                assertEqualString("Undefined option: `joliet'",
                    archive_error_string(a));
        }
 
-       should(a, ARCHIVE_OK, ",");
-       should(a, ARCHIVE_OK, ",,");
+       should_write_set_options(a, ARCHIVE_OK, ",");
+       should_write_set_options(a, ARCHIVE_OK, ",,");
 
-       should(a, halfempty_options_rv, ",joliet");
+       should_write_set_options(a, halfempty_options_rv, ",joliet");
        if (pristine) {
                assertEqualString("Undefined option: `joliet'",
                    archive_error_string(a));
        }
-       should(a, halfempty_options_rv, "joliet,");
+       should_write_set_options(a, halfempty_options_rv, "joliet,");
        if (pristine) {
                assertEqualString("Undefined option: `joliet'",
                    archive_error_string(a));
        }
 
-       should(a, ARCHIVE_FAILED, "joliet,snafu");
+       should_write_set_options(a, ARCHIVE_FAILED, "joliet,snafu");
        if (pristine) {
                assertEqualString("Undefined option: `joliet'",
                    archive_error_string(a));
@@ -106,7 +216,7 @@ test(int pristine)
                    archive_error_string(a));
        }
 
-       should(a, ARCHIVE_FAILED, "iso9660:snafu");
+       should_write_set_options(a, ARCHIVE_FAILED, "iso9660:snafu");
        if (pristine) {
                assertEqualString("Unknown module name: `iso9660'",
                    archive_error_string(a));
@@ -120,6 +230,6 @@ test(int pristine)
 
 DEFINE_TEST(test_archive_write_set_options)
 {
-       test(1);
-       test(0);
+       write_set_options_test(1);
+       write_set_options_test(0);
 }