summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/benchmarks/gui/image/qimagereader/CMakeLists.txt1
-rw-r--r--tests/benchmarks/gui/image/qimagereader/tst_bench_qimagereader.cpp29
2 files changed, 30 insertions, 0 deletions
diff --git a/tests/benchmarks/gui/image/qimagereader/CMakeLists.txt b/tests/benchmarks/gui/image/qimagereader/CMakeLists.txt
index 890e4f7f29..ba3c2a7ec4 100644
--- a/tests/benchmarks/gui/image/qimagereader/CMakeLists.txt
+++ b/tests/benchmarks/gui/image/qimagereader/CMakeLists.txt
@@ -9,6 +9,7 @@ qt_internal_add_benchmark(tst_bench_qimagereader
SOURCES
tst_bench_qimagereader.cpp
LIBRARIES
+ Qt::CorePrivate
Qt::Gui
Qt::Test
)
diff --git a/tests/benchmarks/gui/image/qimagereader/tst_bench_qimagereader.cpp b/tests/benchmarks/gui/image/qimagereader/tst_bench_qimagereader.cpp
index 6362e16b29..dab38244a7 100644
--- a/tests/benchmarks/gui/image/qimagereader/tst_bench_qimagereader.cpp
+++ b/tests/benchmarks/gui/image/qimagereader/tst_bench_qimagereader.cpp
@@ -11,6 +11,7 @@
#include <QImageWriter>
#include <QPixmap>
+#include <QtCore/private/qfactoryloader_p.h>
#include <QSet>
#include <QTimer>
@@ -30,6 +31,9 @@ public slots:
void initTestCase();
private slots:
+ void rawFactoryLoader_keyMap();
+ void rawFactoryLoader_instance();
+
void readImage_data();
void readImage();
@@ -45,6 +49,7 @@ private slots:
private:
QList< QPair<QString, QByteArray> > images; // filename, format
QString prefix;
+ QFactoryLoader m_loader{QImageIOHandlerFactoryInterface_iid, "/imageformats"};
};
tst_bench_QImageReader::tst_bench_QImageReader()
@@ -81,6 +86,30 @@ void tst_bench_QImageReader::initTestCase()
QFAIL("Can't find images directory!");
}
+void tst_bench_QImageReader::rawFactoryLoader_keyMap()
+{
+ if (m_loader.keyMap().isEmpty())
+ QSKIP("No image plugins found.");
+
+ QBENCHMARK {
+ [[maybe_unused]] auto r = m_loader.keyMap();
+ }
+}
+
+void tst_bench_QImageReader::rawFactoryLoader_instance()
+{
+ if (m_loader.keyMap().isEmpty())
+ QSKIP("No image plugins found.");
+
+ const auto numInstances = m_loader.keyMap().uniqueKeys().size();
+
+ QBENCHMARK {
+ for (int i = 0; i < numInstances; ++i)
+ delete m_loader.instance(i);
+ }
+}
+
+
void tst_bench_QImageReader::readImage_data()
{
QTest::addColumn<QString>("fileName");