diff options
Diffstat (limited to 'tests/benchmarks/corelib/kernel/qcoreapplication')
-rw-r--r-- | tests/benchmarks/corelib/kernel/qcoreapplication/CMakeLists.txt | 5 | ||||
-rw-r--r-- | tests/benchmarks/corelib/kernel/qcoreapplication/tst_bench_qcoreapplication.cpp | 55 |
2 files changed, 32 insertions, 28 deletions
diff --git a/tests/benchmarks/corelib/kernel/qcoreapplication/CMakeLists.txt b/tests/benchmarks/corelib/kernel/qcoreapplication/CMakeLists.txt index 0872bccf60..1a553199d3 100644 --- a/tests/benchmarks/corelib/kernel/qcoreapplication/CMakeLists.txt +++ b/tests/benchmarks/corelib/kernel/qcoreapplication/CMakeLists.txt @@ -1,3 +1,6 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + ##################################################################### ## tst_bench_qcoreapplication Binary: ##################################################################### @@ -5,6 +8,6 @@ qt_internal_add_benchmark(tst_bench_qcoreapplication SOURCES tst_bench_qcoreapplication.cpp - PUBLIC_LIBRARIES + LIBRARIES Qt::Test ) diff --git a/tests/benchmarks/corelib/kernel/qcoreapplication/tst_bench_qcoreapplication.cpp b/tests/benchmarks/corelib/kernel/qcoreapplication/tst_bench_qcoreapplication.cpp index 86047a0b07..d2ff489784 100644 --- a/tests/benchmarks/corelib/kernel/qcoreapplication/tst_bench_qcoreapplication.cpp +++ b/tests/benchmarks/corelib/kernel/qcoreapplication/tst_bench_qcoreapplication.cpp @@ -1,30 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Robin Burchell <robin+qt@viroteck.net> -** 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$ -** -****************************************************************************/ +// Copyright (C) 2011 Robin Burchell <robin+qt@viroteck.net> +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include <QtCore> #include <qtest.h> #include <qcoreapplication.h> @@ -35,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() @@ -64,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" |