lib: maildir/store: more tests
This commit is contained in:
@ -469,6 +469,8 @@ test_maildir_link()
|
||||
g_assert_true(g_access(dstpath1.c_str(), F_OK) == 0);
|
||||
g_assert_true(g_access(dstpath2.c_str(), F_OK) == 0);
|
||||
|
||||
g_assert_false(!!maildir_clear_links("/nonexistent/bla/foo/xuux"));
|
||||
|
||||
assert_valid_result(maildir_clear_links(tmpdir.path() + "/bar"));
|
||||
g_assert_false(g_access(dstpath1.c_str(), F_OK) == 0);
|
||||
g_assert_false(g_access(dstpath2.c_str(), F_OK) == 0);
|
||||
@ -476,15 +478,15 @@ test_maildir_link()
|
||||
|
||||
|
||||
static void
|
||||
test_maildir_move(bool use_gio)
|
||||
test_maildir_move(bool assume_remote)
|
||||
{
|
||||
TempDir tmpdir;
|
||||
|
||||
assert_valid_result(maildir_mkdir(tmpdir.path() + "/foo"));
|
||||
assert_valid_result(maildir_mkdir(tmpdir.path() + "/bar"));
|
||||
|
||||
const auto srcpath1 = tmpdir.path() + "/foo/cur/msg1";
|
||||
const auto srcpath2 = tmpdir.path() + "/foo/new/msg2";
|
||||
const auto srcpath1{join_paths(tmpdir.path(), "/foo/cur/msg1")};
|
||||
const auto srcpath2{join_paths(tmpdir.path(), "/foo/new/msg2")};
|
||||
|
||||
{
|
||||
std::ofstream stream(srcpath1);
|
||||
@ -502,23 +504,22 @@ test_maildir_move(bool use_gio)
|
||||
|
||||
const auto dstpath = tmpdir.path() + "/test1";
|
||||
|
||||
assert_valid_result(maildir_move_message(srcpath1, dstpath, use_gio));
|
||||
assert_valid_result(maildir_move_message(srcpath2, dstpath, use_gio));
|
||||
assert_valid_result(maildir_move_message(srcpath1, dstpath, assume_remote));
|
||||
assert_valid_result(maildir_move_message(srcpath2, dstpath, assume_remote));
|
||||
|
||||
|
||||
//g_assert_true(g_access(dstpath.c_str(), F_OK) == 0);
|
||||
assert_valid_result(maildir_move_message(dstpath, dstpath)); // self-move is okay.
|
||||
}
|
||||
|
||||
static void
|
||||
test_maildir_move_vanilla()
|
||||
{
|
||||
test_maildir_move(false/*!gio*/);
|
||||
test_maildir_move(false/*!assume_remote*/);
|
||||
}
|
||||
|
||||
static void
|
||||
test_maildir_move_gio()
|
||||
{
|
||||
test_maildir_move(true/*gio*/);
|
||||
test_maildir_move(true/*assume_remote*/);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -524,7 +524,32 @@ test_store_maildirs()
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
test_store_parse()
|
||||
{
|
||||
allow_warnings();
|
||||
|
||||
TempDir tdir;
|
||||
auto store = Store::make_new(tdir.path(), MU_TESTMAILDIR2);
|
||||
assert_valid_result(store);
|
||||
g_assert_true(store->empty());
|
||||
|
||||
// Xapian internal format (get_description()) is _not_ guaranteed
|
||||
// to be the same between versions
|
||||
const auto&& pq1{store->parse_query("subject:\"hello world\"", false)};
|
||||
const auto&& pq2{store->parse_query("subject:\"hello world\"", true)};
|
||||
|
||||
assert_equal(pq1, "(or (subject \"hello world\") (subject (phrase \"hello world\")))");
|
||||
|
||||
/* LCOV_EXCL_START*/
|
||||
if (pq2 != "Query((Shello world OR (Shello PHRASE 2 Sworld)))") {
|
||||
g_test_skip("incompatible xapian descriptions");
|
||||
return;
|
||||
}
|
||||
/* LCOV_EXCL_STOP*/
|
||||
|
||||
assert_equal(pq2, "Query((Shello world OR (Shello PHRASE 2 Sworld)))");
|
||||
}
|
||||
|
||||
static void
|
||||
test_store_fail()
|
||||
@ -557,6 +582,7 @@ main(int argc, char* argv[])
|
||||
g_test_add_func("/store/move-dups", test_store_move_dups);
|
||||
|
||||
g_test_add_func("/store/maildirs", test_store_maildirs);
|
||||
g_test_add_func("/store/parse", test_store_parse);
|
||||
|
||||
g_test_add_func("/store/index/index-move", test_index_move);
|
||||
g_test_add_func("/store/index/circular-symlink", test_store_circular_symlink);
|
||||
|
||||
Reference in New Issue
Block a user