diff -r 41300fa6a67c -r 2f34d5167611 tests/auto/qsqldatabase/tst_qsqldatabase.cpp --- a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp Tue Feb 02 00:43:10 2010 +0200 +++ b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp Fri Apr 16 15:50:13 2010 +0300 @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -202,6 +202,8 @@ void sqlStatementUseIsNull_189093_data() { generic_data(); } void sqlStatementUseIsNull_189093(); + void sqlite_enable_cache_mode_data() { generic_data("QSQLITE"); } + void sqlite_enable_cache_mode(); private: void createTestTables(QSqlDatabase db); @@ -903,12 +905,8 @@ CHECK_DATABASE(db); // runtime check for Oracle version since V8 doesn't support TIMESTAMPs - if (tst_Databases::getOraVersion(db) >= 9) { - qDebug("Detected Oracle >= 9, TIMESTAMP test enabled"); - hasTimeStamp = true; - } else { - qDebug("Detected Oracle < 9, TIMESTAMP test disabled"); - } + if (tst_Databases::getOraVersion(db) >= 9) + hasTimeStamp = true; FieldDef tsdef; FieldDef tstzdef; @@ -919,11 +917,11 @@ static const QDateTime dt(QDate::currentDate(), QTime(1, 2, 3, 0)); if (hasTimeStamp) { - tsdef = FieldDef("timestamp", QVariant::DateTime, dt); - tstzdef = FieldDef("timestamp with time zone", QVariant::DateTime, dt); - tsltzdef = FieldDef("timestamp with local time zone", QVariant::DateTime, dt); - intytm = FieldDef("interval year to month", QVariant::String, QString("+01-01")); - intdts = FieldDef("interval day to second", QVariant::String, QString("+01 00:00:01.000000")); + tsdef = FieldDef("timestamp", QVariant::DateTime, dt); + tstzdef = FieldDef("timestamp with time zone", QVariant::DateTime, dt); + tsltzdef = FieldDef("timestamp with local time zone", QVariant::DateTime, dt); + intytm = FieldDef("interval year to month", QVariant::String, QString("+01-01")); + intdts = FieldDef("interval day to second", QVariant::String, QString("+01 00:00:01.000000")); } const FieldDef fieldDefs[] = { @@ -938,14 +936,14 @@ FieldDef("blob", QVariant::ByteArray, QByteArray("blah7")), FieldDef("clob", QVariant::String, QString("blah8")), FieldDef("nclob", QVariant::String, QString("blah9")), - FieldDef("bfile", QVariant::ByteArray, QByteArray("blah10")), +// FieldDef("bfile", QVariant::ByteArray, QByteArray("blah10")), - intytm, -// intdts, -// tsdef, -// tstzdef, -// tsltzdef, - FieldDef() + intytm, + intdts, + tsdef, + tstzdef, + tsltzdef, + FieldDef() }; const int fieldCount = createFieldTable(fieldDefs, db); @@ -953,9 +951,8 @@ commonFieldTest(fieldDefs, db, fieldCount); checkNullValues(fieldDefs, db); - for (int i = 0; i < ITERATION_COUNT; ++i) { - checkValues(fieldDefs, db); - } + for (int i = 0; i < ITERATION_COUNT; ++i) + checkValues(fieldDefs, db); // some additional tests QSqlRecord rec = db.record(qTableName("qtestfields")); @@ -2490,5 +2487,23 @@ QVERIFY(db.tables(QSql::SystemTables).contains(systemTableName.toUpper())); } +void tst_QSqlDatabase::sqlite_enable_cache_mode() +{ + QFETCH(QString, dbName); + if(dbName.endsWith(":memory:")) + QSKIP( "cache mode is meaningless for :memory: databases", SkipSingle ); + QSqlDatabase db = QSqlDatabase::database(dbName); + CHECK_DATABASE(db); + db.close(); + db.setConnectOptions("QSQLITE_ENABLE_SHARED_CACHE"); + QVERIFY_SQL(db, open()); + QSqlDatabase db2 = QSqlDatabase::cloneDatabase(db, dbName+":cachemodeconn2"); + db2.setConnectOptions("QSQLITE_ENABLE_SHARED_CACHE"); + QVERIFY_SQL(db2, open()); + QSqlQuery q(db), q2(db2); + QVERIFY_SQL(q, exec("select * from "+qTableName("qtest"))); + QVERIFY_SQL(q2, exec("select * from "+qTableName("qtest"))); +} + QTEST_MAIN(tst_QSqlDatabase) #include "tst_qsqldatabase.moc"