]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-fs: Change unit tests to use fs_init_auto()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 10 Aug 2023 22:15:04 +0000 (01:15 +0300)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:10 +0000 (12:34 +0200)
src/lib-fs/fs-test-async.c
src/lib-fs/fs-test.h
src/lib-fs/test-fs-metawrap.c
src/lib-fs/test-fs-posix.c

index b579bebdbcc1bd13781ac96658d2456da04d8395..71032520d76787625f65e378e83822c3d5130b25 100644 (file)
@@ -82,7 +82,7 @@ static void test_fs_async_copy(const char *test_name, struct fs *fs)
 }
 
 void test_fs_async(const char *test_name, enum fs_properties properties,
-                  const char *driver, const char *args)
+                  struct event *event)
 {
        struct fs_parameters fs_params;
        struct fs *fs;
@@ -90,7 +90,7 @@ void test_fs_async(const char *test_name, enum fs_properties properties,
        const char *error;
 
        i_zero(&fs_params);
-       if (fs_legacy_init(driver, args, NULL, &fs_params, &fs, &error) < 0)
+       if (fs_init_auto(event, &fs_params, &fs, &error) <= 0)
                i_fatal("fs_init() failed: %s", error);
 
        test_fs = test_fs_get(fs);
index 5a2ed1434a679dcc5a1bbdd98cfa3b4a97f0fd7b..05889fb9319d86026323f1856142f074ac7c4eea 100644 (file)
@@ -40,6 +40,6 @@ struct test_fs *test_fs_get(struct fs *fs);
 struct test_fs_file *test_fs_file_get(struct fs *fs, const char *path);
 
 void test_fs_async(const char *test_name, enum fs_properties properties,
-                  const char *driver, const char *args);
+                  struct event *event);
 
 #endif
index ed64667fcaa64ece9b1780ededc921316608e161..6f16c68b9ed91fcc5f7e96b3aae9aaa9cfaec173 100644 (file)
@@ -4,10 +4,18 @@
 #include "str.h"
 #include "istream.h"
 #include "ostream.h"
+#include "settings.h"
 #include "fs-test.h"
 #include "test-common.h"
 
 static const struct fs_parameters fs_params;
+static struct settings_simple test_set;
+
+static const char *const set_metawrap_test[] = {
+       "fs_parent/fs_driver", "test",
+       "fs_driver", "metawrap",
+       NULL
+};
 
 static void test_fs_metawrap_stat(void)
 {
@@ -20,8 +28,8 @@ static void test_fs_metawrap_stat(void)
        unsigned int i;
 
        test_begin("fs metawrap stat");
-
-       if (fs_legacy_init("metawrap", "test", NULL, &fs_params, &fs, &error) < 0)
+       settings_simple_update(&test_set, set_metawrap_test);
+       if (fs_init_auto(test_set.event, &fs_params, &fs, &error) <= 0)
                i_fatal("fs_init() failed: %s", error);
 
        for (i = 0; i < 2; i++) {
@@ -48,9 +56,18 @@ static void test_fs_metawrap_stat(void)
 
 static void test_fs_metawrap_async(void)
 {
-       test_fs_async("metawrap", FS_PROPERTY_METADATA, "metawrap", "test");
-       test_fs_async("metawrap passthrough", 0, "metawrap", "test");
-       test_fs_async("double-metawrap", FS_PROPERTY_METADATA, "metawrap", "metawrap:test");
+       static const char *const set_metawrap_metawrap_test[] = {
+               "fs_parent/fs_parent/fs_driver", "test",
+               "fs_parent/fs_driver", "metawrap",
+               "fs_driver", "metawrap",
+               NULL
+       };
+
+       settings_simple_update(&test_set, set_metawrap_test);
+       test_fs_async("metawrap", FS_PROPERTY_METADATA, test_set.event);
+       test_fs_async("metawrap passthrough", 0, test_set.event);
+       settings_simple_update(&test_set, set_metawrap_metawrap_test);
+       test_fs_async("double-metawrap", FS_PROPERTY_METADATA, test_set.event);
 }
 
 static void test_fs_metawrap_write_empty(void)
@@ -60,7 +77,8 @@ static void test_fs_metawrap_write_empty(void)
        const char *error;
 
        test_begin("fs metawrap write empty file");
-       if (fs_legacy_init("metawrap", "test", NULL, &fs_params, &fs, &error) < 0)
+       settings_simple_update(&test_set, set_metawrap_test);
+       if (fs_init_auto(test_set.event, &fs_params, &fs, &error) <= 0)
                i_fatal("fs_init() failed: %s", error);
        struct fs_file *file = fs_file_init(fs, "foo", FS_OPEN_MODE_REPLACE);
        struct ostream *output = fs_write_stream(file);
@@ -77,7 +95,8 @@ static void test_fs_metawrap_write_fname_rename(void)
        const char *error;
 
        test_begin("fs metawrap write fname rename");
-       if (fs_legacy_init("metawrap", "test", NULL, &fs_params, &fs, &error) < 0)
+       settings_simple_update(&test_set, set_metawrap_test);
+       if (fs_init_auto(test_set.event, &fs_params, &fs, &error) <= 0)
                i_fatal("fs_init() failed: %s", error);
        struct fs_file *file = fs_file_init(fs, "foo", FS_OPEN_MODE_REPLACE);
        struct ostream *output = fs_write_stream(file);
@@ -99,5 +118,11 @@ int main(void)
                test_fs_metawrap_write_fname_rename,
                NULL
        };
-       return test_run(test_functions);
+
+       lib_init();
+       settings_simple_init(&test_set, NULL);
+       int ret = test_run(test_functions);
+       settings_simple_deinit(&test_set);
+       lib_deinit();
+       return ret;
 }
index 6b0fe237f8e407ed1f53e90ed082945a439ff1b8..511522de2c2e132f11377008bdf6a1355ea68bc0 100644 (file)
@@ -8,6 +8,7 @@
 #include "safe-mkstemp.h"
 #include "test-common.h"
 #include "unlink-directory.h"
+#include "settings.h"
 #include <sys/stat.h>
 #include <unistd.h>
 
@@ -32,10 +33,18 @@ static void test_fs_posix(void)
 
        test_begin("test-fs-posix filesystem");
        i_zero(&fs_params);
-       ret = fs_legacy_init("posix", t_strdup_printf("prefix=%s/", testdir), NULL,
-                            &fs_params, &fs, &error);
-       test_out_quiet("fs_init() failed", ret >= 0);
-       if (ret < 0) {
+
+       const char *const settings[] = {
+               "fs_driver", "posix",
+               "fs_posix_prefix", t_strconcat(testdir, "/", NULL),
+               NULL
+       };
+       struct settings_simple test_set;
+       settings_simple_init(&test_set, settings);
+       ret = fs_init_auto(test_set.event, &fs_params, &fs, &error);
+       test_out_quiet("fs_init() failed", ret > 0);
+       if (ret <= 0) {
+               settings_simple_deinit(&test_set);
                test_end();
                goto error_no_fs;
        }
@@ -127,6 +136,7 @@ static void test_fs_posix(void)
        test_end();
 
        fs_deinit(&fs);
+       settings_simple_deinit(&test_set);
 
 error_no_fs:
        if (unlink_directory(testdir, UNLINK_DIRECTORY_FLAG_RMDIR, &unlink_err) < 0)