diff --git a/dDatabase/CDClientDatabase/CDClientDatabase.cpp b/dDatabase/CDClientDatabase/CDClientDatabase.cpp index c4018230b..013e345d5 100644 --- a/dDatabase/CDClientDatabase/CDClientDatabase.cpp +++ b/dDatabase/CDClientDatabase/CDClientDatabase.cpp @@ -84,6 +84,12 @@ void CDClientDatabase::Reconnect(const std::string& filename) { sqlite3_close_v2(old->handle()); } +void CDClientDatabase::Disconnect() { + g_Running.clear(); + conn->close(); + isConnected = false; +} + //! Queries the CDClient CppSQLite3Query CDClientDatabase::ExecuteQuery(const std::string& query) { return conn->execQuery(query.c_str()); diff --git a/dDatabase/CDClientDatabase/CDClientDatabase.h b/dDatabase/CDClientDatabase/CDClientDatabase.h index afe3cb0de..c73bb9b9e 100644 --- a/dDatabase/CDClientDatabase/CDClientDatabase.h +++ b/dDatabase/CDClientDatabase/CDClientDatabase.h @@ -32,6 +32,9 @@ namespace CDClientDatabase { */ void Reconnect(const std::string& filename); + //! Closes the connection (tests: each test starts without one) + void Disconnect(); + //! Queries the CDClient /*! \param query The query diff --git a/tests/dGameTests/GameDependencies.h b/tests/dGameTests/GameDependencies.h index 14b023364..6108e8fbe 100644 --- a/tests/dGameTests/GameDependencies.h +++ b/tests/dGameTests/GameDependencies.h @@ -4,6 +4,7 @@ #include "Game.h" #include "Logger.h" #include "dServer.h" +#include "CDClientDatabase.h" #include "CDClientManager.h" #include "EntityInfo.h" #include "EntityManager.h" @@ -85,6 +86,8 @@ protected: } delete Game::config; Game::config = nullptr; + // A CDClient a test opened (often an in-memory one with only the tables it needs) isn't the next test's + CDClientDatabase::Disconnect(); } EntityInfo info{};