From 6b453d0f0f50dccd0333d0d6e8cd0246e86d24a9 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 13 Jun 2021 01:09:01 +0100 Subject: Create and drop MySQL mock DBs as needed --- test/testdb-mysql.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'test/testdb-mysql.cpp') diff --git a/test/testdb-mysql.cpp b/test/testdb-mysql.cpp index 20ba677..4b6c62e 100644 --- a/test/testdb-mysql.cpp +++ b/test/testdb-mysql.cpp @@ -1,4 +1,5 @@ #include "testdb-mysql.h" +#include #include #include #include @@ -9,18 +10,25 @@ namespace MyGrate { const auto USER {MyGrate::getenv("MYGRATE_MYSQL_USER", ::getenv("LOGNAME"))}; const auto PASSWORD {::getenv("MYGRATE_MYSQL_PASSWORD")}; const auto PORT {(unsigned short)std::atoi(MyGrate::getenv("MYGRATE_MYSQL_PORT", "3306"))}; + std::size_t MySQLDB::mocknum; - MySQLDB::MySQLDB() : MySQLConn(SERVER, USER, PASSWORD, PORT) + MySQLDB::MySQLDB() : + MySQLConn(SERVER, USER, PASSWORD, PORT), mockname {scprintf<"mygrate_test_%?_%?">(getpid(), mocknum++)} { - query("DROP DATABASE IF EXISTS mygrate_test"); - query("CREATE DATABASE mygrate_test"); - query("USE mygrate_test"); + query(("DROP DATABASE IF EXISTS " + mockname).c_str()); + query(("CREATE DATABASE " + mockname).c_str()); } MySQLDB::~MySQLDB() { - query("USE mysql"); - query("DROP DATABASE IF EXISTS mygrate_test"); + query(("DROP DATABASE IF EXISTS " + mockname).c_str()); + mockname.clear(); + } + + Input::MySQLConn + MySQLDB::mock() const + { + return {SERVER, USER, PASSWORD, PORT, mockname.c_str()}; } } } -- cgit v1.2.3