diff options
Diffstat (limited to 'tests/auto/sql/kernel')
-rw-r--r-- | tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp index a88a26d24d..df3a4dd95e 100644 --- a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp +++ b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp @@ -213,6 +213,8 @@ private slots: void QTBUG_5765(); void QTBUG_14132_data() { generic_data("QOCI"); } void QTBUG_14132(); + void QTBUG_21884_data() { generic_data("QSQLITE"); } + void QTBUG_21884(); void sqlite_constraint_data() { generic_data("QSQLITE"); } void sqlite_constraint(); @@ -323,6 +325,7 @@ void tst_QSqlQuery::dropTestTables( QSqlDatabase db ) << qTableName("bug6421", __FILE__).toUpper() << qTableName("bug5765", __FILE__) << qTableName("bug6852", __FILE__) + << qTableName("bug21884", __FILE__) << qTableName( "qtest_lockedtable", __FILE__ ) << qTableName( "Planet", __FILE__ ) << qTableName( "task_250026", __FILE__ ) @@ -3083,6 +3086,50 @@ void tst_QSqlQuery::QTBUG_5765() QCOMPARE(q.value(0).toInt(), 123); } +/** +* This test case tests multiple statements in one execution. +* Sqlite driver doesn't support multiple statement at one time. +* If more than one statement is given, the exec or prepare function +* return failure to the client. +*/ +void tst_QSqlQuery::QTBUG_21884() +{ + QFETCH(QString, dbName); + QSqlDatabase db = QSqlDatabase::database(dbName); + CHECK_DATABASE(db); + + QSqlQuery q(db); + + QStringList stList; + QString tableName(qTableName("bug21884", __FILE__ )); + stList << "create table " + tableName + "(id integer primary key, note string)"; + stList << "select * from " + tableName + ";"; + stList << "select * from " + tableName + "; \t\n\r"; + stList << "drop table " + tableName; + + + foreach (const QString& st, stList) { + QVERIFY_SQL(q, exec(st)); + } + + foreach (const QString& st, stList) { + QVERIFY_SQL(q, prepare(st)); + QVERIFY_SQL(q, exec()); + } + + stList.clear(); + stList << "create table " + tableName + "(id integer primary key); select * from " + tableName; + stList << "create table " + tableName + "(id integer primary key); syntax error!;"; + stList << "create table " + tableName + "(id integer primary key);;"; + stList << "create table " + tableName + "(id integer primary key);\'\"\a\b\b\v"; + + foreach (const QString&st , stList) { + QVERIFY2(!q.prepare(st), qPrintable(QString("the statement is expected to fail! ") + st)); + QVERIFY2(!q.exec(st), qPrintable(QString("the statement is expected to fail! ") + st)); + } +} + + void tst_QSqlQuery::oraOCINumber() { QFETCH( QString, dbName ); |