diff options
author | Liang Qi <liang.qi@qt.io> | 2019-02-08 09:28:00 +0100 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2019-02-08 12:31:02 +0100 |
commit | fbfacd33be482fa3cf0aa5cffaf7006d538a2f92 (patch) | |
tree | 92da72786b3740e37004623612c4fc1c9640d30f /tests/benchmarks | |
parent | c1f4286a5cbc1794fe7be5bdbbd6a0bf29ef84d4 (diff) | |
parent | 74e04d6ace7aa949db97ae2e46c38a4dc0d4d36a (diff) |
Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
src/android/templates/AndroidManifest.xml
src/network/ssl/qsslsocket_mac.cpp
src/widgets/styles/qstylesheetstyle.cpp
tests/auto/corelib/kernel/qtimer/BLACKLIST
tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
tests/auto/testlib/selftests/expected_blacklisted.lightxml
tests/auto/testlib/selftests/expected_blacklisted.tap
tests/auto/testlib/selftests/expected_blacklisted.teamcity
tests/auto/testlib/selftests/expected_blacklisted.txt
tests/auto/testlib/selftests/expected_blacklisted.xml
tests/auto/testlib/selftests/expected_blacklisted.xunitxml
tests/auto/testlib/selftests/expected_float.tap
tests/auto/testlib/selftests/expected_float.teamcity
tests/auto/testlib/selftests/expected_float.txt
tests/auto/testlib/selftests/expected_float.xunitxml
Done-With: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Done-With: Edward Welbourne <edward.welbourne@qt.io>
Done-With: Timur Pocheptsov <timur.pocheptsov@qt.io>
Change-Id: If93cc432a56ae3ac1b6533d0028e4dc497415a52
Diffstat (limited to 'tests/benchmarks')
-rw-r--r-- | tests/benchmarks/benchmarks.pro | 5 | ||||
-rw-r--r-- | tests/benchmarks/testlib/testlib.pro | 3 | ||||
-rw-r--r-- | tests/benchmarks/testlib/tostring/tostring.pro | 4 | ||||
-rw-r--r-- | tests/benchmarks/testlib/tostring/tst_tostring.cpp | 103 |
4 files changed, 113 insertions, 2 deletions
diff --git a/tests/benchmarks/benchmarks.pro b/tests/benchmarks/benchmarks.pro index 9e288f7aa2..a98b9a62c6 100644 --- a/tests/benchmarks/benchmarks.pro +++ b/tests/benchmarks/benchmarks.pro @@ -3,10 +3,11 @@ SUBDIRS = \ corelib \ sql \ -# removed-by-refactor qtHaveModule(opengl): SUBDIRS += opengl qtHaveModule(dbus): SUBDIRS += dbus -qtHaveModule(network): SUBDIRS += network qtHaveModule(gui): SUBDIRS += gui +qtHaveModule(network): SUBDIRS += network +# removed-by-refactor qtHaveModule(opengl): SUBDIRS += opengl +qtHaveModule(testlib): SUBDIRS += testlib qtHaveModule(widgets): SUBDIRS += widgets check-trusted.CONFIG += recursive diff --git a/tests/benchmarks/testlib/testlib.pro b/tests/benchmarks/testlib/testlib.pro new file mode 100644 index 0000000000..c325f3de9a --- /dev/null +++ b/tests/benchmarks/testlib/testlib.pro @@ -0,0 +1,3 @@ +TEMPLATE = subdirs +SUBDIRS = \ + tostring \ diff --git a/tests/benchmarks/testlib/tostring/tostring.pro b/tests/benchmarks/testlib/tostring/tostring.pro new file mode 100644 index 0000000000..a5aebe1c81 --- /dev/null +++ b/tests/benchmarks/testlib/tostring/tostring.pro @@ -0,0 +1,4 @@ +TARGET = tst_bench_tostring +QT = core testlib + +SOURCES += tst_tostring.cpp diff --git a/tests/benchmarks/testlib/tostring/tst_tostring.cpp b/tests/benchmarks/testlib/tostring/tst_tostring.cpp new file mode 100644 index 0000000000..1731929f98 --- /dev/null +++ b/tests/benchmarks/testlib/tostring/tst_tostring.cpp @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** 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/qmath.h> // pi, e + +// Tests for QTest::toString +class tst_toString : public QObject +{ + Q_OBJECT + + template <typename T> void numeric_data(); + template <typename T> void numeric(); + +private slots: + void floatTst_data() { numeric_data<float>(); } + void floatTst() { numeric<float>(); } + void doubleTst_data() { numeric_data<double>(); } + void doubleTst() { numeric<double>(); } + void intTst_data() { numeric_data<int>(); } + void intTst() { numeric<int>(); } + void unsignedTst_data() { numeric_data<unsigned>(); } + void unsignedTst() { numeric<unsigned>(); } + void quint64Tst_data() { numeric_data<quint64>(); } + void quint64Tst() { numeric<quint64>(); } + void qint64Tst_data() { numeric_data<qint64>(); } + void qint64Tst() { numeric<qint64>(); } +}; + +template <typename T> +void tst_toString::numeric_data() +{ + QTest::addColumn<T>("datum"); + const bool floaty = std::is_floating_point<T>::value; + + QTest::newRow("zero") << T(0); + QTest::newRow("one") << T(1); + if (floaty) { + QTest::newRow("pi") << T(M_PI); + QTest::newRow("e") << T(M_E); + + // Stress canonicalisation of leading zeros on exponents: + QTest::newRow("milli") << T(1e-3); + QTest::newRow("micro") << T(1e-6); + QTest::newRow("mu0") << T(.4e-6 * M_PI); // Henry/metre + QTest::newRow("Planck") << T(662.606876e-36); // Joule.second/turn + } + QTest::newRow("2e9") << T(2000000000); + QTest::newRow("c.s/m") << T(299792458); + QTest::newRow("Avogadro") << T(6.022045e+23); // things/mol (.996 << 79, so ints overflow to max) + + QTest::newRow("lowest") << std::numeric_limits<T>::lowest(); + QTest::newRow("max") << std::numeric_limits<T>::max(); + if (floaty) { + QTest::newRow("min") << std::numeric_limits<T>::min(); + + if (std::numeric_limits<T>::has_infinity) { + const T uge = std::numeric_limits<T>::infinity(); + QTest::newRow("inf") << uge; + QTest::newRow("-inf") << -uge; + } + if (std::numeric_limits<T>::has_quiet_NaN) + QTest::newRow("nan") << std::numeric_limits<T>::quiet_NaN(); + } +} + +template <typename T> +void tst_toString::numeric() +{ + QFETCH(T, datum); + + QBENCHMARK { + QTest::toString<T>(datum); + } +} + +QTEST_MAIN(tst_toString) +#include "tst_tostring.moc" |