From b9343a7da4b02f48ed298c5d352f4fbcda585822 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Fri, 28 Sep 2018 20:12:11 +0200 Subject: [PATCH] Fix temporary path crash in TestAuthDatabase (#7753) The constructor of TestAuthDatabase was called immediately, at a time when the settings weren't initialized properly yet. --- src/unittest/test_authdatabase.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/unittest/test_authdatabase.cpp b/src/unittest/test_authdatabase.cpp index 1e8fd233d..1e1744d40 100644 --- a/src/unittest/test_authdatabase.cpp +++ b/src/unittest/test_authdatabase.cpp @@ -90,12 +90,7 @@ private: class TestAuthDatabase : public TestBase { public: - TestAuthDatabase() - { - TestManager::registerTestModule(this); - // fixed directory, for persistence - test_dir = getTestTempDirectory(); - } + TestAuthDatabase() { TestManager::registerTestModule(this); } const char *getName() { return "TestAuthDatabase"; } void runTests(IGameDef *gamedef); @@ -112,7 +107,6 @@ public: void testDelete(); private: - std::string test_dir; AuthDatabaseProvider *auth_provider; }; @@ -120,6 +114,9 @@ static TestAuthDatabase g_test_instance; void TestAuthDatabase::runTests(IGameDef *gamedef) { + // fixed directory, for persistence + thread_local const std::string test_dir = getTestTempDirectory(); + // Each set of tests is run twice for each database type: // one where we reuse the same AuthDatabase object (to test local caching), // and one where we create a new AuthDatabase object for each call