diff options
author | Liang Qi <liang.qi@qt.io> | 2016-12-13 09:36:26 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-12-13 09:39:20 +0100 |
commit | 6755ec891a1740110c48895afd53d39e8370704a (patch) | |
tree | 982606f3bc582262e4b315a63f55ccb141fff97b /tests/auto/sql | |
parent | 449204f8c0d6679ae0e58dbb8a30b8a86fbdb4ec (diff) | |
parent | 00c9ec63a552d040e851b561c11428fabf1a2b08 (diff) |
Merge remote-tracking branch 'origin/5.8' into dev
Conflicts:
configure
qmake/Makefile.unix.macos
qmake/Makefile.unix.win32
qmake/generators/win32/msvc_vcproj.cpp
src/3rdparty/pcre/qt_attribution.json
src/corelib/io/qsettings.cpp
src/corelib/kernel/qdeadlinetimer.cpp
src/platformsupport/kmsconvenience/qkmsdevice.cpp
src/platformsupport/kmsconvenience/qkmsdevice_p.h
src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp
src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp
src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevicescreen.cpp
src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice.cpp
src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.h
tests/manual/qstorageinfo/printvolumes.cpp
tools/configure/configureapp.cpp
Change-Id: Ibaabcc8e965c44926f9fb018466e8b132b8df49e
Diffstat (limited to 'tests/auto/sql')
-rw-r--r-- | tests/auto/sql/kernel/qsql/tst_qsql.cpp | 1 | ||||
-rw-r--r-- | tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp | 44 |
2 files changed, 28 insertions, 17 deletions
diff --git a/tests/auto/sql/kernel/qsql/tst_qsql.cpp b/tests/auto/sql/kernel/qsql/tst_qsql.cpp index 282fed2584..2ce43b85a7 100644 --- a/tests/auto/sql/kernel/qsql/tst_qsql.cpp +++ b/tests/auto/sql/kernel/qsql/tst_qsql.cpp @@ -33,7 +33,6 @@ #include <qsqlerror.h> #include <qsqlquery.h> #include <qsqlrecord.h> -#include <qsql.h> #include <qsqlresult.h> #include <qsqldriver.h> #include <qdebug.h> diff --git a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp index 84e9643e77..8deb5ddf8f 100644 --- a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp +++ b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp @@ -3995,35 +3995,29 @@ void tst_QSqlQuery::aggregateFunctionTypes() } template<typename T> -void runIntegralTypesMysqlTest(QSqlDatabase &db, const QString &tableName, const QString &type, const bool withPreparedStatement, - const T min = std::numeric_limits<T>::min(), const T max = std::numeric_limits<T>::max()) +void runIntegralTypesMysqlTest(QSqlDatabase &db, const QString &tableName, + const QString &type, bool withPreparedStatement, + const QVector<T> &values) { + QVector<QVariant> variantValues; + variantValues.reserve(values.size()); + QSqlQuery q(db); QVERIFY_SQL(q, exec("DROP TABLE IF EXISTS " + tableName)); QVERIFY_SQL(q, exec("CREATE TABLE " + tableName + " (id " + type + ')')); - const int steps = (max == min + 1) ? 2 : 20; - const T increment = (max == min + 1) ? 1 : (max / steps - min / steps); - - // insert some values - QVector<T> values; - QVector<QVariant> variantValues; - values.resize(steps); - variantValues.resize(steps); - T v = min; if (withPreparedStatement) { QVERIFY_SQL(q, prepare("INSERT INTO " + tableName + " (id) VALUES (?)")); } for (int i = 0; i < values.size(); ++i) { + const T v = values.at(i); if (withPreparedStatement) { q.bindValue(0, v); QVERIFY_SQL(q, exec()); } else { QVERIFY_SQL(q, exec("INSERT INTO " + tableName + " (id) VALUES (" + QString::number(v) + QLatin1Char(')'))); } - values[i] = v; - variantValues[i] = QVariant::fromValue(v); - v += increment; + variantValues.append(QVariant::fromValue(v)); } // ensure we can read them back properly @@ -4048,16 +4042,34 @@ void runIntegralTypesMysqlTest(QSqlDatabase &db, const QString &tableName, const QCOMPARE(actualVariantValues, variantValues); } +template<typename T> +void runIntegralTypesMysqlTest(QSqlDatabase &db, const QString &tableName, + const QString &type, const bool withPreparedStatement, + const T min = std::numeric_limits<T>::min(), + const T max = std::numeric_limits<T>::max()) +{ + // insert some values + const int steps = 20; + const T increment = (max / steps - min / steps); + QVector<T> values; + values.reserve(steps); + T v = min; + for (int i = 0; i < steps; ++i, v += increment) + values.append(v); + runIntegralTypesMysqlTest(db, tableName, type, withPreparedStatement, values); +} + void tst_QSqlQuery::integralTypesMysql() { QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const QVector<bool> boolValues = QVector<bool>() << false << true; for (int i = 0; i < 2; ++i) { const bool withPreparedStatement = (i == 1); - runIntegralTypesMysqlTest<bool>(db, "tinyInt1Test", "TINYINT(1)", withPreparedStatement); - runIntegralTypesMysqlTest<bool>(db, "unsignedTinyInt1Test", "TINYINT(1) UNSIGNED", withPreparedStatement); + runIntegralTypesMysqlTest<bool>(db, "tinyInt1Test", "TINYINT(1)", withPreparedStatement, boolValues); + runIntegralTypesMysqlTest<bool>(db, "unsignedTinyInt1Test", "TINYINT(1) UNSIGNED", withPreparedStatement, boolValues); runIntegralTypesMysqlTest<qint8>(db, "tinyIntTest", "TINYINT", withPreparedStatement); runIntegralTypesMysqlTest<quint8>(db, "unsignedTinyIntTest", "TINYINT UNSIGNED", withPreparedStatement); runIntegralTypesMysqlTest<qint16>(db, "smallIntTest", "SMALLINT", withPreparedStatement); |