summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp
index 8b057ec039..9e79a25f68 100644
--- a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp
+++ b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp
@@ -259,6 +259,9 @@ private slots:
void dateTime_data();
void dateTime();
+ void ibaseArray_data() { generic_data("QIBASE"); }
+ void ibaseArray();
+
private:
// returns all database connections
void generic_data(const QString &engine=QString());
@@ -4764,5 +4767,31 @@ void tst_QSqlQuery::mysql_timeType()
}
}
+void tst_QSqlQuery::ibaseArray()
+{
+ QFETCH(QString, dbName);
+ QSqlDatabase db = QSqlDatabase::database(dbName);
+ CHECK_DATABASE(db);
+
+ const auto arrayTable = qTableName("ibasearray", __FILE__, db);
+ tst_Databases::safeDropTable(db, arrayTable);
+ QSqlQuery qry(db);
+ QVERIFY_SQL(qry, exec("create table " + arrayTable + " (intData int[0:4], longData bigint[5], "
+ "charData varchar(255)[5])"));
+ QVERIFY_SQL(qry, prepare("insert into " + arrayTable + " (intData, longData, charData) "
+ "values(?, ?, ?)"));
+ const auto intArray = QVariant{QVariantList{1, 2, 3, 4711, 815}};
+ const auto charArray = QVariant{QVariantList{"AAA", "BBB", "CCC", "DDD", "EEE"}};
+ qry.bindValue(0, intArray);
+ qry.bindValue(1, intArray);
+ qry.bindValue(2, charArray);
+ QVERIFY_SQL(qry, exec());
+ QVERIFY_SQL(qry, exec("select * from " + arrayTable));
+ QVERIFY(qry.next());
+ QCOMPARE(qry.value(0).toList(), intArray.toList());
+ QCOMPARE(qry.value(1).toList(), intArray.toList());
+ QCOMPARE(qry.value(2).toList(), charArray.toList());
+}
+
QTEST_MAIN( tst_QSqlQuery )
#include "tst_qsqlquery.moc"