From: Timo Sirainen Date: Mon, 27 Jan 2020 10:11:13 +0000 (+0200) Subject: lib-index: Add test-mail-index.h for easily doing init/deinit for mail_index X-Git-Tag: 2.3.10~116 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4bfb2a28987f5b2e431cbe1ae1e971f4584a2c05;p=thirdparty%2Fdovecot%2Fcore.git lib-index: Add test-mail-index.h for easily doing init/deinit for mail_index --- diff --git a/src/lib-index/Makefile.am b/src/lib-index/Makefile.am index 4c77c00ecc..e7856e602b 100644 --- a/src/lib-index/Makefile.am +++ b/src/lib-index/Makefile.am @@ -118,3 +118,5 @@ check-local: pkginc_libdir=$(pkgincludedir) pkginc_lib_HEADERS = $(headers) + +noinst_HEADERS = test-mail-index.h diff --git a/src/lib-index/test-mail-index-modseq.c b/src/lib-index/test-mail-index-modseq.c index b5180e990b..b40d3c4fd3 100644 --- a/src/lib-index/test-mail-index-modseq.c +++ b/src/lib-index/test-mail-index-modseq.c @@ -1,15 +1,11 @@ /* Copyright (c) 2016-2018 Dovecot authors, see the included COPYING file */ #include "lib.h" -#include "ioloop.h" -#include "unlink-directory.h" #include "test-common.h" -#include "mail-index-private.h" +#include "test-mail-index.h" #include "mail-index-modseq.h" #include "mail-transaction-log-private.h" -#define TESTDIR_NAME ".dovecot.test" - static void test_mail_index_modseq_get_next_log_offset(void) { static const struct { @@ -29,17 +25,9 @@ static void test_mail_index_modseq_get_next_log_offset(void) struct mail_index_view *view, *view2; struct mail_index_transaction *trans; uint32_t seq, uid; - const char *error; - - (void)unlink_directory(TESTDIR_NAME, UNLINK_DIRECTORY_FLAG_RMDIR, &error); - if (mkdir(TESTDIR_NAME, 0700) < 0) - i_error("mkdir(%s) failed: %m", TESTDIR_NAME); - - ioloop_time = 1; test_begin("mail_transaction_log_file_get_modseq_next_offset()"); - index = mail_index_alloc(NULL, TESTDIR_NAME, "test.dovecot.index"); - test_assert(mail_index_open_or_create(index, MAIL_INDEX_OPEN_FLAG_CREATE) == 0); + index = test_mail_index_init(); view = mail_index_view_open(index); mail_index_modseq_enable(index); @@ -75,10 +63,7 @@ static void test_mail_index_modseq_get_next_log_offset(void) mail_index_view_close(&view); mail_index_view_close(&view2); - mail_index_close(index); - mail_index_free(&index); - - (void)unlink_directory(TESTDIR_NAME, UNLINK_DIRECTORY_FLAG_RMDIR, &error); + test_mail_index_deinit(&index); test_end(); } diff --git a/src/lib-index/test-mail-index.h b/src/lib-index/test-mail-index.h new file mode 100644 index 0000000000..d860a83232 --- /dev/null +++ b/src/lib-index/test-mail-index.h @@ -0,0 +1,41 @@ +#ifndef TEST_MAIL_INDEX_H +#define TEST_MAIL_INDEX_H + +#include "ioloop.h" +#include "unlink-directory.h" +#include "mail-index-private.h" + +#define TESTDIR_NAME ".dovecot.test" + +static inline struct mail_index *test_mail_index_open(void) +{ + struct mail_index *index; + + index = mail_index_alloc(NULL, TESTDIR_NAME, "test.dovecot.index"); + test_assert(mail_index_open_or_create(index, MAIL_INDEX_OPEN_FLAG_CREATE) == 0); + return index; +} + +static inline struct mail_index *test_mail_index_init(void) +{ + const char *error; + + (void)unlink_directory(TESTDIR_NAME, UNLINK_DIRECTORY_FLAG_RMDIR, &error); + if (mkdir(TESTDIR_NAME, 0700) < 0) + i_error("mkdir(%s) failed: %m", TESTDIR_NAME); + + ioloop_time = 1; + + return test_mail_index_open(); +} + +static inline void test_mail_index_deinit(struct mail_index **index) +{ + const char *error; + + mail_index_close(*index); + mail_index_free(index); + (void)unlink_directory(TESTDIR_NAME, UNLINK_DIRECTORY_FLAG_RMDIR, &error); +} + +#endif