From 7ec818e74ad1d346f40b17c338de424a0f45fa12 Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Fri, 31 Jul 2020 13:07:09 +0200 Subject: Interbase: Fix tests when running against Firebird Change-Id: Ibfcf6b557aed3b0cd2e0ece5cf122819a1acc0c1 Reviewed-by: Volker Hilsheimer --- .../tst_qsqlrelationaldelegate.cpp | 39 ++++++++++------ .../models/qsqltablemodel/tst_qsqltablemodel.cpp | 53 ++++++++++++++-------- 2 files changed, 58 insertions(+), 34 deletions(-) (limited to 'tests/auto/sql/models') diff --git a/tests/auto/sql/models/qsqlrelationaldelegate/tst_qsqlrelationaldelegate.cpp b/tests/auto/sql/models/qsqlrelationaldelegate/tst_qsqlrelationaldelegate.cpp index 9b00cda3dd..b7a85353d3 100644 --- a/tests/auto/sql/models/qsqlrelationaldelegate/tst_qsqlrelationaldelegate.cpp +++ b/tests/auto/sql/models/qsqlrelationaldelegate/tst_qsqlrelationaldelegate.cpp @@ -34,9 +34,6 @@ #include "../../kernel/qsqldatabase/tst_databases.h" -QString reltest1; -QString reltest2; - class tst_QSqlRelationalDelegate : public QObject { Q_OBJECT @@ -62,11 +59,6 @@ private: tst_QSqlRelationalDelegate::tst_QSqlRelationalDelegate() { - static QSqlDatabase static_qtest_db_1 = QSqlDatabase(); - reltest1 = qTableName("reltest1", __FILE__, static_qtest_db_1); - - static QSqlDatabase static_qtest_db_2 = QSqlDatabase(); - reltest2 = qTableName("reltest2", __FILE__, static_qtest_db_2); } void tst_QSqlRelationalDelegate::initTestCase_data() @@ -78,11 +70,23 @@ void tst_QSqlRelationalDelegate::initTestCase_data() void tst_QSqlRelationalDelegate::recreateTestTables(QSqlDatabase db) { + const auto reltest1 = qTableName("reltest1", __FILE__, db); + const auto reltest2 = qTableName("reltest2", __FILE__, db); + dropTestTables(db); QSqlQuery q(db); + const auto idField = db.driver()->escapeIdentifier(QLatin1String("id"), QSqlDriver::FieldName); + const auto nameField = db.driver()->escapeIdentifier(QLatin1String("name"), QSqlDriver::FieldName); + const auto titleKeyField = db.driver()->escapeIdentifier(QLatin1String("title_key"), + QSqlDriver::FieldName); + const auto anotherTitleField = db.driver()->escapeIdentifier(QLatin1String("another_title_key"), + QSqlDriver::FieldName); + const auto titleField = db.driver()->escapeIdentifier(QLatin1String("title"), + QSqlDriver::FieldName); QVERIFY_SQL(q, exec("create table " + reltest1 + - " (id int not null primary key, name varchar(20), title_key int, another_title_key int)")); + " (" + idField + " int not null primary key, " + nameField + " varchar(20), " + + titleKeyField + " int, " + anotherTitleField + "int)")); QVERIFY_SQL(q, exec("insert into " + reltest1 + " values(1, 'harry', 1, 2)")); QVERIFY_SQL(q, exec("insert into " + reltest1 + " values(2, 'trond', 2, 1)")); QVERIFY_SQL(q, exec("insert into " + reltest1 + " values(3, 'vohi', 1, 2)")); @@ -90,7 +94,8 @@ void tst_QSqlRelationalDelegate::recreateTestTables(QSqlDatabase db) QVERIFY_SQL(q, exec("insert into " + reltest1 + " values(5, 'nat', NULL, NULL)")); QVERIFY_SQL(q, exec("insert into " + reltest1 + " values(6, 'ale', NULL, 2)")); - QVERIFY_SQL(q, exec("create table " + reltest2 + " (id int not null primary key, title varchar(20))")); + QVERIFY_SQL(q, exec("create table " + reltest2 + " (" + idField + " int not null primary key, " + + titleKeyField + " varchar(20))")); QVERIFY_SQL(q, exec("insert into " + reltest2 + " values(1, 'herr')")); QVERIFY_SQL(q, exec("insert into " + reltest2 + " values(2, 'mister')")); } @@ -124,7 +129,7 @@ void tst_QSqlRelationalDelegate::cleanupTestCase() void tst_QSqlRelationalDelegate::dropTestTables(QSqlDatabase db) { - QStringList tableNames = { reltest1, reltest2 }; + QStringList tableNames = { qTableName("reltest1", __FILE__, db), qTableName("reltest2", __FILE__, db) }; tst_Databases::safeDropTables(db, tableNames); } @@ -142,12 +147,18 @@ void tst_QSqlRelationalDelegate::comboBoxEditor() QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto reltest1 = qTableName("reltest1", __FILE__, db); + const auto reltest2 = qTableName("reltest2", __FILE__, db); + const auto idField = db.driver()->escapeIdentifier(QLatin1String("id"), QSqlDriver::FieldName); + const auto nameField = db.driver()->escapeIdentifier(QLatin1String("name"), QSqlDriver::FieldName); + const auto titleKeyField = db.driver()->escapeIdentifier(QLatin1String("title_key"), + QSqlDriver::FieldName); QTableView tv; QSqlRelationalTableModel model(0, db); model.setEditStrategy(QSqlTableModel::OnManualSubmit); model.setTable(reltest1); - model.setRelation(2, QSqlRelation(reltest2, "id", "title")); - model.setRelation(3, QSqlRelation(reltest2, "id", "title")); + model.setRelation(2, QSqlRelation(reltest2, idField, titleKeyField)); + model.setRelation(3, QSqlRelation(reltest2, idField, titleKeyField)); tv.setModel(&model); QVERIFY_SQL(model, select()); @@ -171,7 +182,7 @@ void tst_QSqlRelationalDelegate::comboBoxEditor() QVERIFY_SQL(model, submitAll()); QSqlQuery qry(db); - QVERIFY_SQL(qry, exec("SELECT title_key FROM " + reltest1 + " WHERE id=1")); + QVERIFY_SQL(qry, exec("SELECT " + titleKeyField + " FROM " + reltest1 + " WHERE " + idField + "=1")); QVERIFY(qry.next()); QCOMPARE(qry.value(0).toString(), "2"); } diff --git a/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp b/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp index a0aa011d0c..53f1b195a9 100644 --- a/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp +++ b/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp @@ -34,10 +34,6 @@ #include #include -QString test; -QString test2; -QString test3; - // In order to catch when the warning message occurs, indicating that the database belongs to another // thread, we have to install our own message handler. To ensure that the test reporting still happens // as before, we call the originating one. @@ -164,16 +160,6 @@ private: tst_QSqlTableModel::tst_QSqlTableModel() { - static QSqlDatabase static_qtest_db_1 = QSqlDatabase(); - test = qTableName("test1", __FILE__, static_qtest_db_1); - - static QSqlDatabase static_qtest_db_2 = QSqlDatabase(); - test2 = qTableName("test2", __FILE__, static_qtest_db_2); - - static QSqlDatabase static_qtest_db_3 = QSqlDatabase(); - test3 = qTableName("test3", __FILE__, static_qtest_db_3); - - QVERIFY(dbs.open()); } tst_QSqlTableModel::~tst_QSqlTableModel() @@ -190,9 +176,9 @@ void tst_QSqlTableModel::dropTestTables() QVERIFY_SQL( q, exec("set client_min_messages='warning'")); QStringList tableNames; - tableNames << test - << test2 - << test3 + tableNames << qTableName("test1", __FILE__, db) + << qTableName("test2", __FILE__, db) + << qTableName("test3", __FILE__, db) << qTableName("test4", __FILE__, db) << qTableName("emptytable", __FILE__, db) << qTableName("bigtable", __FILE__, db) @@ -216,11 +202,11 @@ void tst_QSqlTableModel::createTestTables() QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db); QSqlQuery q(db); - QVERIFY_SQL( q, exec("create table " + test + "(id int, name varchar(20), title int)")); + QVERIFY_SQL( q, exec("create table " + qTableName("test1", __FILE__, db) + "(id int, name varchar(20), title int)")); - QVERIFY_SQL( q, exec("create table " + test2 + "(id int, title varchar(20))")); + QVERIFY_SQL( q, exec("create table " + qTableName("test2", __FILE__, db) + "(id int, title varchar(20))")); - QVERIFY_SQL( q, exec("create table " + test3 + "(id int, random varchar(20), randomtwo varchar(20))")); + QVERIFY_SQL( q, exec("create table " + qTableName("test3", __FILE__, db) + "(id int, random varchar(20), randomtwo varchar(20))")); if (dbType != QSqlDriver::MSSqlServer) QVERIFY_SQL(q, exec("create table " + qTableName("test4", __FILE__, db) + "(column1 varchar(50), column2 varchar(50), column3 varchar(50))")); @@ -244,6 +230,9 @@ void tst_QSqlTableModel::repopulateTestTables() for (int i = 0; i < dbs.dbNames.count(); ++i) { QSqlDatabase db = QSqlDatabase::database(dbs.dbNames.at(i)); QSqlQuery q(db); + const auto test = qTableName("test1", __FILE__, db); + const auto test2 = qTableName("test2", __FILE__, db); + const auto test3 = qTableName("test3", __FILE__, db); q.exec("delete from " + test); QVERIFY_SQL( q, exec("insert into " + test + " values(1, 'harry', 1)")); @@ -316,6 +305,7 @@ void tst_QSqlTableModel::select() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setTable(test); @@ -462,6 +452,7 @@ void tst_QSqlTableModel::insertColumns() QSqlTableModel::EditStrategy submitpolicy = (QSqlTableModel::EditStrategy) submitpolicy_i; QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setTable(test); @@ -534,6 +525,7 @@ void tst_QSqlTableModel::setData() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setEditStrategy(QSqlTableModel::OnManualSubmit); @@ -605,6 +597,7 @@ void tst_QSqlTableModel::setRecord() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test3 = qTableName("test3", __FILE__, db); QList policies = QList() << QSqlTableModel::OnFieldChange << QSqlTableModel::OnRowChange << QSqlTableModel::OnManualSubmit; @@ -676,6 +669,8 @@ void tst_QSqlTableModel::setRecordReimpl() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test3 = qTableName("test3", __FILE__, db); + SetRecordReimplModel model(0, db); model.setEditStrategy(QSqlTableModel::OnManualSubmit); model.setTable(test3); @@ -712,6 +707,8 @@ void tst_QSqlTableModel::recordReimpl() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test3 = qTableName("test3", __FILE__, db); + RecordReimplModel model(0, db); model.setEditStrategy(QSqlTableModel::OnManualSubmit); model.setTable(test3); @@ -739,6 +736,7 @@ void tst_QSqlTableModel::insertRow() QSqlTableModel::EditStrategy submitpolicy = (QSqlTableModel::EditStrategy) submitpolicy_i; QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setEditStrategy(submitpolicy); @@ -912,6 +910,7 @@ void tst_QSqlTableModel::insertRecord() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setEditStrategy(QSqlTableModel::OnManualSubmit); @@ -945,6 +944,7 @@ void tst_QSqlTableModel::insertMultiRecords() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setEditStrategy(QSqlTableModel::OnManualSubmit); @@ -1060,6 +1060,7 @@ void tst_QSqlTableModel::submitAll() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setTable(test); @@ -1095,6 +1096,7 @@ void tst_QSqlTableModel::removeRow() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setTable(test); @@ -1143,6 +1145,7 @@ void tst_QSqlTableModel::removeRows() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setTable(test); @@ -1216,6 +1219,7 @@ void tst_QSqlTableModel::removeInsertedRow() QSqlTableModel::EditStrategy submitpolicy = (QSqlTableModel::EditStrategy) submitpolicy_i; QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setTable(test); @@ -1279,6 +1283,7 @@ void tst_QSqlTableModel::removeInsertedRows() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setTable(test); @@ -1476,6 +1481,7 @@ void tst_QSqlTableModel::isDirty() QSqlTableModel::EditStrategy submitpolicy = (QSqlTableModel::EditStrategy) submitpolicy_i; QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setEditStrategy(submitpolicy); @@ -1760,6 +1766,7 @@ void tst_QSqlTableModel::setInvalidFilter() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); // set an invalid filter, make sure it fails QSqlTableModel model(0, db); @@ -1779,6 +1786,7 @@ void tst_QSqlTableModel::setFilter() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setTable(test); @@ -1844,6 +1852,7 @@ void tst_QSqlTableModel::insertRecordBeforeSelect() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setTable(test); @@ -1914,6 +1923,7 @@ void tst_QSqlTableModel::insertRecordsInLoop() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setTable(test); @@ -2053,6 +2063,7 @@ void tst_QSqlTableModel::removeColumnAndRow() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setTable(test); @@ -2081,6 +2092,7 @@ void tst_QSqlTableModel::insertBeforeDelete() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlQuery q(db); QVERIFY_SQL( q, exec("insert into " + test + " values(9, 'andrew', 9)")); @@ -2107,6 +2119,7 @@ void tst_QSqlTableModel::invalidFilterAndHeaderData() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const auto test = qTableName("test1", __FILE__, db); QSqlTableModel model(0, db); model.setTable(test); -- cgit v1.2.3