annotate src/lib/test-file-create-locked.c @ 23007:36e01285b5b8

lib: buffer - Improve header comment for buffer_insert() and buffer_delete().
author Stephan Bosch <stephan.bosch@dovecot.fi>
date Mon, 18 Mar 2019 00:52:37 +0100
parents cb108f786fb4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22713
cb108f786fb4 Updated copyright notices to include the year 2018.
Stephan Bosch <stephan.bosch@dovecot.fi>
parents: 22282
diff changeset
1 /* Copyright (c) 2017-2018 Dovecot authors, see the included COPYING file */
22271
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
2
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
3 #include "test-lib.h"
22272
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
4 #include "unlink-directory.h"
22271
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
5 #include "file-create-locked.h"
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
6
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
7 #include <fcntl.h>
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
8 #include <signal.h>
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
9 #include <sys/stat.h>
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
10
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
11 static void create_file(const char *path)
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
12 {
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
13 int fd;
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
14
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
15 fd = creat(path, 0600);
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
16 if (fd == -1)
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
17 i_fatal("creat(%s) failed: %m", path);
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
18 i_close_fd(&fd);
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
19 }
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
20
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
21 static bool wait_for_file(pid_t pid, const char *path)
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
22 {
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
23 struct stat st;
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
24
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
25 for (unsigned int i = 0; i < 1000; i++) {
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
26 if (stat(path, &st) == 0)
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
27 return TRUE;
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
28 if (errno != ENOENT)
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
29 i_fatal("stat(%s) failed: %m", path);
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
30 if (kill(pid, 0) < 0) {
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
31 if (errno == ESRCH)
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
32 return FALSE;
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
33 i_fatal("kill(SIGSRCH) failed: %m");
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
34 }
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
35 usleep(10000);
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
36 }
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
37 i_error("%s isn't being created", path);
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
38 return FALSE;
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
39 }
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
40
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
41 static void test_file_create_locked_basic(void)
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
42 {
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
43 struct file_create_settings set = {
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
44 .lock_timeout_secs = 0,
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
45 .lock_method = FILE_LOCK_METHOD_FCNTL,
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
46 };
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
47 const char *path = ".test-file-create-locked";
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
48 struct file_lock *lock;
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
49 const char *error;
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
50 bool created;
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
51 pid_t pid;
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
52 int fd;
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
53
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
54 test_begin("file_create_locked()");
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
55
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
56 i_unlink_if_exists(path);
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
57 i_unlink_if_exists(".test-temp-file-create-locked-child");
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
58 pid = fork();
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
59 switch (pid) {
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
60 case (pid_t)-1:
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
61 i_error("fork() failed: %m");
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
62 break;
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
63 case 0:
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
64 /* child */
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
65 fd = file_create_locked(path, &set, &lock, &created, &error);
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
66 test_assert(fd > 0);
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
67 test_assert(created);
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
68 if (test_has_failed())
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
69 exit(1);
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
70 create_file(".test-temp-file-create-locked-child");
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
71 sleep(60);
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
72 i_close_fd(&fd);
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
73 exit(0);
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
74 default:
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
75 /* parent */
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
76 test_assert(wait_for_file(pid, ".test-temp-file-create-locked-child"));
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
77 if (test_has_failed())
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
78 break;
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
79 test_assert(file_create_locked(path, &set, &lock, &created, &error) == -1);
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
80 test_assert(errno == EAGAIN);
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
81 if (kill(pid, SIGKILL) < 0)
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
82 i_error("kill(SIGKILL) failed: %m");
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
83 break;
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
84 }
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
85 i_unlink_if_exists(".test-temp-file-create-locked-child");
22282
6ea40be7e586 lib: Fix file_create_locked() unit test to delete temp file afterwards
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22272
diff changeset
86 i_unlink_if_exists(path);
22271
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
87 test_end();
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
88 }
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
89
22272
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
90 static void test_file_create_locked_mkdir(void)
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
91 {
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
92 struct file_create_settings set = {
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
93 .lock_timeout_secs = 0,
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
94 .lock_method = FILE_LOCK_METHOD_FCNTL,
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
95 };
22282
6ea40be7e586 lib: Fix file_create_locked() unit test to delete temp file afterwards
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22272
diff changeset
96 const char *path;
22272
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
97 struct file_lock *lock;
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
98 const char *error, *dir;
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
99 bool created;
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
100 int fd;
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
101
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
102 test_begin("file_create_locked() with mkdir");
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
103
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
104 dir = ".test-temp-file-create-locked-dir";
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
105 if (unlink_directory(dir, UNLINK_DIRECTORY_FLAG_RMDIR) < 0)
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
106 i_fatal("unlink_directory(%s) failed: %m", dir);
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
107 path = t_strconcat(dir, "/lockfile", NULL);
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
108
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
109 /* try without mkdir enabled */
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
110 test_assert(file_create_locked(path, &set, &lock, &created, &error) == -1);
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
111 test_assert(errno == ENOENT);
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
112
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
113 /* try with mkdir enabled */
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
114 set.mkdir_mode = 0700;
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
115 fd = file_create_locked(path, &set, &lock, &created, &error);
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
116 test_assert(fd > 0);
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
117 test_assert(created);
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
118 i_close_fd(&fd);
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
119
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
120 struct stat st;
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
121 if (stat(dir, &st) < 0)
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
122 i_error("stat(%s) failed: %m", dir);
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
123 test_assert((st.st_mode & 0777) == 0700);
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
124 i_unlink(path);
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
125 file_lock_free(&lock);
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
126
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
127 if (unlink_directory(dir, UNLINK_DIRECTORY_FLAG_RMDIR) < 0)
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
128 i_fatal("unlink_directory(%s) failed: %m", dir);
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
129
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
130 test_end();
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
131 }
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
132
22271
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
133 void test_file_create_locked(void)
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
134 {
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
135 test_file_create_locked_basic();
22272
651fa80715a3 lib: file_create_locked() - Add settings to mkdir() missing parent directories
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 22271
diff changeset
136 test_file_create_locked_mkdir();
22271
5c7987bec546 lib: Add unit test for file_create_locked()
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
diff changeset
137 }