const char *error;
};
-static struct sql_db *driver_test_mysql_init(const char *connect_string);
-static struct sql_db *driver_test_cassandra_init(const char *connect_string);
-static struct sql_db *driver_test_sqlite_init(const char *connect_string);
+static int driver_test_mysql_init(struct event *event, struct sql_db **db_r,
+ const char **error_r);
+static int driver_test_cassandra_init(struct event *event, struct sql_db **db_r,
+ const char **error_r);
+static int driver_test_sqlite_init(struct event *event, struct sql_db **db_r,
+ const char **error_r);
static void driver_test_deinit(struct sql_db *_db);
static int driver_test_connect(struct sql_db *_db);
static void driver_test_disconnect(struct sql_db *_db);
.flags = SQL_DB_FLAG_BLOCKING | SQL_DB_FLAG_ON_DUPLICATE_KEY,
.v = {
- .init_legacy = driver_test_mysql_init,
+ .init = driver_test_mysql_init,
.deinit = driver_test_deinit,
.connect = driver_test_connect,
.disconnect = driver_test_disconnect,
.name = "cassandra",
.v = {
- .init_legacy = driver_test_cassandra_init,
+ .init = driver_test_cassandra_init,
.deinit = driver_test_deinit,
.connect = driver_test_connect,
.disconnect = driver_test_disconnect,
.flags = SQL_DB_FLAG_ON_CONFLICT_DO | SQL_DB_FLAG_BLOCKING,
.v = {
- .init_legacy = driver_test_sqlite_init,
+ .init = driver_test_sqlite_init,
.deinit = driver_test_deinit,
.connect = driver_test_connect,
.disconnect = driver_test_disconnect,
sql_driver_unregister(&driver_test_sqlite_db);
}
-static struct sql_db *driver_test_init(const struct sql_db *driver,
- const char *connect_string ATTR_UNUSED)
+static int driver_test_init(const struct sql_db *driver,
+ struct event *event ATTR_UNUSED,
+ struct sql_db **db_r,
+ const char **error_r ATTR_UNUSED)
{
pool_t pool = pool_alloconly_create(MEMPOOL_GROWING" test sql driver", 2048);
struct test_sql_db *ret = p_new(pool, struct test_sql_db, 1);
ret->pool = pool;
ret->api = *driver;
p_array_init(&ret->expected, pool, 8);
- return &ret->api;
+ sql_init_common(&ret->api);
+ *db_r = &ret->api;
+ return 0;
}
-static struct sql_db *driver_test_mysql_init(const char *connect_string)
+static int driver_test_mysql_init(struct event *event, struct sql_db **db_r,
+ const char **error_r)
{
- return driver_test_init(&driver_test_mysql_db, connect_string);
+ return driver_test_init(&driver_test_mysql_db, event, db_r, error_r);
}
-static struct sql_db *driver_test_cassandra_init(const char *connect_string)
+static int driver_test_cassandra_init(struct event *event, struct sql_db **db_r,
+ const char **error_r)
{
- return driver_test_init(&driver_test_cassandra_db, connect_string);
+ return driver_test_init(&driver_test_cassandra_db,
+ event, db_r, error_r);
}
-static struct sql_db *driver_test_sqlite_init(const char *connect_string)
+static int driver_test_sqlite_init(struct event *event, struct sql_db **db_r,
+ const char **error_r)
{
- return driver_test_init(&driver_test_sqlite_db, connect_string);
+ return driver_test_init(&driver_test_sqlite_db, event, db_r, error_r);
}
static void driver_test_deinit(struct sql_db *_db ATTR_UNUSED)
/* Copyright (c) 2021 Dovecot authors, see the included COPYING file */
#include "lib.h"
+#include "settings.h"
#include "sql-api-private.h"
#include "test-common.h"
#include "sql-api-private.h"
{
test_begin("test sql api");
- const struct sql_legacy_settings set = {
- .driver = "sqlite",
- .connect_string = "test-database.db journal_mode=wal",
- };
+ struct settings_simple set;
+ settings_simple_init(&set, (const char *const []) {
+ "sql_driver", "sqlite",
+ "sqlite_path", "test-database.db",
+ "sqlite_journal_mode", "wal",
+ NULL,
+ });
struct sql_db *sql = NULL;
const char *error = NULL;
sql_drivers_init_without_drivers();
driver_sqlite_init();
- test_assert(sql_init_legacy_full(&set, &sql, &error) == 0 &&
- sql != NULL &&
- error == NULL);
+ if (sql_init_auto(set.event, &sql, &error) <= 0)
+ i_fatal("%s", error);
+ test_assert(sql != NULL && error == NULL);
setup_database(sql);
/* insert data */
driver_sqlite_deinit();
sql_drivers_deinit_without_drivers();
+ settings_simple_deinit(&set);
test_end();
}
/* Copyright (c) 2021 Dovecot authors, see the included COPYING file */
#include "lib.h"
+#include "settings.h"
#include "test-common.h"
#include "sql-api-private.h"
#include "driver-test.h"
static struct sql_db *setup_sql(void)
{
- const struct sql_legacy_settings set = {
- .driver = "sqlite",
- .connect_string = "",
- };
+ struct settings_simple set;
+ settings_simple_init(&set, (const char *const []) {
+ "sql_driver", "sqlite",
+ NULL,
+ });
struct sql_db *sql = NULL;
const char *error = NULL;
sql_drivers_init_without_drivers();
sql_driver_test_register();
- test_assert(sql_init_legacy_full(&set, &sql, &error) == 0 &&
- sql != NULL &&
- error == NULL);
+ if (sql_init_auto(set.event, &sql, &error) <= 0)
+ i_fatal("%s", error);
+ test_assert(sql != NULL && error == NULL);
test_assert(sql_connect(sql) == 0);
sql_disconnect(sql);
+ settings_simple_deinit(&set);
return sql;
}