diff --git a/src/libs/sqlite/sqlitedatabase.cpp b/src/libs/sqlite/sqlitedatabase.cpp index 96e6a87b8ac..69581713666 100644 --- a/src/libs/sqlite/sqlitedatabase.cpp +++ b/src/libs/sqlite/sqlitedatabase.cpp @@ -238,22 +238,6 @@ void Database::sessionRollback() m_statements->rollbackBegin.execute(); } -void Database::lock() -{ - m_databaseMutex.lock(); -#ifdef UNIT_TESTS - m_isLocked = true; -#endif -} - -void Database::unlock() -{ -#ifdef UNIT_TESTS - m_isLocked = false; -#endif - m_databaseMutex.unlock(); -} - DatabaseBackend &Database::backend() { return m_databaseBackend; diff --git a/src/libs/sqlite/sqlitedatabase.h b/src/libs/sqlite/sqlitedatabase.h index 3804d6c7a30..b0f83defc2a 100644 --- a/src/libs/sqlite/sqlitedatabase.h +++ b/src/libs/sqlite/sqlitedatabase.h @@ -154,14 +154,28 @@ public: bool isLocked() const { -#ifdef UNIT_TESTS +#ifdef QT_DEBUG return m_isLocked; #else return true; #endif } - void lock() override; - void unlock() override; + + void lock() override + { + m_databaseMutex.lock(); +#ifdef QT_DEBUG + m_isLocked = true; +#endif + } + + void unlock() override + { +#ifdef QT_DEBUG + m_isLocked = false; +#endif + m_databaseMutex.unlock(); + } void deferredBegin() override; void immediateBegin() override; diff --git a/tests/unit/unittest/sqlitedatabase-test.cpp b/tests/unit/unittest/sqlitedatabase-test.cpp index f95c4d84737..d1e70401e38 100644 --- a/tests/unit/unittest/sqlitedatabase-test.cpp +++ b/tests/unit/unittest/sqlitedatabase-test.cpp @@ -127,11 +127,12 @@ TEST_F(SqliteDatabase, CreateDatabaseWithLockingModeNormal) TEST_F(SqliteDatabase, ExclusivelyLockedDatabaseIsLockedForSecondConnection) { + using namespace std::chrono_literals; Utils::PathString path{Utils::TemporaryDirectory::masterDirectoryPath() + "/database_exclusive_locked.db"}; Sqlite::Database database{path}; - ASSERT_THROW(Sqlite::Database database2{path}, Sqlite::StatementIsBusy); + ASSERT_THROW(Sqlite::Database database2(path, 1ms), Sqlite::StatementIsBusy); } TEST_F(SqliteDatabase, NormalLockedDatabaseCanBeReopened)