SQL tests: remove unused tests
They were leftovers from QTDS driver removed with Qt6 Change-Id: I34863912bd41e0b4ca54bf443001f1cb3f20511a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
parent
34a0f2251a
commit
37032b1590
@ -50,8 +50,6 @@ private slots:
|
|||||||
void eventNotification_data() { generic_data(); }
|
void eventNotification_data() { generic_data(); }
|
||||||
void eventNotification();
|
void eventNotification();
|
||||||
void addDatabase();
|
void addDatabase();
|
||||||
void errorReporting_data();
|
|
||||||
void errorReporting();
|
|
||||||
void cloneDatabase_data() { generic_data(); }
|
void cloneDatabase_data() { generic_data(); }
|
||||||
void cloneDatabase();
|
void cloneDatabase();
|
||||||
|
|
||||||
@ -62,8 +60,6 @@ private slots:
|
|||||||
void recordPSQL();
|
void recordPSQL();
|
||||||
void recordOCI_data() { generic_data("QOCI"); }
|
void recordOCI_data() { generic_data("QOCI"); }
|
||||||
void recordOCI();
|
void recordOCI();
|
||||||
void recordTDS_data() { generic_data("QTDS"); }
|
|
||||||
void recordTDS();
|
|
||||||
void recordDB2_data() { generic_data("QDB2"); }
|
void recordDB2_data() { generic_data("QDB2"); }
|
||||||
void recordDB2();
|
void recordDB2();
|
||||||
void recordSQLite_data() { generic_data("QSQLITE"); }
|
void recordSQLite_data() { generic_data("QSQLITE"); }
|
||||||
@ -433,36 +429,6 @@ void tst_QSqlDatabase::addDatabase()
|
|||||||
QVERIFY(!QSqlDatabase::contains("INVALID_CONNECTION"));
|
QVERIFY(!QSqlDatabase::contains("INVALID_CONNECTION"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QSqlDatabase::errorReporting_data()
|
|
||||||
{
|
|
||||||
QTest::addColumn<QString>("driver");
|
|
||||||
|
|
||||||
QTest::newRow("QTDS") << QString::fromLatin1("QTDS");
|
|
||||||
QTest::newRow("QTDS7") << QString::fromLatin1("QTDS7");
|
|
||||||
}
|
|
||||||
|
|
||||||
void tst_QSqlDatabase::errorReporting()
|
|
||||||
{
|
|
||||||
QFETCH(QString, driver);
|
|
||||||
|
|
||||||
if (!QSqlDatabase::drivers().contains(driver))
|
|
||||||
QSKIP(QString::fromLatin1("Database driver %1 not available").arg(driver).toLocal8Bit().constData());
|
|
||||||
|
|
||||||
const QString dbName = QLatin1String("errorReportingDb-") + driver;
|
|
||||||
QSqlDatabase db = QSqlDatabase::addDatabase(driver, dbName);
|
|
||||||
|
|
||||||
db.setHostName(QLatin1String("127.0.0.1"));
|
|
||||||
db.setDatabaseName(QLatin1String("NonExistantDatabase"));
|
|
||||||
db.setUserName(QLatin1String("InvalidUser"));
|
|
||||||
db.setPassword(QLatin1String("IncorrectPassword"));
|
|
||||||
|
|
||||||
QVERIFY(!db.open());
|
|
||||||
|
|
||||||
db = QSqlDatabase();
|
|
||||||
|
|
||||||
QSqlDatabase::removeDatabase(dbName);
|
|
||||||
}
|
|
||||||
|
|
||||||
void tst_QSqlDatabase::open()
|
void tst_QSqlDatabase::open()
|
||||||
{
|
{
|
||||||
QFETCH(QString, dbName);
|
QFETCH(QString, dbName);
|
||||||
@ -672,43 +638,6 @@ void tst_QSqlDatabase::commonFieldTest(const FieldDef fieldDefs[], QSqlDatabase
|
|||||||
QVERIFY_SQL(q, exec("select * from " + tableNames.at(0)));
|
QVERIFY_SQL(q, exec("select * from " + tableNames.at(0)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QSqlDatabase::recordTDS()
|
|
||||||
{
|
|
||||||
QFETCH(QString, dbName);
|
|
||||||
QSqlDatabase db = QSqlDatabase::database(dbName);
|
|
||||||
CHECK_DATABASE(db);
|
|
||||||
|
|
||||||
static const FieldDef fieldDefs[] = {
|
|
||||||
FieldDef("tinyint", QMetaType::Int, 255),
|
|
||||||
FieldDef("smallint", QMetaType::Int, 32767),
|
|
||||||
FieldDef("int", QMetaType::Int, 2147483647),
|
|
||||||
FieldDef("numeric(10,9)", QMetaType::Double, 1.23456789),
|
|
||||||
FieldDef("decimal(10,9)", QMetaType::Double, 1.23456789),
|
|
||||||
FieldDef("float(4)", QMetaType::Double, 1.23456789),
|
|
||||||
FieldDef("double precision", QMetaType::Double, 1.23456789),
|
|
||||||
FieldDef("real", QMetaType::Double, 1.23456789),
|
|
||||||
FieldDef("smallmoney", QMetaType::Double, 100.42),
|
|
||||||
FieldDef("money", QMetaType::Double, 200.42),
|
|
||||||
// accuracy is that of a minute
|
|
||||||
FieldDef("smalldatetime", QMetaType::QDateTime, QDateTime(QDate::currentDate(), QTime(1, 2, 0, 0))),
|
|
||||||
// accuracy is that of a second
|
|
||||||
FieldDef("datetime", QMetaType::QDateTime, QDateTime(QDate::currentDate(), QTime(1, 2, 3, 0))),
|
|
||||||
FieldDef("char(20)", QMetaType::QString, "blah1"),
|
|
||||||
FieldDef("varchar(20)", QMetaType::QString, "blah2"),
|
|
||||||
FieldDef("nchar(20)", QMetaType::QString, "blah3"),
|
|
||||||
FieldDef("nvarchar(20)", QMetaType::QString, "blah4"),
|
|
||||||
FieldDef("text", QMetaType::QString, "blah5"),
|
|
||||||
FieldDef("bit", QMetaType::Int, 1, false),
|
|
||||||
|
|
||||||
FieldDef()
|
|
||||||
};
|
|
||||||
|
|
||||||
const int fieldCount = createFieldTable(fieldDefs, db);
|
|
||||||
QVERIFY(fieldCount > 0);
|
|
||||||
|
|
||||||
commonFieldTest(fieldDefs, db, fieldCount);
|
|
||||||
}
|
|
||||||
|
|
||||||
void tst_QSqlDatabase::recordOCI()
|
void tst_QSqlDatabase::recordOCI()
|
||||||
{
|
{
|
||||||
bool hasTimeStamp = false;
|
bool hasTimeStamp = false;
|
||||||
|
@ -58,8 +58,6 @@ private slots:
|
|||||||
void last();
|
void last();
|
||||||
void seek_data() { generic_data(); }
|
void seek_data() { generic_data(); }
|
||||||
void seek();
|
void seek();
|
||||||
void transaction_data() { generic_data(); }
|
|
||||||
void transaction();
|
|
||||||
void record_data() { generic_data(); }
|
void record_data() { generic_data(); }
|
||||||
void record();
|
void record();
|
||||||
void record_sqlite_data() { generic_data("QSQLITE"); }
|
void record_sqlite_data() { generic_data("QSQLITE"); }
|
||||||
@ -80,8 +78,6 @@ private slots:
|
|||||||
void psql_forwardOnlyQueryResultsLost();
|
void psql_forwardOnlyQueryResultsLost();
|
||||||
|
|
||||||
// Bug-specific tests:
|
// Bug-specific tests:
|
||||||
void tds_bitField_data() { generic_data("QTDS"); }
|
|
||||||
void tds_bitField();
|
|
||||||
void oci_nullBlob_data() { generic_data("QOCI"); }
|
void oci_nullBlob_data() { generic_data("QOCI"); }
|
||||||
void oci_nullBlob();
|
void oci_nullBlob();
|
||||||
void blob_data() { generic_data(); }
|
void blob_data() { generic_data(); }
|
||||||
@ -1869,27 +1865,6 @@ void tst_QSqlQuery::writeNull()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TDS-specific BIT field test:
|
|
||||||
void tst_QSqlQuery::tds_bitField()
|
|
||||||
{
|
|
||||||
QFETCH(QString, dbName);
|
|
||||||
QSqlDatabase db = QSqlDatabase::database(dbName);
|
|
||||||
CHECK_DATABASE(db);
|
|
||||||
const QString tableName = qTableName("qtest_bittest", __FILE__, db);
|
|
||||||
QSqlQuery q(db);
|
|
||||||
|
|
||||||
QVERIFY_SQL(q, exec(QLatin1String("create table %1 (bitty bit)").arg(tableName)));
|
|
||||||
QVERIFY_SQL(q, exec(QLatin1String("insert into %1 values (0)").arg(tableName)));
|
|
||||||
QVERIFY_SQL(q, exec(QLatin1String("insert into %1 values (1)").arg(tableName)));
|
|
||||||
QVERIFY_SQL(q, exec("select bitty from " + tableName));
|
|
||||||
|
|
||||||
QVERIFY(q.next());
|
|
||||||
QCOMPARE(q.value(0).toInt(), 0);
|
|
||||||
|
|
||||||
QVERIFY(q.next());
|
|
||||||
QCOMPARE(q.value(0).toInt(), 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Oracle-specific NULL BLOB test:
|
// Oracle-specific NULL BLOB test:
|
||||||
void tst_QSqlQuery::oci_nullBlob()
|
void tst_QSqlQuery::oci_nullBlob()
|
||||||
{
|
{
|
||||||
@ -2018,84 +1993,6 @@ void tst_QSqlQuery::nullResult()
|
|||||||
QVERIFY(!q.seek(0));
|
QVERIFY(!q.seek(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
// This test is just an experiment to see whether we can do query-based transactions.
|
|
||||||
// The real transaction test is in tst_QSqlDatabase.
|
|
||||||
void tst_QSqlQuery::transaction()
|
|
||||||
{
|
|
||||||
// Query-based transaction is not really possible with Qt:
|
|
||||||
QSKIP("only tested manually by trained staff");
|
|
||||||
|
|
||||||
QFETCH(QString, dbName);
|
|
||||||
QSqlDatabase db = QSqlDatabase::database(dbName);
|
|
||||||
CHECK_DATABASE(db);
|
|
||||||
const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
|
|
||||||
if (!db.driver()->hasFeature(QSqlDriver::Transactions))
|
|
||||||
QSKIP("DBMS not transaction-capable");
|
|
||||||
|
|
||||||
// This is the standard SQL:
|
|
||||||
QString startTransactionStr("start transaction");
|
|
||||||
|
|
||||||
if (dbType == QSqlDriver::MySqlServer)
|
|
||||||
startTransactionStr = "begin work";
|
|
||||||
|
|
||||||
QSqlQuery q(db);
|
|
||||||
QSqlQuery q2(db);
|
|
||||||
|
|
||||||
// Test a working transaction:
|
|
||||||
q.exec(startTransactionStr);
|
|
||||||
QVERIFY_SQL(q, exec(QLatin1String("insert into%1 values (40, 'VarChar40', 'Char40')")
|
|
||||||
.arg(qtest)));
|
|
||||||
QVERIFY_SQL(q, exec(QLatin1String("select * from%1 where id = 40").arg(qtest)));
|
|
||||||
|
|
||||||
QVERIFY(q.next());
|
|
||||||
QCOMPARE(q.value(0).toInt(), 40);
|
|
||||||
|
|
||||||
QVERIFY_SQL(q, exec("commit"));
|
|
||||||
QVERIFY_SQL(q, exec(QLatin1String("select * from%1 where id = 40").arg(qtest)));
|
|
||||||
|
|
||||||
QVERIFY(q.next());
|
|
||||||
QCOMPARE(q.value(0).toInt(), 40);
|
|
||||||
|
|
||||||
// Test a rollback:
|
|
||||||
q.exec(startTransactionStr);
|
|
||||||
QVERIFY_SQL(q, exec(QLatin1String("insert into%1 values (41, 'VarChar41', 'Char41')")
|
|
||||||
.arg(qtest)));
|
|
||||||
QVERIFY_SQL(q, exec(QLatin1String("select * from%1 where id = 41").arg(qtest)));
|
|
||||||
|
|
||||||
QVERIFY(q.next());
|
|
||||||
QCOMPARE(q.value(0).toInt(), 41);
|
|
||||||
|
|
||||||
if (!q.exec("rollback")) {
|
|
||||||
if (dbType == QSqlDriver::MySqlServer) {
|
|
||||||
qDebug("MySQL: %s", qPrintable(tst_Databases::printError(q.lastError())));
|
|
||||||
QSKIP("MySQL transaction failed "); // non-fatal
|
|
||||||
} else {
|
|
||||||
QFAIL("Could not rollback transaction: " + tst_Databases::printError(q.lastError()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
QVERIFY_SQL(q, exec(QLatin1String("select * from%1 where id = 41").arg(qtest)));
|
|
||||||
QVERIFY(!q.next());
|
|
||||||
|
|
||||||
// Test concurrent access:
|
|
||||||
q.exec(startTransactionStr);
|
|
||||||
QVERIFY_SQL(q, exec(QLatin1String("insert into%1 values (42, 'VarChar42', 'Char42')")
|
|
||||||
.arg(qtest)));
|
|
||||||
QVERIFY_SQL(q, exec(QLatin1String("select * from%1 where id = 42").arg(qtest)));
|
|
||||||
QVERIFY(q.next());
|
|
||||||
QCOMPARE(q.value(0).toInt(), 42);
|
|
||||||
|
|
||||||
QVERIFY_SQL(q2, exec(QLatin1String("select * from%1 where id = 42").arg(qtest)));
|
|
||||||
if (q2.next())
|
|
||||||
qDebug("DBMS '%s' doesn't support query based transactions with concurrent access",
|
|
||||||
qPrintable(tst_Databases::dbToString(db)));
|
|
||||||
|
|
||||||
QVERIFY_SQL(q, exec("commit"));
|
|
||||||
QVERIFY_SQL(q2, exec(QLatin1String("select * from%1 where id = 42").arg(qtest)));
|
|
||||||
|
|
||||||
QVERIFY(q2.next());
|
|
||||||
QCOMPARE(q2.value(0).toInt(), 42);
|
|
||||||
}
|
|
||||||
|
|
||||||
void tst_QSqlQuery::joins()
|
void tst_QSqlQuery::joins()
|
||||||
{
|
{
|
||||||
QFETCH(QString, dbName);
|
QFETCH(QString, dbName);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user