⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qtestcase.h

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 H
字号:
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the tools applications of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#ifndef QTESTCASE_P_H#define QTESTCASE_P_H#include <QtTest/qtest_global.h>#include <QtCore/qnamespace.h>#include <QtCore/qmetatype.h>QT_BEGIN_HEADER#define QVERIFY(statement) \do {\    if (!QTest::qVerify((statement), #statement, "", __FILE__, __LINE__))\        return;\} while (0)#define QFAIL(message) \do {\    QTest::qFail(message, __FILE__, __LINE__);\    return;\} while (0)#define QVERIFY2(statement, description) \do {\    if (statement) {\        if (!QTest::qVerify(true, #statement, (description), __FILE__, __LINE__))\            return;\    } else {\        if (!QTest::qVerify(false, #statement, (description), __FILE__, __LINE__))\            return;\    }\} while (0)#define QCOMPARE(actual, expected) \do {\    if (!QTest::qCompare(actual, expected, #actual, #expected, __FILE__, __LINE__))\        return;\} while (0)#define QSKIP(statement, mode) \do {\    QTest::qSkip(statement, QTest::mode, __FILE__, __LINE__);\    return;\} while (0)#define QEXPECT_FAIL(dataIndex, comment, mode)\do {\    if (!QTest::qExpectFail(dataIndex, comment, QTest::mode, __FILE__, __LINE__))\        return;\} while (0)#define QFETCH(type, name)\    type name = *static_cast<type *>(QTest::qData(#name, qMetaTypeId<type >()))#define QFETCH_GLOBAL(type, name)\    type name = *static_cast<type *>(QTest::qGlobalData(#name, qMetaTypeId<type >()))#define DEPENDS_ON(funcName)#define QTEST(actual, testElement)\do {\    if (!QTest::qTest(actual, testElement, #actual, #testElement, __FILE__, __LINE__))\        return;\} while (0)#define QWARN(msg)\    QTest::qWarn(msg)class QObject;class QTestData;#define QTEST_COMPARE_DECL(KLASS)\    template<> Q_TESTLIB_EXPORT char *toString<KLASS >(const KLASS &);namespace QTest{    template <typename T>    inline char *toString(const T &)    {        return 0;    }    Q_TESTLIB_EXPORT char *toString(const char *);    Q_TESTLIB_EXPORT char *toString(const void *);    Q_TESTLIB_EXPORT int qExec(QObject *testObject, int argc = 0, char **argv = 0);    Q_TESTLIB_EXPORT bool qVerify(bool statement, const char *statementStr, const char *description,                                 const char *file, int line);    Q_TESTLIB_EXPORT void qFail(const char *statementStr, const char *file, int line);    Q_TESTLIB_EXPORT void qSkip(const char *message, SkipMode mode, const char *file, int line);    Q_TESTLIB_EXPORT bool qExpectFail(const char *dataIndex, const char *comment, TestFailMode mode,                           const char *file, int line);    Q_TESTLIB_EXPORT void qWarn(const char *message);    Q_TESTLIB_EXPORT void ignoreMessage(QtMsgType type, const char *message);    Q_TESTLIB_EXPORT void *qData(const char *tagName, int typeId);    Q_TESTLIB_EXPORT void *qGlobalData(const char *tagName, int typeId);    Q_TESTLIB_EXPORT void *qElementData(const char *elementName, int metaTypeId);    Q_TESTLIB_EXPORT QObject *testObject();    Q_TESTLIB_EXPORT const char *currentTestFunction();    Q_TESTLIB_EXPORT const char *currentDataTag();    Q_TESTLIB_EXPORT bool currentTestFailed();    Q_TESTLIB_EXPORT Qt::Key asciiToKey(char ascii);    Q_TESTLIB_EXPORT char keyToAscii(Qt::Key key);    Q_TESTLIB_EXPORT bool compare_helper(bool success, const char *msg, const char *file,                                          int line);    Q_TESTLIB_EXPORT bool compare_helper(bool success, const char *msg, char *val1, char *val2,                                         const char *expected, const char *actual,                                         const char *file, int line);    Q_TESTLIB_EXPORT void qSleep(int ms);    Q_TESTLIB_EXPORT void addColumnInternal(int id, const char *name);    template <typename T>    inline void addColumn(const char *name, T * = 0)    {        addColumnInternal(qMetaTypeId<T>(), name);    }    Q_TESTLIB_EXPORT QTestData &newRow(const char *dataTag);    template <typename T>    inline bool qCompare(T const &t1, T const &t2, const char *actual, const char *expected,                        const char *file, int line)    {        return (t1 == t2)            ? compare_helper(true, "COMPARE()", file, line)            : compare_helper(false, "Compared values are not the same",                             toString<T>(t1), toString<T>(t2), actual, expected, file, line);    }    template <>    Q_TESTLIB_EXPORT bool qCompare<float>(float const &t1, float const &t2,                    const char *actual, const char *expected, const char *file, int line);    template <>    Q_TESTLIB_EXPORT bool qCompare<double>(double const &t1, double const &t2,                    const char *actual, const char *expected, const char *file, int line);    inline bool compare_ptr_helper(const void *t1, const void *t2, const char *actual,                                   const char *expected, const char *file, int line)    {        return (t1 == t2)            ? compare_helper(true, "COMPARE()", file, line)            : compare_helper(false, "Compared pointers are not the same",                             toString(t1), toString(t2), actual, expected, file, line);    }    Q_TESTLIB_EXPORT bool compare_string_helper(const char *t1, const char *t2, const char *actual,                                      const char *expected, const char *file, int line);#ifndef qdoc    QTEST_COMPARE_DECL(short)    QTEST_COMPARE_DECL(ushort)    QTEST_COMPARE_DECL(int)    QTEST_COMPARE_DECL(uint)    QTEST_COMPARE_DECL(long)    QTEST_COMPARE_DECL(ulong)    QTEST_COMPARE_DECL(qint64)    QTEST_COMPARE_DECL(quint64)    QTEST_COMPARE_DECL(float)    QTEST_COMPARE_DECL(double)    QTEST_COMPARE_DECL(char)    QTEST_COMPARE_DECL(bool)#endif#ifndef QTEST_NO_SPECIALIZATIONS    template <typename T1, typename T2>    bool qCompare(T1 const &, T2 const &, const char *, const char *, const char *, int);    template <typename T>    inline bool qCompare(const T *t1, const T *t2, const char *actual, const char *expected,                        const char *file, int line)    {        return compare_ptr_helper(t1, t2, actual, expected, file, line);    }    template <typename T>    inline bool qCompare(T *t1, T *t2, const char *actual, const char *expected,                        const char *file, int line)    {        return compare_ptr_helper(t1, t2, actual, expected, file, line);    }    template <typename T1, typename T2>    inline bool qCompare(const T1 *t1, const T2 *t2, const char *actual, const char *expected,                        const char *file, int line)    {        return compare_ptr_helper(t1, static_cast<const T1 *>(t2), actual, expected, file, line);    }    template <typename T1, typename T2>    inline bool qCompare(T1 *t1, T2 *t2, const char *actual, const char *expected,                        const char *file, int line)    {        return compare_ptr_helper(const_cast<const T1 *>(t1),                static_cast<const T1 *>(const_cast<const T2 *>(t2)), actual, expected, file, line);    }    template<>    inline bool qCompare<char>(const char *t1, const char *t2, const char *actual,                                       const char *expected, const char *file, int line)    {        return compare_string_helper(t1, t2, actual, expected, file, line);    }    template<>    inline bool qCompare<char>(char *t1, char *t2, const char *actual, const char *expected,                        const char *file, int line)    {        return compare_string_helper(t1, t2, actual, expected, file, line);    }#else  /* QTEST_NO_SPECIALIZATIONS */    inline bool qCompare(const char *t1, const char *t2, const char *actual,                         const char *expected, const char *file, int line)    {        return compare_string_helper(t1, t2, actual, expected, file, line);    }    inline bool qCompare(char *t1, char *t2, const char *actual, const char *expected,                         const char *file, int line)    {        return compare_string_helper(t1, t2, actual, expected, file, line);    }#endif    /* The next two specializations are for MSVC that shows problems with implicit       conversions     */#ifndef QTEST_NO_SPECIALIZATIONS    template<>#endif    inline bool qCompare(char *t1, const char *t2, const char *actual,                         const char *expected, const char *file, int line)    {        return compare_string_helper(t1, t2, actual, expected, file, line);    }#ifndef QTEST_NO_SPECIALIZATIONS    template<>#endif    inline bool qCompare(const char *t1, char *t2, const char *actual,                         const char *expected, const char *file, int line)    {        return compare_string_helper(t1, t2, actual, expected, file, line);    }    template <class T>    inline bool qTest(const T& actual, const char *elementName, const char *actualStr,                     const char *expected, const char *file, int line)    {        return qCompare(actual, *static_cast<const T *>(QTest::qElementData(elementName,                       qMetaTypeId<T>())), actualStr, expected, file, line);    }}#undef QTEST_COMPARE_DECLQT_END_HEADER#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -