diff options
Diffstat (limited to 'tests/benchmarks')
12 files changed, 169 insertions, 31 deletions
diff --git a/tests/benchmarks/corelib/text/qstringlist/main.cpp b/tests/benchmarks/corelib/text/qstringlist/main.cpp index ae355a8b89..9f184d0cf5 100644 --- a/tests/benchmarks/corelib/text/qstringlist/main.cpp +++ b/tests/benchmarks/corelib/text/qstringlist/main.cpp @@ -41,6 +41,9 @@ private slots: void join() const; void join_data() const; + void removeDuplicates() const; + void removeDuplicates_data() const; + void split_qlist_qbytearray() const; void split_qlist_qbytearray_data() const { return split_data(); } @@ -116,6 +119,42 @@ void tst_QStringList::join_data() const << QString(); } +void tst_QStringList::removeDuplicates() const +{ + QFETCH(const QStringList, input); + + QBENCHMARK { + auto copy = input; + copy.removeDuplicates(); + } +} + +void tst_QStringList::removeDuplicates_data() const +{ + QTest::addColumn<QStringList>("input"); + + const QStringList s = {"one", "two", "three"}; + + QTest::addRow("empty") << QStringList(); + QTest::addRow("short-dup-0.00") << s; + QTest::addRow("short-dup-0.50") << (s + s); + QTest::addRow("short-dup-0.66") << (s + s + s); + QTest::addRow("short-dup-0.75") << (s + s + s + s); + + const QStringList l = []() { + QStringList result; + const int n = 1000; + result.reserve(n); + for (int i = 0; i < n; ++i) + result.push_back(QString::number(i)); + return result; + }(); + QTest::addRow("long-dup-0.00") << l; + QTest::addRow("long-dup-0.50") << (l + l); + QTest::addRow("long-dup-0.66") << (l + l + l); + QTest::addRow("long-dup-0.75") << (l + l + l + l); +} + void tst_QStringList::split_data() const { QTest::addColumn<QString>("input"); diff --git a/tests/benchmarks/corelib/text/qstringlist/qstringlist.pro b/tests/benchmarks/corelib/text/qstringlist/qstringlist.pro index 5803e7da0e..2e7ae058f7 100644 --- a/tests/benchmarks/corelib/text/qstringlist/qstringlist.pro +++ b/tests/benchmarks/corelib/text/qstringlist/qstringlist.pro @@ -1,5 +1,6 @@ TARGET = tst_bench_qstringlist CONFIG -= debug CONFIG += release +CONFIG += benchmark QT = core testlib SOURCES += main.cpp diff --git a/tests/benchmarks/corelib/tools/qmap/main.cpp b/tests/benchmarks/corelib/tools/qmap/main.cpp index ce415212e4..50cc853df6 100644 --- a/tests/benchmarks/corelib/tools/qmap/main.cpp +++ b/tests/benchmarks/corelib/tools/qmap/main.cpp @@ -59,6 +59,8 @@ private slots: void insertion_string_int2(); void insertion_string_int2_hint(); + + void insertMap(); }; @@ -269,6 +271,19 @@ void tst_QMap::insertion_string_int2_hint() } } +void tst_QMap::insertMap() +{ + QMap<int, int> map; + for (int i = 0; i < 100000; ++i) + map.insert(i * 4, 0); + QMap<int, int> map2; + for (int i = 0; i < 50000; ++i) + map2.insert(i * 7, 0); + QBENCHMARK_ONCE { + map.insert(map2); + } +} + QTEST_MAIN(tst_QMap) #include "main.moc" diff --git a/tests/benchmarks/gui/painting/lancebench/tst_lancebench.cpp b/tests/benchmarks/gui/painting/lancebench/tst_lancebench.cpp index d26ac016b9..bd0889bf4a 100644 --- a/tests/benchmarks/gui/painting/lancebench/tst_lancebench.cpp +++ b/tests/benchmarks/gui/painting/lancebench/tst_lancebench.cpp @@ -305,17 +305,17 @@ void tst_LanceBench::runTestSuite(GraphicsEngine engine, QImage::Format format, void tst_LanceBench::paint(QPaintDevice *device, GraphicsEngine engine, QImage::Format format, const QStringList &script, const QString &filePath) { + PaintCommands pcmd(script, 800, 800, format); + switch (engine) { + case OpenGL: + pcmd.setType(OpenGLBufferType); // version/profile is communicated through the context's format() + break; + case Raster: + pcmd.setType(ImageType); + break; + } + pcmd.setFilePath(filePath); QBENCHMARK { - PaintCommands pcmd(script, 800, 800, format); - switch (engine) { - case OpenGL: - pcmd.setType(OpenGLBufferType); // version/profile is communicated through the context's format() - break; - case Raster: - pcmd.setType(ImageType); - break; - } - pcmd.setFilePath(filePath); QPainter p(device); pcmd.setPainter(&p); pcmd.runCommands(); diff --git a/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp index bcd354ebee..540e197e09 100644 --- a/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -537,7 +537,7 @@ void tst_qnetworkreply::echoPerformance() connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(5); QVERIFY(!QTestEventLoop::instance().timeout()); - QVERIFY(reply->error() == QNetworkReply::NoError); + QVERIFY(reply->networkError() == QNetworkReply::NoError); delete reply; } } @@ -567,7 +567,7 @@ void tst_qnetworkreply::preConnectEncrypted() QPair<QNetworkReply *, qint64> normalResult = runGetRequest(&manager, request); QNetworkReply *normalReply = normalResult.first; QVERIFY(!QTestEventLoop::instance().timeout()); - QVERIFY(normalReply->error() == QNetworkReply::NoError); + QVERIFY(normalReply->networkError() == QNetworkReply::NoError); qint64 normalElapsed = normalResult.second; // clear all caches again @@ -591,7 +591,7 @@ void tst_qnetworkreply::preConnectEncrypted() QPair<QNetworkReply *, qint64> preConnectResult = runGetRequest(&manager, request); QNetworkReply *preConnectReply = normalResult.first; QVERIFY(!QTestEventLoop::instance().timeout()); - QVERIFY(preConnectReply->error() == QNetworkReply::NoError); + QVERIFY(preConnectReply->networkError() == QNetworkReply::NoError); bool spdyWasUsed = preConnectReply->attribute(QNetworkRequest::SpdyWasUsedAttribute).toBool(); QCOMPARE(spdyEnabled, spdyWasUsed); qint64 preConnectElapsed = preConnectResult.second; @@ -664,7 +664,7 @@ void tst_qnetworkreply::uploadPerformance() QTimer::singleShot(5000, &generator, SLOT(stop())); QTestEventLoop::instance().enterLoop(30); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QVERIFY(!QTestEventLoop::instance().timeout()); } @@ -690,7 +690,7 @@ void tst_qnetworkreply::httpUploadPerformance() reader.exit(); reader.wait(); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QVERIFY(!QTestEventLoop::instance().timeout()); qDebug() << "tst_QNetworkReply::httpUploadPerformance" << elapsed << "msec, " @@ -751,7 +751,7 @@ void tst_qnetworkreply::httpDownloadPerformance() QTime time; time.start(); QTestEventLoop::instance().enterLoop(40); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QVERIFY(!QTestEventLoop::instance().timeout()); qint64 elapsed = time.elapsed(); @@ -833,7 +833,7 @@ void tst_qnetworkreply::httpDownloadPerformanceDownloadBuffer() QBENCHMARK_ONCE { QTestEventLoop::instance().enterLoop(40); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QVERIFY(reply->isFinished()); QVERIFY(!QTestEventLoop::instance().timeout()); } @@ -868,7 +868,7 @@ public slots: } QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender()); if (reply) { - QVERIFY(reply->error() == QNetworkReply::NoError); + QVERIFY(reply->networkError() == QNetworkReply::NoError); qDebug() << "time =" << timeOneRequest.elapsed() << "ms"; timeList.append(timeOneRequest.elapsed()); } @@ -923,7 +923,7 @@ void tst_qnetworkreply::runHttpsUploadRequest(const QByteArray &data, const QNet connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); QTestEventLoop::instance().enterLoop(15); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); reply->deleteLater(); } @@ -963,7 +963,7 @@ void tst_qnetworkreply::preConnect() QPair<QNetworkReply *, qint64> normalResult = runGetRequest(&manager, request); QNetworkReply *normalReply = normalResult.first; QVERIFY(!QTestEventLoop::instance().timeout()); - QVERIFY(normalReply->error() == QNetworkReply::NoError); + QVERIFY(normalReply->networkError() == QNetworkReply::NoError); qint64 normalElapsed = normalResult.second; // clear all caches again @@ -983,7 +983,7 @@ void tst_qnetworkreply::preConnect() QPair<QNetworkReply *, qint64> preConnectResult = runGetRequest(&manager, request); QNetworkReply *preConnectReply = normalResult.first; QVERIFY(!QTestEventLoop::instance().timeout()); - QVERIFY(preConnectReply->error() == QNetworkReply::NoError); + QVERIFY(preConnectReply->networkError() == QNetworkReply::NoError); qint64 preConnectElapsed = preConnectResult.second; qDebug() << request.url().toString() << "full request:" << normalElapsed << "ms, pre-connect request:" << preConnectElapsed << "ms, difference:" diff --git a/tests/benchmarks/network/socket/qudpsocket/qudpsocket.pro b/tests/benchmarks/network/socket/qudpsocket/qudpsocket.pro new file mode 100644 index 0000000000..8df5340e2e --- /dev/null +++ b/tests/benchmarks/network/socket/qudpsocket/qudpsocket.pro @@ -0,0 +1,8 @@ +TEMPLATE = app +TARGET = tst_bench_qudpsocket + +QT = network testlib + +CONFIG += release + +SOURCES += tst_qudpsocket.cpp diff --git a/tests/benchmarks/network/socket/qudpsocket/tst_qudpsocket.cpp b/tests/benchmarks/network/socket/qudpsocket/tst_qudpsocket.cpp new file mode 100644 index 0000000000..e6dbbf9dfa --- /dev/null +++ b/tests/benchmarks/network/socket/qudpsocket/tst_qudpsocket.cpp @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QtTest> +#include <QtCore/qglobal.h> +#include <QtCore/qcoreapplication.h> +#include <QtNetwork/qudpsocket.h> +#include <QtNetwork/qnetworkdatagram.h> + +class tst_QUdpSocket : public QObject +{ + Q_OBJECT +public: + tst_QUdpSocket(); + +private slots: + void pendingDatagramSize_data(); + void pendingDatagramSize(); +}; + +tst_QUdpSocket::tst_QUdpSocket() +{ +} + +void tst_QUdpSocket::pendingDatagramSize_data() +{ + QTest::addColumn<int>("size"); + for (int value : {52, 1024, 2049, 4500, 4098, 8192, 12000, 25000, 32 * 1024, 63 * 1024}) + QTest::addRow("%d", value) << value; +} + +void tst_QUdpSocket::pendingDatagramSize() +{ + QFETCH(int, size); + QUdpSocket socket; + socket.bind(); + + QNetworkDatagram datagram; + datagram.setData(QByteArray(size, 'a')); + datagram.setDestination(QHostAddress::SpecialAddress::LocalHost, socket.localPort()); + + auto sent = socket.writeDatagram(datagram); + QCOMPARE(sent, size); + + auto res = QTest::qWaitFor([&socket]() { return socket.hasPendingDatagrams(); }, 5000); + QVERIFY(res); + + QBENCHMARK { + auto pendingSize = socket.pendingDatagramSize(); + Q_UNUSED(pendingSize); + } +} + +QTEST_MAIN(tst_QUdpSocket) +#include "tst_qudpsocket.moc" diff --git a/tests/benchmarks/network/socket/socket.pro b/tests/benchmarks/network/socket/socket.pro index 2d676a2c6e..d428a4d973 100644 --- a/tests/benchmarks/network/socket/socket.pro +++ b/tests/benchmarks/network/socket/socket.pro @@ -1,3 +1,4 @@ TEMPLATE = subdirs SUBDIRS = \ - qtcpserver + qtcpserver \ + qudpsocket diff --git a/tests/benchmarks/sql/kernel/qsqlquery/main.cpp b/tests/benchmarks/sql/kernel/qsqlquery/main.cpp index c5ca6ed669..33875f1837 100644 --- a/tests/benchmarks/sql/kernel/qsqlquery/main.cpp +++ b/tests/benchmarks/sql/kernel/qsqlquery/main.cpp @@ -238,9 +238,6 @@ void tst_QSqlQuery::benchmark() QFETCH( QString, dbName ); QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); - if ( tst_Databases::getMySqlVersion( db ).section( QChar('.'), 0, 0 ).toInt()<5 ) - QSKIP( "Test requires MySQL >= 5.0"); - QSqlQuery q(db); const QString tableName(qTableName("benchmark", __FILE__, db)); @@ -266,9 +263,6 @@ void tst_QSqlQuery::benchmarkSelectPrepared() QFETCH( QString, dbName ); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); - if (tst_Databases::getMySqlVersion(db).section(QChar('.'), 0, 0).toInt() < 5) - QSKIP("Test requires MySQL >= 5.0"); - QSqlQuery q(db); const QString tableName(qTableName("benchmark", __FILE__, db)); diff --git a/tests/benchmarks/widgets/graphicsview/functional/GraphicsViewBenchmark/widgets/gvbwidget.h b/tests/benchmarks/widgets/graphicsview/functional/GraphicsViewBenchmark/widgets/gvbwidget.h index 7e247b63a4..1212703ddb 100644 --- a/tests/benchmarks/widgets/graphicsview/functional/GraphicsViewBenchmark/widgets/gvbwidget.h +++ b/tests/benchmarks/widgets/graphicsview/functional/GraphicsViewBenchmark/widgets/gvbwidget.h @@ -37,7 +37,7 @@ class GvbWidget : public QGraphicsWidget public: - GvbWidget(QGraphicsItem * parent = 0, Qt::WindowFlags wFlags = 0); + GvbWidget(QGraphicsItem * parent = 0, Qt::WindowFlags wFlags = { }); ~GvbWidget(); virtual void keyPressEvent(QKeyEvent *event); }; diff --git a/tests/benchmarks/widgets/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp b/tests/benchmarks/widgets/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp index caf5455a80..bd7899e671 100644 --- a/tests/benchmarks/widgets/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp +++ b/tests/benchmarks/widgets/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp @@ -47,7 +47,7 @@ private slots: class RectWidget : public QGraphicsWidget { public: - RectWidget(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0) : QGraphicsWidget(parent, wFlags), setGeometryCalls(0) {} + RectWidget(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = { }) : QGraphicsWidget(parent, wFlags), setGeometryCalls(0) {} void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { diff --git a/tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/chipTest/view.cpp b/tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/chipTest/view.cpp index 6e0ac445a6..60e8dd0032 100644 --- a/tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/chipTest/view.cpp +++ b/tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/chipTest/view.cpp @@ -187,7 +187,7 @@ void View::setupMatrix() { qreal scale = qPow(qreal(2), (zoomSlider->value() - 250) / qreal(50)); - QMatrix matrix; + QTransform matrix; matrix.scale(scale, scale); matrix.rotate(rotateSlider->value()); |