diff options
Diffstat (limited to 'src/testlib/qtestcase.h')
-rw-r--r-- | src/testlib/qtestcase.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/testlib/qtestcase.h b/src/testlib/qtestcase.h index 54669c11de..f6891dc941 100644 --- a/src/testlib/qtestcase.h +++ b/src/testlib/qtestcase.h @@ -253,6 +253,22 @@ namespace QTest return nullptr; } + template<typename F> // Output QFlags of registered enumerations + inline typename std::enable_if<QtPrivate::IsQEnumHelper<F>::Value, char*>::type toString(QFlags<F> f) + { + const QMetaEnum me = QMetaEnum::fromType<F>(); + return qstrdup(me.valueToKeys(int(f)).constData()); + } + + template <typename F> // Fallback: Output hex value + inline typename std::enable_if<!QtPrivate::IsQEnumHelper<F>::Value, char*>::type toString(QFlags<F> f) + { + const size_t space = 3 + 2 * sizeof(unsigned); // 2 for 0x, two hex digits per byte, 1 for '\0' + char *msg = new char[space]; + qsnprintf(msg, space, "0x%x", unsigned(f)); + return msg; + } + } // namespace Internal template<typename T> @@ -267,6 +283,9 @@ namespace QTest template <typename T1, typename T2> inline char *toString(const std::pair<T1, T2> &pair); + template <class... Types> + inline char *toString(const std::tuple<Types...> &tuple); + Q_TESTLIB_EXPORT char *toHexRepresentation(const char *ba, int length); Q_TESTLIB_EXPORT char *toPrettyCString(const char *unicode, int length); Q_TESTLIB_EXPORT char *toPrettyUnicode(QStringView string); @@ -372,6 +391,8 @@ namespace QTest Q_TESTLIB_EXPORT bool compare_string_helper(const char *t1, const char *t2, const char *actual, const char *expected, const char *file, int line); + Q_TESTLIB_EXPORT char *formatString(const char *prefix, const char *suffix, size_t numArguments, ...); + #ifndef Q_QDOC QTEST_COMPARE_DECL(short) QTEST_COMPARE_DECL(ushort) |