diff --git a/tests/benchmarks/testlib/tostring/tst_tostring.cpp b/tests/benchmarks/testlib/tostring/tst_tostring.cpp index 913a0337c60..c72ec220b1f 100644 --- a/tests/benchmarks/testlib/tostring/tst_tostring.cpp +++ b/tests/benchmarks/testlib/tostring/tst_tostring.cpp @@ -25,6 +25,36 @@ private slots: void quint64Tst() { numeric(); } void qint64Tst_data() { numeric_data(); } void qint64Tst() { numeric(); } + +private: + template void compare(); + template void compare_eq(); + +private slots: + void floatCompare_data() { numeric_data(); } + void floatCompare() { compare(); } + void floatCompareEq_data() { numeric_data(); } + void floatCompareEq() { compare_eq(); } + void doubleCompare_data() { numeric_data(); } + void doubleCompare() { compare(); } + void doubleCompareEq_data() { numeric_data(); } + void doubleCompareEq() { compare_eq(); } + void intCompare_data() { numeric_data(); } + void intCompare() { compare(); } + void intCompareEq_data() { numeric_data(); } + void intCompareEq() { compare_eq(); } + void unsignedCompare_data() { numeric_data(); } + void unsignedCompare() { compare(); } + void unsignedCompareEq_data() { numeric_data(); } + void unsignedCompareEq() { compare_eq(); } + void quint64Compare_data() { numeric_data(); } + void quint64Compare() { compare(); } + void quint64CompareEq_data() { numeric_data(); } + void quint64CompareEq() { compare_eq(); } + void qint64Compare_data() { numeric_data(); } + void qint64Compare() { compare(); } + void qint64CompareEq_data() { numeric_data(); } + void qint64CompareEq() { compare_eq(); } }; template @@ -75,5 +105,30 @@ void tst_toString::numeric() } } +template +void tst_toString::compare() +{ + QFETCH(T, datum); + + QBENCHMARK { + QCOMPARE(datum, datum); + } +} + +template +void tst_toString::compare_eq() +{ + QFETCH(T, datum); + + if constexpr (std::numeric_limits::has_quiet_NaN) { + if (qIsNaN(datum)) + QSKIP("Unlike QCOMPARE, QCOMPARE_EQ doesn't handle NaN specially"); + } + + QBENCHMARK { + QCOMPARE_EQ(datum, datum); + } +} + QTEST_MAIN(tst_toString) #include "tst_tostring.moc"