diff options
author | Liang Qi <liang.qi@qt.io> | 2017-05-29 10:06:10 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-05-29 10:54:41 +0200 |
commit | 6a772fd201ac738dc86e71bd82e98f65158e6335 (patch) | |
tree | 674007720f41d27b251bbcffd7a368a93f88eb96 /tests/auto | |
parent | 40206a9f6d7635bb19305d1c8d74908808e3529e (diff) | |
parent | 4c346b6e2bfab976bc9b16275b8382aee38aefa4 (diff) |
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts:
.qmake.conf
mkspecs/common/msvc-desktop.conf
mkspecs/win32-g++/qmake.conf
mkspecs/win32-icc/qmake.conf
src/platformsupport/fontdatabases/mac/coretext.pri
src/plugins/platforms/cocoa/qcocoawindow.h
src/plugins/platforms/cocoa/qcocoawindow.mm
Change-Id: I74a6f7705c9547ed8bbac7260eb4645543e32655
Diffstat (limited to 'tests/auto')
12 files changed, 156 insertions, 24 deletions
diff --git a/tests/auto/corelib/global/qfloat16/tst_qfloat16.cpp b/tests/auto/corelib/global/qfloat16/tst_qfloat16.cpp index 3ec863302e..9bd87e3f21 100644 --- a/tests/auto/corelib/global/qfloat16/tst_qfloat16.cpp +++ b/tests/auto/corelib/global/qfloat16/tst_qfloat16.cpp @@ -44,6 +44,8 @@ private slots: void float_cast(); void float_cast_data(); void promotionTests(); + void arithOps_data(); + void arithOps(); }; void tst_qfloat16::fuzzyCompare_data() @@ -198,8 +200,12 @@ void tst_qfloat16::float_cast() { QFETCH(float, val); - QVERIFY(qFuzzyCompare(float(qfloat16(val)),val)); - QVERIFY(qFuzzyCompare(float(qfloat16(-val)),-val)); + QVERIFY(qFuzzyCompare((float)(qfloat16(val)),val)); + QVERIFY(qFuzzyCompare((float)(qfloat16(-val)),-val)); + QVERIFY(qFuzzyCompare((double)(qfloat16(val)),(double)(val))); + QVERIFY(qFuzzyCompare((double)(qfloat16(-val)),(double)(-val))); + //QVERIFY(qFuzzyCompare((long double)(qfloat16(val)),(long double)(val))); + //QVERIFY(qFuzzyCompare((long double)(qfloat16(-val)),(long double)(-val))); } void tst_qfloat16::promotionTests() @@ -248,6 +254,55 @@ void tst_qfloat16::promotionTests() QCOMPARE(sizeof(double),sizeof(qfloat16(1.f)-1)); QCOMPARE(sizeof(double),sizeof(qfloat16(1.f)*1)); QCOMPARE(sizeof(double),sizeof(qfloat16(1.f)/1)); + + QCOMPARE(QString::number(1.f),QString::number(qfloat16(1.f))); +} + +void tst_qfloat16::arithOps_data() +{ + QTest::addColumn<float>("val1"); + QTest::addColumn<float>("val2"); + + QTest::newRow("zero") << 0.0f << 2.0f; + QTest::newRow("one") << 1.0f << 4.0f; + QTest::newRow("ten") << 10.0f << 20.0f; +} + +void tst_qfloat16::arithOps() +{ + QFETCH(float, val1); + QFETCH(float, val2); + + QVERIFY(qFuzzyCompare(float(qfloat16(val1) + qfloat16(val2)), val1 + val2)); + QVERIFY(qFuzzyCompare(float(qfloat16(val1) - qfloat16(val2)), val1 - val2)); + QVERIFY(qFuzzyCompare(float(qfloat16(val1) * qfloat16(val2)), val1 * val2)); + QVERIFY(qFuzzyCompare(float(qfloat16(val1) / qfloat16(val2)), val1 / val2)); + + QVERIFY(qFuzzyCompare(qfloat16(val1) + val2, val1 + val2)); + QVERIFY(qFuzzyCompare(qfloat16(val1) - val2, val1 - val2)); + QVERIFY(qFuzzyCompare(qfloat16(val1) * val2, val1 * val2)); + QVERIFY(qFuzzyCompare(qfloat16(val1) / val2, val1 / val2)); + + QVERIFY(qFuzzyCompare(val1 + qfloat16(val2), val1 + val2)); + QVERIFY(qFuzzyCompare(val1 - qfloat16(val2), val1 - val2)); + QVERIFY(qFuzzyCompare(val1 * qfloat16(val2), val1 * val2)); + QVERIFY(qFuzzyCompare(val1 / qfloat16(val2), val1 / val2)); + + float r1 = 0.f; + r1 += qfloat16(val2); + QVERIFY(qFuzzyCompare(r1,val2)); + + float r2 = 0.f; + r2 -= qfloat16(val2); + QVERIFY(qFuzzyCompare(r2,-val2)); + + float r3 = 1.f; + r3 *= qfloat16(val2); + QVERIFY(qFuzzyCompare(r3,val2)); + + float r4 = 1.f; + r4 /= qfloat16(val2); + QVERIFY(qFuzzyCompare(r4,1.f/val2)); } QTEST_APPLESS_MAIN(tst_qfloat16) diff --git a/tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp b/tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp index 31e76c4407..22f0d8ecaa 100644 --- a/tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp +++ b/tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp @@ -155,7 +155,9 @@ void tst_QCoreApplication::qAppName() void tst_QCoreApplication::qAppVersion() { -#if defined(Q_OS_WIN) +#if defined(Q_OS_WINRT) + const char appVersion[] = "1.0.0.0"; +#elif defined(Q_OS_WIN) const char appVersion[] = "1.2.3.4"; #elif defined(Q_OS_DARWIN) || defined(Q_OS_ANDROID) const char appVersion[] = "1.2.3"; @@ -946,9 +948,12 @@ void tst_QCoreApplication::addRemoveLibPaths() char *argv[] = { const_cast<char*>(QTest::currentAppName()) }; TestApplication app(argc, argv); - // Check that modifications stay alive across the creation of an application. - QVERIFY(QCoreApplication::libraryPaths().contains(currentDir)); - QVERIFY(!QCoreApplication::libraryPaths().contains(paths[0])); + // If libraryPaths only contains currentDir, neither will be in libraryPaths now. + if (paths.length() != 1 && currentDir != paths[0]) { + // Check that modifications stay alive across the creation of an application. + QVERIFY(QCoreApplication::libraryPaths().contains(currentDir)); + QVERIFY(!QCoreApplication::libraryPaths().contains(paths[0])); + } QStringList replace; replace << currentDir << paths[0]; diff --git a/tests/auto/corelib/kernel/qeventdispatcher/BLACKLIST b/tests/auto/corelib/kernel/qeventdispatcher/BLACKLIST index 00be65751b..402d87b82f 100644 --- a/tests/auto/corelib/kernel/qeventdispatcher/BLACKLIST +++ b/tests/auto/corelib/kernel/qeventdispatcher/BLACKLIST @@ -1,4 +1,6 @@ [sendPostedEvents] windows +osx [registerTimer] windows +osx diff --git a/tests/auto/corelib/kernel/qeventloop/BLACKLIST b/tests/auto/corelib/kernel/qeventloop/BLACKLIST index 6ea6314b0a..9f837aa197 100644 --- a/tests/auto/corelib/kernel/qeventloop/BLACKLIST +++ b/tests/auto/corelib/kernel/qeventloop/BLACKLIST @@ -1,2 +1,3 @@ [testQuitLock] windows +osx diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp index f0a4ef9b42..076610a0c5 100644 --- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp +++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp @@ -1729,10 +1729,10 @@ void tst_QMetaType::metaObject() } #define METATYPE_ID_FUNCTION(Type, MetaTypeId, Name) \ - case ::qMetaTypeId< Name >(): metaType = MetaTypeIdStruct<MetaTypeId>::Value; + case ::qMetaTypeId< Name >(): metaType = MetaTypeIdStruct<MetaTypeId>::Value; break; #define REGISTER_METATYPE_FUNCTION(Type, MetaTypeId, Name) \ - case qRegisterMetaType< Name >(): metaType = RegisterMetaTypeStruct<MetaTypeId>::Value; + case qRegisterMetaType< Name >(): metaType = RegisterMetaTypeStruct<MetaTypeId>::Value; break; template<int> struct MetaTypeIdStruct diff --git a/tests/auto/corelib/kernel/qsocketnotifier/tst_qsocketnotifier.cpp b/tests/auto/corelib/kernel/qsocketnotifier/tst_qsocketnotifier.cpp index a52b80170f..e3f45df27d 100644 --- a/tests/auto/corelib/kernel/qsocketnotifier/tst_qsocketnotifier.cpp +++ b/tests/auto/corelib/kernel/qsocketnotifier/tst_qsocketnotifier.cpp @@ -350,6 +350,9 @@ void tst_QSocketNotifier::async_writeDatagramSlot() void tst_QSocketNotifier::asyncMultipleDatagram() { +#ifdef Q_OS_WINRT + QSKIP("WinRT does not allow connection to localhost", SkipAll); +#else m_asyncSender = new QUdpSocket; m_asyncReceiver = new QUdpSocket; @@ -379,6 +382,7 @@ void tst_QSocketNotifier::asyncMultipleDatagram() delete m_asyncSender; delete m_asyncReceiver; + #endif // !Q_OS_WINRT } QTEST_MAIN(tst_QSocketNotifier) diff --git a/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp b/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp index bcae39af3d..06e2b0ea8c 100644 --- a/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp +++ b/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp @@ -144,12 +144,10 @@ void tst_QTimer::timeout() QCOMPARE(helper.count, 0); - QTest::qWait(TIMEOUT_TIMEOUT); - QVERIFY(helper.count > 0); + QTRY_VERIFY_WITH_TIMEOUT(helper.count > 0, TIMEOUT_TIMEOUT); int oldCount = helper.count; - QTest::qWait(TIMEOUT_TIMEOUT); - QVERIFY(helper.count > oldCount); + QTRY_VERIFY_WITH_TIMEOUT(helper.count > oldCount, TIMEOUT_TIMEOUT); } void tst_QTimer::remainingTime() diff --git a/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp b/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp index 280e3f77a4..8a46bc1c55 100644 --- a/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp +++ b/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp @@ -72,12 +72,12 @@ static inline QString testSuiteWarning() str << "\nCannot find the shared-mime-info test suite\nstarting from: " << QDir::toNativeSeparators(QDir::currentPath()) << "\n" "cd " << QDir::toNativeSeparators(QStringLiteral("tests/auto/corelib/mimetypes/qmimedatabase")) << "\n" - "wget http://cgit.freedesktop.org/xdg/shared-mime-info/snapshot/Release-1-0.zip\n" - "unzip Release-1-0.zip\n"; + "wget http://cgit.freedesktop.org/xdg/shared-mime-info/snapshot/Release-1-8.zip\n" + "unzip Release-1-8.zip\n"; #ifdef Q_OS_WIN - str << "mkdir testfiles\nxcopy /s Release-1-0\\tests testfiles\n"; + str << "mkdir testfiles\nxcopy /s Release-1-8 s-m-i\n"; #else - str << "ln -s Release-1-0/tests testfiles\n"; + str << "ln -s Release-1-8 s-m-i\n"; #endif return result; } @@ -154,7 +154,7 @@ void tst_QMimeDatabase::initTestCase() QVERIFY2(copyResourceFile(xmlFileName, xmlTargetFileName, &errorMessage), qPrintable(errorMessage)); #endif - m_testSuite = QFINDTESTDATA("testfiles"); + m_testSuite = QFINDTESTDATA("s-m-i/tests"); if (m_testSuite.isEmpty()) qWarning("%s", qPrintable(testSuiteWarning())); @@ -438,7 +438,7 @@ void tst_QMimeDatabase::icons() QMimeType directory = db.mimeTypeForFile(QString::fromLatin1("/")); QCOMPARE(directory.name(), QString::fromLatin1("inode/directory")); QCOMPARE(directory.iconName(), QString::fromLatin1("inode-directory")); - QCOMPARE(directory.genericIconName(), QString::fromLatin1("inode-x-generic")); + QCOMPARE(directory.genericIconName(), QString::fromLatin1("folder")); QMimeType pub = db.mimeTypeForFile(QString::fromLatin1("foo.epub"), QMimeDatabase::MatchExtension); QCOMPARE(pub.name(), QString::fromLatin1("application/epub+zip")); @@ -510,7 +510,7 @@ void tst_QMimeDatabase::mimeTypeForFileWithContent() mime = db.mimeTypeForFile(txtTempFileName); QCOMPARE(mime.name(), QString::fromLatin1("text/plain")); mime = db.mimeTypeForFile(txtTempFileName, QMimeDatabase::MatchContent); - QCOMPARE(mime.name(), QString::fromLatin1("application/smil")); + QCOMPARE(mime.name(), QString::fromLatin1("application/smil+xml")); } // Test what happens with an incorrect path @@ -607,7 +607,7 @@ void tst_QMimeDatabase::allMimeTypes() QVERIFY(!lst.isEmpty()); // Hardcoding this is the only way to check both providers find the same number of mimetypes. - QCOMPARE(lst.count(), 661); + QCOMPARE(lst.count(), 749); foreach (const QMimeType &mime, lst) { const QString name = mime.name(); @@ -802,7 +802,7 @@ void tst_QMimeDatabase::findByData() // Expected to fail QVERIFY2(resultMimeTypeName != mimeTypeName, qPrintable(resultMimeTypeName)); } else { - QCOMPARE(resultMimeTypeName, mimeTypeName); + QCOMPARE(resultMimeTypeName.toLower(), mimeTypeName.toLower()); } QFileInfo info(filePath); @@ -833,7 +833,7 @@ void tst_QMimeDatabase::findByFile() // Expected to fail QVERIFY2(resultMimeTypeName != mimeTypeName, qPrintable(resultMimeTypeName)); } else { - QCOMPARE(resultMimeTypeName, mimeTypeName); + QCOMPARE(resultMimeTypeName.toLower(), mimeTypeName.toLower()); } // Test QFileInfo overload diff --git a/tests/auto/dbus/qdbusabstractadaptor/myobject.h b/tests/auto/dbus/qdbusabstractadaptor/myobject.h index 1d9b33ccd8..fe3f6f3dd2 100644 --- a/tests/auto/dbus/qdbusabstractadaptor/myobject.h +++ b/tests/auto/dbus/qdbusabstractadaptor/myobject.h @@ -242,10 +242,13 @@ public: { case 4: if4 = new Interface4(this); + Q_FALLTHROUGH(); case 3: if3 = new Interface3(this); + Q_FALLTHROUGH(); case 2: if2 = new Interface2(this); + Q_FALLTHROUGH(); case 1: if1 = new Interface1(this); } @@ -270,4 +273,4 @@ signals: void nonScriptableSignalVoid(); }; -#endif // MYOBJECT_H
\ No newline at end of file +#endif // MYOBJECT_H diff --git a/tests/auto/gui/painting/qpainterpath/tst_qpainterpath.cpp b/tests/auto/gui/painting/qpainterpath/tst_qpainterpath.cpp index 98f63984b3..757e4d16e4 100644 --- a/tests/auto/gui/painting/qpainterpath/tst_qpainterpath.cpp +++ b/tests/auto/gui/painting/qpainterpath/tst_qpainterpath.cpp @@ -99,6 +99,9 @@ private slots: void translate(); void lineWithinBounds(); + + void intersectionEquality(); + void intersectionPointOnEdge(); }; void tst_QPainterPath::cleanupTestCase() @@ -1313,6 +1316,64 @@ void tst_QPainterPath::lineWithinBounds() } } +void tst_QPainterPath::intersectionEquality() +{ + // Test case from QTBUG-17027 + QPainterPath p1; + p1.moveTo(256.0000000000000000, 135.8384137532701743); + p1.lineTo(50.9999999999999715, 107.9999999999999857); + p1.lineTo(233.5425474228109123, 205.3560252921671462); + p1.lineTo(191.7771366877784373, 318.0257074407572304); + p1.lineTo(-48.2616272048215151, 229.0459803737862216); + p1.lineTo(0.0000000000000000, 98.8515898136580801); + p1.lineTo(0.0000000000000000, 0.0000000000000000); + p1.lineTo(256.0000000000000000, 0.0000000000000000); + p1.lineTo(256.0000000000000000, 135.8384137532701743); + + QPainterPath p2; + p2.moveTo(1516.2703263523442274, 306.9795200262722119); + p2.lineTo(-1296.8426224886295585, -75.0331736542986931); + p2.lineTo(-1678.8553161692004778, 2738.0797751866753060); + p2.lineTo(1134.2576326717733081, 3120.0924688672457705); + p2.lineTo(1516.2703263523442274, 306.9795200262722119); + + QPainterPath i1 = p1.intersected(p2); + QPainterPath i2 = p2.intersected(p1); + QVERIFY(i1 == i2 || i1.toReversed() == i2); + + p1 = QPainterPath(); + p1.moveTo(256.00000000, 135.83841375); + p1.lineTo(50.99999999, 107.99999999); + p1.lineTo(233.54254742, 205.35602529); + p1.lineTo(191.77713668, 318.02570744); + p1.lineTo(-48.26162720, 229.04598037); + p1.lineTo(0.00000000, 98.85158981); + p1.lineTo(0.00000000, 0.00000000); + p1.lineTo(256.00000000, 0.00000000); + p1.lineTo(256.00000000, 135.83841375); + + p2 = QPainterPath(); + p2.moveTo(1516.27032635, 306.97952002); + p2.lineTo(-1296.84262248, -75.03317365); + p2.lineTo(-1678.85531616, 2738.07977518); + p2.lineTo(1134.25763267, 3120.09246886); + p2.lineTo(1516.27032635, 306.97952002); + + i1 = p1.intersected(p2); + i2 = p2.intersected(p1); + QVERIFY(i1 == i2 || i1.toReversed() == i2); +} + +void tst_QPainterPath::intersectionPointOnEdge() +{ + // From QTBUG-31551 + QPainterPath p; p.addRoundedRect(-10, 10, 40, 40, 10, 10); + QRectF r(0, 0, 100, 100); + QPainterPath rp; rp.addRect(r); + QVERIFY(!p.intersected(rp).isEmpty()); + QVERIFY(p.intersects(rp)); + QVERIFY(p.intersects(r)); +} QTEST_APPLESS_MAIN(tst_QPainterPath) diff --git a/tests/auto/sql/kernel/qsqlthread/tst_qsqlthread.cpp b/tests/auto/sql/kernel/qsqlthread/tst_qsqlthread.cpp index 540f317935..c21223886a 100644 --- a/tests/auto/sql/kernel/qsqlthread/tst_qsqlthread.cpp +++ b/tests/auto/sql/kernel/qsqlthread/tst_qsqlthread.cpp @@ -398,7 +398,7 @@ void tst_QSqlThread::readWriteThreading() producer.start(); consumer.start(); - QTRY_VERIFY(threadFinishedCount >= 2); + QTRY_VERIFY_WITH_TIMEOUT(threadFinishedCount >= 2, 10000); } // run with n threads in parallel. Change this constant to hammer the poor DB server even more diff --git a/tests/auto/widgets/graphicsview/qgraphicsscene/BLACKLIST b/tests/auto/widgets/graphicsview/qgraphicsscene/BLACKLIST new file mode 100644 index 0000000000..c6f69a51a5 --- /dev/null +++ b/tests/auto/widgets/graphicsview/qgraphicsscene/BLACKLIST @@ -0,0 +1,3 @@ +[removeItem] +# QTBUG-60754, QTest::mouseMove is not always respected, or the CI moves the cursor +osx-10.11 ci |