diff options
Diffstat (limited to 'src/testlib')
-rw-r--r-- | src/testlib/qtestcase.cpp | 18 | ||||
-rw-r--r-- | src/testlib/qtestcase.h | 5 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index 1c3292ead9..a9e2cc5ea3 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -52,6 +52,7 @@ #include <QtCore/qfileinfo.h> #include <QtCore/qdir.h> #include <QtCore/qdebug.h> +#include <QtCore/qfloat16.h> #include <QtCore/qlibraryinfo.h> #include <QtCore/private/qtools_p.h> #include <QtCore/qdiriterator.h> @@ -2483,6 +2484,16 @@ bool QTest::compare_helper(bool success, const char *failureMsg, return QTestResult::compare(success, failureMsg, val1, val2, actual, expected, file, line); } +/*! \fn bool QTest::qCompare(const qfloat16 &t1, const qfloat16 &t2, const char *actual, const char *expected, const char *file, int line) + \internal + */ +bool QTest::qCompare(qfloat16 const &t1, qfloat16 const &t2, const char *actual, const char *expected, + const char *file, int line) +{ + return compare_helper(qFuzzyCompare(t1, t2), "Compared qfloat16s are not the same (fuzzy compare)", + toString(t1), toString(t2), actual, expected, file, line); +} + /*! \fn bool QTest::qCompare(const float &t1, const float &t2, const char *actual, const char *expected, const char *file, int line) \internal */ @@ -2547,6 +2558,13 @@ TO_STRING_IMPL(unsigned char, %hhu) TO_STRING_IMPL(float, %g) TO_STRING_IMPL(double, %lg) +template <> Q_TESTLIB_EXPORT char *QTest::toString<qfloat16>(const qfloat16 &t) +{ + char *msg = new char[16]; + qsnprintf(msg, 16, "%.3g", static_cast<float>(t)); + return msg; +} + template <> Q_TESTLIB_EXPORT char *QTest::toString<char>(const char &t) { unsigned char c = static_cast<unsigned char>(t); diff --git a/src/testlib/qtestcase.h b/src/testlib/qtestcase.h index a6f1711230..39364df8ef 100644 --- a/src/testlib/qtestcase.h +++ b/src/testlib/qtestcase.h @@ -57,6 +57,7 @@ QT_BEGIN_NAMESPACE +class qfloat16; class QRegularExpression; #define QVERIFY(statement) \ @@ -361,6 +362,9 @@ namespace QTest } #endif + Q_TESTLIB_EXPORT bool qCompare(qfloat16 const &t1, qfloat16 const &t2, + const char *actual, const char *expected, const char *file, int line); + Q_TESTLIB_EXPORT bool qCompare(float const &t1, float const &t2, const char *actual, const char *expected, const char *file, int line); @@ -405,6 +409,7 @@ namespace QTest QTEST_COMPARE_DECL(float) QTEST_COMPARE_DECL(double) + QTEST_COMPARE_DECL(qfloat16) QTEST_COMPARE_DECL(char) QTEST_COMPARE_DECL(signed char) QTEST_COMPARE_DECL(unsigned char) |