test-fs-posix.c revision 78717e55d8c4b6528d1afe70505a19e4fcc0a56f
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody/* Copyright (c) 2016-2017 Dovecot authors, see the included COPYING file */
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmodystatic void test_fs_posix(void)
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody if (unlink_directory(testdir, UNLINK_DIRECTORY_FLAG_RMDIR, &unlink_err) < 0 &&
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody i_error("Couldn't prepare test directory (%s): %s", testdir, unlink_err);
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody if (safe_mkdir(testdir, 0700, (uid_t)-1, (gid_t)-1) != 1) {
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody /* Something just raced us to create this directory, bail. */
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody ret = fs_init("posix", t_strdup_printf("prefix=%s/", testdir), &fs_set, &fs, &error);
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody test_assert_strcmp(fs_get_driver(fs), "posix");
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody file = fs_file_init(fs, "fail_1", FS_OPEN_MODE_READONLY);
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody file = fs_file_init(fs, "good1", FS_OPEN_MODE_REPLACE);
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody test_assert(fs_exists(file) == 0); /* file not created until data is written */
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody file = fs_file_init(fs, "good1", FS_OPEN_MODE_READONLY);
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody struct fs_iter *iter = fs_iter_init(fs, "/", 0);
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody test_begin("test-fs-posix file stat and delete");
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody file = fs_file_init(fs, "good1", FS_OPEN_MODE_READONLY);
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody if (unlink_directory(testdir, UNLINK_DIRECTORY_FLAG_RMDIR, &unlink_err) != 0)
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody i_error("Couldn't clean up test directory (%s): %s", testdir, unlink_err);
78717e55d8c4b6528d1afe70505a19e4fcc0a56fPhil Carmody static void (*const test_functions[])(void) = {