QSqlQuery: add another testcase for bindBool()
tst_QSqlQuery::bindBool() did not check if the bool is correctly bound as part of the WHERE statement. Add a new test to query for the bool column and check if there is exactly one row returned. Fixes: QTBUG-38891 Change-Id: I0bd1ceb1b30e50f67f44f5b06d68683195b78b29 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
This commit is contained in:
parent
e3c84b6da1
commit
2b682972c2
@ -633,13 +633,20 @@ void tst_QSqlQuery::bindBool()
|
|||||||
QVERIFY_SQL(q, exec());
|
QVERIFY_SQL(q, exec());
|
||||||
}
|
}
|
||||||
|
|
||||||
QVERIFY_SQL(q, exec("SELECT id, flag FROM " + tableName));
|
QVERIFY_SQL(q, exec("SELECT id, flag FROM " + tableName + " ORDER BY id"));
|
||||||
for (int i = 0; i < 2; ++i) {
|
for (int i = 0; i < 2; ++i) {
|
||||||
bool flag = i;
|
bool flag = i;
|
||||||
QVERIFY_SQL(q, next());
|
QVERIFY_SQL(q, next());
|
||||||
QCOMPARE(q.value(0).toInt(), i);
|
QCOMPARE(q.value(0).toInt(), i);
|
||||||
QCOMPARE(q.value(1).toBool(), flag);
|
QCOMPARE(q.value(1).toBool(), flag);
|
||||||
}
|
}
|
||||||
|
QVERIFY_SQL(q, prepare("SELECT flag FROM " + tableName + " WHERE flag = :filter"));
|
||||||
|
const bool filter = true;
|
||||||
|
q.bindValue(":filter", filter);
|
||||||
|
QVERIFY_SQL(q, exec());
|
||||||
|
QVERIFY_SQL(q, next());
|
||||||
|
QCOMPARE(q.value(0).toBool(), filter);
|
||||||
|
QFAIL_SQL(q, next());
|
||||||
QVERIFY_SQL(q, exec("DROP TABLE " + tableName));
|
QVERIFY_SQL(q, exec("DROP TABLE " + tableName));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user