summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks
diff options
context:
space:
mode:
Diffstat (limited to 'tests/benchmarks')
-rw-r--r--tests/benchmarks/corelib/text/qstringlist/main.cpp39
-rw-r--r--tests/benchmarks/corelib/text/qstringlist/qstringlist.pro1
-rw-r--r--tests/benchmarks/corelib/tools/qmap/main.cpp15
-rw-r--r--tests/benchmarks/gui/painting/lancebench/tst_lancebench.cpp20
-rw-r--r--tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp22
-rw-r--r--tests/benchmarks/network/socket/qudpsocket/qudpsocket.pro8
-rw-r--r--tests/benchmarks/network/socket/qudpsocket/tst_qudpsocket.cpp80
-rw-r--r--tests/benchmarks/network/socket/socket.pro3
-rw-r--r--tests/benchmarks/sql/kernel/qsqlquery/main.cpp6
-rw-r--r--tests/benchmarks/widgets/graphicsview/functional/GraphicsViewBenchmark/widgets/gvbwidget.h2
-rw-r--r--tests/benchmarks/widgets/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp2
-rw-r--r--tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/chipTest/view.cpp2
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());