Select PostgreSQL-only data, rather than filtering in the test

Two QSqlRecord benchmarks that are only relevant for PostgreSQL were
being run for all backends, without producing useful results for the
others. Since the test is data-driven and the generic data-table code
can take a backend-name to decide which to include, pass a suitable
string to the generic data method instead, so that we now simply skip
these tests (and say we're doing so) rather than "passing" them.

Change-Id: I2223c16007a7095a9cadd13a9b2d46813507a35f
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
bb10
Edward Welbourne 2021-07-20 16:13:30 +02:00
parent 54e50792da
commit 415457302b
1 changed files with 17 additions and 19 deletions

View File

@ -50,9 +50,9 @@ public slots:
private slots:
void benchmarkRecord_data() { generic_data(); }
void benchmarkRecord();
void benchFieldName_data() { generic_data(); }
void benchFieldName_data() { generic_data("QPSQL"); }
void benchFieldName();
void benchFieldIndex_data() { generic_data(); }
void benchFieldIndex_data() { generic_data("QPSQL"); }
void benchFieldIndex();
private:
@ -199,14 +199,13 @@ void tst_QSqlRecord::benchFieldName()
{
QFETCH(QString, dbName);
QSqlDatabase db = QSqlDatabase::database(dbName);
if (tst_Databases::getDatabaseType(db) == QSqlDriver::PostgreSQL) {
QSqlQuery qry(db);
QVERIFY_SQL(qry, exec("SELECT GENERATE_SERIES(1,5000) AS r"));
QBENCHMARK {
while (qry.next())
qry.value("r");
QVERIFY(qry.seek(0));
}
QCOMPARE(tst_Databases::getDatabaseType(db), QSqlDriver::PostgreSQL);
QSqlQuery qry(db);
QVERIFY_SQL(qry, exec("SELECT GENERATE_SERIES(1,5000) AS r"));
QBENCHMARK {
while (qry.next())
qry.value("r");
QVERIFY(qry.seek(0));
}
}
@ -214,15 +213,14 @@ void tst_QSqlRecord::benchFieldIndex()
{
QFETCH(QString, dbName);
QSqlDatabase db = QSqlDatabase::database(dbName);
if (tst_Databases::getDatabaseType(db) == QSqlDriver::PostgreSQL) {
QSqlQuery qry(db);
QVERIFY_SQL(qry, exec("SELECT GENERATE_SERIES(1,5000) AS r"));
qry = db.exec("SELECT GENERATE_SERIES(1,5000) AS r");
QBENCHMARK {
while (qry.next())
qry.value(0);
QVERIFY(qry.seek(0));
}
QCOMPARE(tst_Databases::getDatabaseType(db), QSqlDriver::PostgreSQL);
QSqlQuery qry(db);
QVERIFY_SQL(qry, exec("SELECT GENERATE_SERIES(1,5000) AS r"));
qry = db.exec("SELECT GENERATE_SERIES(1,5000) AS r");
QBENCHMARK {
while (qry.next())
qry.value(0);
QVERIFY(qry.seek(0));
}
}