QtBase  v6.3.1
Namespaces | Macros | Functions
qtestcase.h File Reference
#include <QtTest/qttestglobal.h>
#include <QtCore/qstring.h>
#include <QtCore/qnamespace.h>
#include <QtCore/qmetatype.h>
#include <QtCore/qmetaobject.h>
#include <QtCore/qsharedpointer.h>
#include <QtCore/qtemporarydir.h>
#include <QtCore/qthread.h>
#include <string.h>
#include <exception>
Include dependency graph for qtestcase.h:

Go to the source code of this file.

Namespaces

 QTest
 [15]
 
 QTest::Internal
 

Macros

#define QVERIFY(statement)
 
#define QFAIL(message)
 
#define QVERIFY2(statement, description)
 
#define QCOMPARE(actual, expected)
 
#define QVERIFY_THROWS_NO_EXCEPTION(...)
 
#define QVERIFY_THROWS_EXCEPTION(exceptiontype, ...)
 
#define QTRY_LOOP_IMPL(expr, timeoutValue, step)
 
#define QTRY_TIMEOUT_DEBUG_IMPL(expr, timeoutValue, step)
 
#define QTRY_IMPL(expr, timeout)
 
#define QTRY_VERIFY_WITH_TIMEOUT(expr, timeout)
 
#define QTRY_VERIFY(expr)   QTRY_VERIFY_WITH_TIMEOUT((expr), 5000)
 
#define QTRY_VERIFY2_WITH_TIMEOUT(expr, messageExpression, timeout)
 
#define QTRY_VERIFY2(expr, messageExpression)   QTRY_VERIFY2_WITH_TIMEOUT((expr), (messageExpression), 5000)
 
#define QTRY_COMPARE_WITH_TIMEOUT(expr, expected, timeout)
 
#define QTRY_COMPARE(expr, expected)   QTRY_COMPARE_WITH_TIMEOUT((expr), expected, 5000)
 
#define QSKIP_INTERNAL(statement)
 
#define QSKIP(statement, ...)   QSKIP_INTERNAL(statement)
 
#define QEXPECT_FAIL(dataIndex, comment, mode)
 
#define QFETCH(Type, name)    Type name = *static_cast<Type *>(QTest::qData(#name, ::qMetaTypeId<typename std::remove_cv<Type >::type>()))
 
#define QFETCH_GLOBAL(Type, name)    Type name = *static_cast<Type *>(QTest::qGlobalData(#name, ::qMetaTypeId<typename std::remove_cv<Type >::type>()))
 
#define QTEST(actual, testElement)
 
#define QFINDTESTDATA(basepath)    QTest::qFindTestData(basepath, __FILE__, __LINE__)
 
#define QEXTRACTTESTDATA(resourcePath)    QTest::qExtractTestData(resourcePath)
 
#define QTEST_COMPARE_DECL(KLASS)    template<> Q_TESTLIB_EXPORT char *toString<KLASS >(const KLASS &);
 
#define QWARN(msg)   QTest::qWarn(static_cast<const char *>(msg), __FILE__, __LINE__)
 

Functions

Q_TESTLIB_EXPORT QString QTest::Internal::formatTryTimeoutDebugMessage (q_no_char8_t::QUtf8StringView expr, int timeout, int actual)
 
template<typename T >
std::enable_if< QtPrivate::IsQEnumHelper< T >::Value, char * >::type QTest::Internal::toString (T e)
 
template<typename T >
std::enable_if<!QtPrivate::IsQEnumHelper< T >::Value &&std::is_enum_v< T >, char * >::type QTest::Internal::toString (const T &e)
 
template<typename T >
std::enable_if<!QtPrivate::IsQEnumHelper< T >::Value &&!std::is_enum_v< T >, char * >::type QTest::Internal::toString (const T &)
 
template<typename F >
std::enable_if< QtPrivate::IsQEnumHelper< F >::Value, char * >::type QTest::Internal::toString (QFlags< F > f)
 
template<typename F >
std::enable_if<!QtPrivate::IsQEnumHelper< F >::Value, char * >::type QTest::Internal::toString (QFlags< F > f)
 
template<typename T >
char * QTest::toString (const T &t)
 
template<typename T1 , typename T2 >
char * QTest::toString (const QPair< T1, T2 > &pair)
 
template<typename T1 , typename T2 >
char * QTest::toString (const std::pair< T1, T2 > &pair)
 
template<class... Types>
char * QTest::toString (const std::tuple< Types... > &tuple)
 
char * QTest::toHexRepresentation (const char *ba, int length)
 
char * QTest::toPrettyCString (const char *p, int length)
 
char * QTest::toPrettyUnicode (QStringView string)
 
Q_TESTLIB_EXPORT char * QTest::toString (const char *)
 
Q_TESTLIB_EXPORT char * QTest::toString (const volatile void *)
 
Q_TESTLIB_EXPORT char * QTest::toString (const void *)
 
Q_TESTLIB_EXPORT char * QTest::toString (const volatile QObject *)
 
Q_TESTLIB_EXPORT void QTest::qInit (QObject *testObject, int argc=0, char **argv=nullptr)
 
Q_TESTLIB_EXPORT int QTest::qRun ()
 
Q_TESTLIB_EXPORT void QTest::qCleanup ()
 
Q_TESTLIB_EXPORT int QTest::qExec (QObject *testObject, int argc=0, char **argv=nullptr)
 
Q_TESTLIB_EXPORT int QTest::qExec (QObject *testObject, const QStringList &arguments)
 
Q_TESTLIB_EXPORT void QTest::setMainSourcePath (const char *file, const char *builddir=nullptr)
 
Q_TESTLIB_EXPORT bool QTest::qVerify (bool statement, const char *statementStr, const char *description, const char *file, int line)
 
Q_DECL_COLD_FUNCTION Q_TESTLIB_EXPORT void QTest::qFail (const char *message, const char *file, int line)
 
Q_TESTLIB_EXPORT void QTest::qSkip (const char *message, const char *file, int line)
 
Q_TESTLIB_EXPORT bool QTest::qExpectFail (const char *dataIndex, const char *comment, TestFailMode mode, const char *file, int line)
 
Q_DECL_COLD_FUNCTION Q_TESTLIB_EXPORT void QTest::qCaught (const char *expected, const char *what, const char *file, int line)
 
Q_TESTLIB_EXPORT void QTest::ignoreMessage (QtMsgType type, const char *message)
 
Q_TESTLIB_EXPORT void QTest::failOnWarning (const char *message)
 
Q_TESTLIB_EXPORT QString QTest::qFindTestData (const char *basepath, const char *file=nullptr, int line=0, const char *builddir=nullptr, const char *sourcedir=nullptr)
 
Q_TESTLIB_EXPORT QString QTest::qFindTestData (const QString &basepath, const char *file=nullptr, int line=0, const char *builddir=nullptr, const char *sourcedir=nullptr)
 
Q_TESTLIB_EXPORT voidQTest::qData (const char *tagName, int typeId)
 
Q_TESTLIB_EXPORT voidQTest::qGlobalData (const char *tagName, int typeId)
 
Q_TESTLIB_EXPORT voidQTest::qElementData (const char *elementName, int metaTypeId)
 
Q_TESTLIB_EXPORT QObjectQTest::testObject ()
 
Q_TESTLIB_EXPORT const char * QTest::currentAppName ()
 
Q_TESTLIB_EXPORT const char * QTest::currentTestFunction ()
 
Q_TESTLIB_EXPORT const char * QTest::currentDataTag ()
 
Q_TESTLIB_EXPORT bool QTest::currentTestFailed ()
 
Q_TESTLIB_EXPORT Qt::Key QTest::asciiToKey (char ascii)
 
Q_TESTLIB_EXPORT char QTest::keyToAscii (Qt::Key key)
 
Q_TESTLIB_EXPORT bool QTest::compare_helper (bool success, const char *failureMsg, char *val1, char *val2, const char *actual, const char *expected, const char *file, int line)
 
Q_TESTLIB_EXPORT void QTest::addColumnInternal (int id, const char *name)
 
template<typename T >
void QTest::addColumn (const char *name, T *=nullptr)
 
Q_TESTLIB_EXPORT QTestDataQTest::newRow (const char *dataTag)
 
Q_TESTLIB_EXPORT QTestDataQTest::addRow (const char *format,...) Q_ATTRIBUTE_FORMAT_PRINTF(1
 
Q_TESTLIB_EXPORT QTestData Q_TESTLIB_EXPORT bool QTest::qCompare (qfloat16 const &t1, qfloat16 const &t2, const char *actual, const char *expected, const char *file, int line)
 
Q_TESTLIB_EXPORT bool QTest::qCompare (float const &t1, float const &t2, const char *actual, const char *expected, const char *file, int line)
 
Q_TESTLIB_EXPORT bool QTest::qCompare (double const &t1, double const &t2, const char *actual, const char *expected, const char *file, int line)
 
Q_TESTLIB_EXPORT bool QTest::qCompare (int t1, int t2, const char *actual, const char *expected, const char *file, int line)
 
Q_TESTLIB_EXPORT bool QTest::qCompare (unsigned t1, unsigned t2, const char *actual, const char *expected, const char *file, int line)
 
Q_TESTLIB_EXPORT bool QTest::qCompare (QStringView t1, QStringView t2, const char *actual, const char *expected, const char *file, int line)
 
Q_TESTLIB_EXPORT bool QTest::qCompare (QStringView t1, const QLatin1String &t2, const char *actual, const char *expected, const char *file, int line)
 
Q_TESTLIB_EXPORT bool QTest::qCompare (const QLatin1String &t1, QStringView t2, const char *actual, const char *expected, const char *file, int line)
 
bool QTest::qCompare (const QString &t1, const QString &t2, const char *actual, const char *expected, const char *file, int line)
 
template<>
bool QTest::qCompare (QString const &t1, QLatin1String const &t2, const char *actual, const char *expected, const char *file, int line)
 
template<>
bool QTest::qCompare (QLatin1String const &t1, QString const &t2, const char *actual, const char *expected, const char *file, int line)
 
bool QTest::compare_ptr_helper (const volatile void *t1, const volatile void *t2, const char *actual, const char *expected, const char *file, int line)
 
bool QTest::compare_ptr_helper (const volatile QObject *t1, const volatile QObject *t2, const char *actual, const char *expected, const char *file, int line)
 
bool QTest::compare_ptr_helper (const volatile QObject *t1, std::nullptr_t, const char *actual, const char *expected, const char *file, int line)
 
bool QTest::compare_ptr_helper (std::nullptr_t, const volatile QObject *t2, const char *actual, const char *expected, const char *file, int line)
 
bool QTest::compare_ptr_helper (const volatile void *t1, std::nullptr_t, const char *actual, const char *expected, const char *file, int line)
 
bool QTest::compare_ptr_helper (std::nullptr_t, const volatile void *t2, const char *actual, const char *expected, const char *file, int line)
 
Q_TESTLIB_EXPORT bool QTest::compare_string_helper (const char *t1, const char *t2, const char *actual, const char *expected, const char *file, int line)
 
char * QTest::formatString (const char *prefix, const char *suffix, size_t numArguments,...)
 
template<typename T1 , typename T2 >
bool QTest::qCompare (const T1 &t1, const T2 &t2, const char *actual, const char *expected, const char *file, int line)
 
bool QTest::qCompare (double const &t1, float const &t2, const char *actual, const char *expected, const char *file, int line)
 
bool QTest::qCompare (float const &t1, double const &t2, const char *actual, const char *expected, const char *file, int line)
 
template<typename T >
bool QTest::qCompare (const T *t1, const T *t2, const char *actual, const char *expected, const char *file, int line)
 
template<typename T >
bool QTest::qCompare (T *t1, T *t2, const char *actual, const char *expected, const char *file, int line)
 
template<typename T >
bool QTest::qCompare (T *t1, std::nullptr_t, const char *actual, const char *expected, const char *file, int line)
 
template<typename T >
bool QTest::qCompare (std::nullptr_t, T *t2, const char *actual, const char *expected, const char *file, int line)
 
template<typename T1 , typename T2 >
bool QTest::qCompare (const T1 *t1, const T2 *t2, const char *actual, const char *expected, const char *file, int line)
 
template<typename T1 , typename T2 >
bool QTest::qCompare (T1 *t1, T2 *t2, const char *actual, const char *expected, const char *file, int line)
 
bool QTest::qCompare (const char *t1, const char *t2, const char *actual, const char *expected, const char *file, int line)
 
bool QTest::qCompare (char *t1, char *t2, const char *actual, const char *expected, const char *file, int line)
 
bool QTest::qCompare (char *t1, const char *t2, const char *actual, const char *expected, const char *file, int line)
 
bool QTest::qCompare (const char *t1, char *t2, const char *actual, const char *expected, const char *file, int line)
 
template<class T >
bool QTest::qTest (const T &actual, const char *elementName, const char *actualStr, const char *expected, const char *file, int line)
 

Macro Definition Documentation

◆ QCOMPARE

#define QCOMPARE (   actual,
  expected 
)
Value:
do {\
if (!QTest::qCompare(actual, expected, #actual, #expected, __FILE__, __LINE__))\
return;\
} while (false)
bool qCompare(QString const &t1, QLatin1String const &t2, const char *actual, const char *expected, const char *file, int line)
Definition: qtest.h:411

Definition at line 87 of file qtestcase.h.

◆ QEXPECT_FAIL

#define QEXPECT_FAIL (   dataIndex,
  comment,
  mode 
)
Value:
do {\
if (!QTest::qExpectFail(dataIndex, static_cast<const char *>(comment), QTest::mode, __FILE__, __LINE__))\
return;\
} while (false)
Q_TESTLIB_EXPORT bool qExpectFail(const char *dataIndex, const char *comment, TestFailMode mode, const char *file, int line)
Definition: qtestcase.cpp:2225
GLenum mode
XmlOutput::xml_output comment(const QString &text)
Definition: xmloutput.h:219

Definition at line 224 of file qtestcase.h.

◆ QEXTRACTTESTDATA

#define QEXTRACTTESTDATA (   resourcePath)     QTest::qExtractTestData(resourcePath)

Definition at line 255 of file qtestcase.h.

◆ QFAIL

#define QFAIL (   message)
Value:
do {\
QTest::qFail(static_cast<const char *>(message), __FILE__, __LINE__);\
return;\
} while (false)
Q_DECL_COLD_FUNCTION Q_TESTLIB_EXPORT void qFail(const char *message, const char *file, int line)
Definition: qtestcase.cpp:2200
GLenum GLuint GLenum GLsizei const GLchar * message
Definition: qopengl.h:270

Definition at line 70 of file qtestcase.h.

◆ QFETCH

#define QFETCH (   Type,
  name 
)     Type name = *static_cast<Type *>(QTest::qData(#name, ::qMetaTypeId<typename std::remove_cv<Type >::type>()))

Definition at line 230 of file qtestcase.h.

◆ QFETCH_GLOBAL

#define QFETCH_GLOBAL (   Type,
  name 
)     Type name = *static_cast<Type *>(QTest::qGlobalData(#name, ::qMetaTypeId<typename std::remove_cv<Type >::type>()))

Definition at line 233 of file qtestcase.h.

◆ QFINDTESTDATA

#define QFINDTESTDATA (   basepath)     QTest::qFindTestData(basepath, __FILE__, __LINE__)

Definition at line 251 of file qtestcase.h.

◆ QSKIP

#define QSKIP (   statement,
  ... 
)    QSKIP_INTERNAL(statement)

Definition at line 222 of file qtestcase.h.

◆ QSKIP_INTERNAL

#define QSKIP_INTERNAL (   statement)
Value:
do {\
QTest::qSkip(static_cast<const char *>(statement), __FILE__, __LINE__);\
return;\
} while (false)
Q_TESTLIB_EXPORT void qSkip(const char *message, const char *file, int line)
Definition: qtestcase.cpp:2216

Definition at line 216 of file qtestcase.h.

◆ QTEST

#define QTEST (   actual,
  testElement 
)
Value:
do {\
if (!QTest::qTest(actual, testElement, #actual, #testElement, __FILE__, __LINE__))\
return;\
} while (false)
bool qTest(const T &actual, const char *elementName, const char *actualStr, const char *expected, const char *file, int line)
Definition: qtestcase.h:607

Definition at line 236 of file qtestcase.h.

◆ QTEST_COMPARE_DECL

#define QTEST_COMPARE_DECL (   KLASS)     template<> Q_TESTLIB_EXPORT char *toString<KLASS >(const KLASS &);

Definition at line 261 of file qtestcase.h.

◆ QTRY_COMPARE

#define QTRY_COMPARE (   expr,
  expected 
)    QTRY_COMPARE_WITH_TIMEOUT((expr), expected, 5000)

Definition at line 214 of file qtestcase.h.

◆ QTRY_COMPARE_WITH_TIMEOUT

#define QTRY_COMPARE_WITH_TIMEOUT (   expr,
  expected,
  timeout 
)
Value:
do { \
QTRY_IMPL(((expr) == (expected)), timeout);\
QCOMPARE((expr), expected); \
} while (false)
GLbitfield GLuint64 timeout
[4]

Definition at line 208 of file qtestcase.h.

◆ QTRY_IMPL

#define QTRY_IMPL (   expr,
  timeout 
)
Value:
const int qt_test_step = timeout < 350 ? timeout / 7 + 1 : 50; \
const int qt_test_timeoutValue = timeout; \
{ QTRY_LOOP_IMPL(QTest::currentTestFailed() || (expr), qt_test_timeoutValue, qt_test_step); } \
QTRY_TIMEOUT_DEBUG_IMPL(QTest::currentTestFailed() || (expr), qt_test_timeoutValue, qt_test_step)
Q_TESTLIB_EXPORT bool currentTestFailed()
Definition: qtestcase.cpp:2766
#define QTRY_LOOP_IMPL(expr, timeoutValue, step)
Definition: qtestcase.h:166

Definition at line 183 of file qtestcase.h.

◆ QTRY_LOOP_IMPL

#define QTRY_LOOP_IMPL (   expr,
  timeoutValue,
  step 
)
Value:
if (!(expr)) { \
} \
int qt_test_i = 0; \
for (; qt_test_i < timeoutValue && !(expr); qt_test_i += step) { \
}
float step
Q_CORE_EXPORT void qWait(int ms)

Definition at line 166 of file qtestcase.h.

◆ QTRY_TIMEOUT_DEBUG_IMPL

#define QTRY_TIMEOUT_DEBUG_IMPL (   expr,
  timeoutValue,
  step 
)
Value:
if (!(expr)) { \
QTRY_LOOP_IMPL((expr), 2 * (timeoutValue), step); \
if (expr) { \
QFAIL(qPrintable(QTest::Internal::formatTryTimeoutDebugMessage(u8"" #expr, timeoutValue, timeoutValue + qt_test_i))); \
} \
}
Q_TESTLIB_EXPORT QString formatTryTimeoutDebugMessage(q_no_char8_t::QUtf8StringView expr, int timeout, int actual)
Definition: qtestcase.cpp:388
UINT8_TYPE u8
Definition: sqlite3.c:13907

Definition at line 175 of file qtestcase.h.

◆ QTRY_VERIFY

#define QTRY_VERIFY (   expr)    QTRY_VERIFY_WITH_TIMEOUT((expr), 5000)

Definition at line 196 of file qtestcase.h.

◆ QTRY_VERIFY2

#define QTRY_VERIFY2 (   expr,
  messageExpression 
)    QTRY_VERIFY2_WITH_TIMEOUT((expr), (messageExpression), 5000)

Definition at line 205 of file qtestcase.h.

◆ QTRY_VERIFY2_WITH_TIMEOUT

#define QTRY_VERIFY2_WITH_TIMEOUT (   expr,
  messageExpression,
  timeout 
)
Value:
do { \
QTRY_IMPL((expr), timeout);\
QVERIFY2(expr, messageExpression); \
} while (false)

Definition at line 199 of file qtestcase.h.

◆ QTRY_VERIFY_WITH_TIMEOUT

#define QTRY_VERIFY_WITH_TIMEOUT (   expr,
  timeout 
)
Value:
do { \
QTRY_IMPL((expr), timeout);\
QVERIFY(expr); \
} while (false)

Definition at line 190 of file qtestcase.h.

◆ QVERIFY

#define QVERIFY (   statement)
Value:
do {\
if (!QTest::qVerify(static_cast<bool>(statement), #statement, "", __FILE__, __LINE__))\
return;\
} while (false)
Q_TESTLIB_EXPORT bool qVerify(bool statement, const char *statementStr, const char *description, const char *file, int line)
Definition: qtestcase.cpp:2207

Definition at line 64 of file qtestcase.h.

◆ QVERIFY2

#define QVERIFY2 (   statement,
  description 
)
Value:
do {\
if (statement) {\
if (!QTest::qVerify(true, #statement, static_cast<const char *>(description), __FILE__, __LINE__))\
return;\
} else {\
if (!QTest::qVerify(false, #statement, static_cast<const char *>(description), __FILE__, __LINE__))\
return;\
}\
} while (false)

Definition at line 76 of file qtestcase.h.

◆ QVERIFY_THROWS_EXCEPTION

#define QVERIFY_THROWS_EXCEPTION (   exceptiontype,
  ... 
)
Value:
do {\
QT_TRY {\
QT_TRY {\
__VA_ARGS__;\
QTest::qFail("Expected exception of type " #exceptiontype " to be thrown" \
" but no exception caught", __FILE__, __LINE__);\
return;\
} QT_CATCH (const exceptiontype &) {\
/* success */\
}\
} QT_CATCH (const std::exception &e) {\
QTest::qCaught(#exceptiontype, e.what(), __FILE__, __LINE__);\
return;\
} QT_CATCH (...) {\
QTest::qCaught(#exceptiontype, nullptr, __FILE__, __LINE__);\
QT_RETHROW;\
}\
} while (false)
double e
Q_DECL_COLD_FUNCTION Q_TESTLIB_EXPORT void qCaught(const char *expected, const char *what, const char *file, int line)
Definition: qtestcase.cpp:2247

Definition at line 121 of file qtestcase.h.

◆ QVERIFY_THROWS_NO_EXCEPTION

#define QVERIFY_THROWS_NO_EXCEPTION (   ...)
Value:
do { \
QT_TRY { \
__VA_ARGS__; \
/* success */ \
} QT_CATCH (const std::exception &e) { \
QTest::qCaught(nullptr, e.what(), __FILE__, __LINE__); \
return; \
} QT_CATCH (...) { \
QTest::qCaught(nullptr, nullptr, __FILE__, __LINE__); \
QT_RETHROW; \
} \
} while (false) \
/* end */

Definition at line 96 of file qtestcase.h.

◆ QWARN

#define QWARN (   msg)    QTest::qWarn(static_cast<const char *>(msg), __FILE__, __LINE__)

Definition at line 617 of file qtestcase.h.