test: each game test starts without the CDClient the one before it opened

Tests that open an in-memory CDClient with only their tables left it connected, so later tests that make their own tables when none is connected failed (DestroyableTest, MovementBlockerScenarioTest, QuickBuildCompleteTests in a full run).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-10-01 03:23:25 -05:00
parent e42d44c804
commit 951f9368ae
3 changed files with 12 additions and 0 deletions

View File

@@ -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());

View File

@@ -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

View File

@@ -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{};