summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks/corelib/kernel/qcoreapplication/tst_bench_qcoreapplication.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/benchmarks/corelib/kernel/qcoreapplication/tst_bench_qcoreapplication.cpp')
-rw-r--r--tests/benchmarks/corelib/kernel/qcoreapplication/tst_bench_qcoreapplication.cpp28
1 files changed, 27 insertions, 1 deletions
diff --git a/tests/benchmarks/corelib/kernel/qcoreapplication/tst_bench_qcoreapplication.cpp b/tests/benchmarks/corelib/kernel/qcoreapplication/tst_bench_qcoreapplication.cpp
index 044acee366..d2ff489784 100644
--- a/tests/benchmarks/corelib/kernel/qcoreapplication/tst_bench_qcoreapplication.cpp
+++ b/tests/benchmarks/corelib/kernel/qcoreapplication/tst_bench_qcoreapplication.cpp
@@ -1,5 +1,5 @@
// Copyright (C) 2011 Robin Burchell <robin+qt@viroteck.net>
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#include <QtCore>
#include <qtest.h>
#include <qcoreapplication.h>
@@ -10,6 +10,9 @@ Q_OBJECT
private slots:
void event_posting_benchmark_data();
void event_posting_benchmark();
+
+ void event_posting_multiple_objects_benchmark_data();
+ void event_posting_multiple_objects_benchmark();
};
void tst_QCoreApplication::event_posting_benchmark_data()
@@ -39,6 +42,29 @@ void tst_QCoreApplication::event_posting_benchmark()
}
}
+void tst_QCoreApplication::event_posting_multiple_objects_benchmark_data()
+{
+ event_posting_benchmark_data();
+}
+
+void tst_QCoreApplication::event_posting_multiple_objects_benchmark()
+{
+ QFETCH(int, size);
+
+ QObject objects[15]; // The size of the array has not been chosen through any meaningful means
+
+ QRandomGenerator gen;
+
+ // benchmark posting & sending events
+ QBENCHMARK {
+ for (int i = 0; i < size; ++i) {
+ QCoreApplication::postEvent(&objects[gen.bounded(0, int(std::size(objects)))],
+ new QTimerEvent(i % 10));
+ }
+ QCoreApplication::sendPostedEvents();
+ }
+}
+
QTEST_MAIN(tst_QCoreApplication)
#include "tst_bench_qcoreapplication.moc"