diff options
| author | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2023-02-28 21:33:46 +0100 |
|---|---|---|
| committer | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2023-03-12 17:21:17 +0100 |
| commit | 18bd15a9eac88adb1de1f877b112e255b19353b6 (patch) | |
| tree | f85cd9bd37e8cdebc23511e813df16b727d5e8fd /tests/auto/sql/kernel/qsqldatabase/tst_databases.h | |
| parent | f19320748d282b1e68fc2e3de2b0cf9ec44b49ef (diff) | |
SQL/Tests: remove safeDropTable() / add helper class
Add a helper class which makes sure that the used table does not exist
before usage (e.g. due to leftovers from previous tests) and is properly
cleaned up on exit. This also allows to remove all usages of
safeDropTable().
Change-Id: Iefeffbd10e2f2f67985183ea822d7b6dd2b80be7
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'tests/auto/sql/kernel/qsqldatabase/tst_databases.h')
| -rw-r--r-- | tests/auto/sql/kernel/qsqldatabase/tst_databases.h | 40 |
1 files changed, 29 insertions, 11 deletions
diff --git a/tests/auto/sql/kernel/qsqldatabase/tst_databases.h b/tests/auto/sql/kernel/qsqldatabase/tst_databases.h index 57605d6a127..0694186942c 100644 --- a/tests/auto/sql/kernel/qsqldatabase/tst_databases.h +++ b/tests/auto/sql/kernel/qsqldatabase/tst_databases.h @@ -72,12 +72,7 @@ inline static QString qTableName(const QString &prefix, const char *sourceFileNa class tst_Databases { - public: - tst_Databases(): counter( 0 ) - { - } - ~tst_Databases() { close(); @@ -322,11 +317,6 @@ public: } } - static void safeDropTable(QSqlDatabase db, const QString &tableName) - { - safeDropTables(db, {tableName}); - } - static void safeDropViews(QSqlDatabase db, const QStringList &viewNames) { if (isMSAccess(db)) // Access is sooo stupid. @@ -481,7 +471,7 @@ public: } QStringList dbNames; - int counter; + int counter = 0; private: QTemporaryDir *dbDir() @@ -499,5 +489,33 @@ private: QScopedPointer<QTemporaryDir> m_dbDir; }; +class TableScope +{ +public: + TableScope(const QSqlDatabase &db, const QString &fullTableName) + : m_db(db) + , m_tableName(fullTableName) + { + tst_Databases::safeDropTables(m_db, {m_tableName}); + } + TableScope(const QSqlDatabase &db, const char *tableName, const char *file, bool escape = true) + : TableScope(db, qTableName(tableName, file, db, escape)) + { + } + + ~TableScope() + { + tst_Databases::safeDropTables(m_db, {m_tableName}); + } + + QString tableName() const + { + return m_tableName; + } +private: + QSqlDatabase m_db; + QString m_tableName; +}; + #endif |
