diff options
Diffstat (limited to 'src/testlib')
-rw-r--r-- | src/testlib/qabstractitemmodeltester.h | 4 | ||||
-rw-r--r-- | src/testlib/qtest.h | 25 | ||||
-rw-r--r-- | src/testlib/qtestblacklist.cpp | 42 | ||||
-rw-r--r-- | src/testlib/qtestblacklist_p.h | 1 | ||||
-rw-r--r-- | src/testlib/qtestcase.cpp | 119 | ||||
-rw-r--r-- | src/testlib/qtestcorelist_p.h | 17 |
6 files changed, 70 insertions, 138 deletions
diff --git a/src/testlib/qabstractitemmodeltester.h b/src/testlib/qabstractitemmodeltester.h index 757074c6ae..57b8f283bc 100644 --- a/src/testlib/qabstractitemmodeltester.h +++ b/src/testlib/qabstractitemmodeltester.h @@ -123,11 +123,11 @@ do { \ MODELTESTER_VERIFY(variant.canConvert<QFont>()); // General Purpose roles that should return a QColor or a QBrush - variant = model->data(model->index(0, 0), Qt::BackgroundColorRole); + variant = model->data(model->index(0, 0), Qt::BackgroundRole); if (variant.isValid()) MODELTESTER_VERIFY(variant.canConvert<QColor>() || variant.canConvert<QBrush>()); - variant = model->data(model->index(0, 0), Qt::TextColorRole); + variant = model->data(model->index(0, 0), Qt::ForegroundRole); if (variant.isValid()) MODELTESTER_VERIFY(variant.canConvert<QColor>() || variant.canConvert<QBrush>()); diff --git a/src/testlib/qtest.h b/src/testlib/qtest.h index 2578037946..82078ad7a8 100644 --- a/src/testlib/qtest.h +++ b/src/testlib/qtest.h @@ -368,18 +368,11 @@ int main(int argc, char *argv[]) \ } #include <QtTest/qtestsystem.h> -#include <set> - -#ifndef QT_NO_OPENGL -# define QTEST_ADD_GPU_BLACKLIST_SUPPORT_DEFS \ - extern Q_TESTLIB_EXPORT std::set<QByteArray> *(*qgpu_features_ptr)(const QString &); \ - extern Q_GUI_EXPORT std::set<QByteArray> *qgpu_features(const QString &); -# define QTEST_ADD_GPU_BLACKLIST_SUPPORT \ - qgpu_features_ptr = qgpu_features; -#else -# define QTEST_ADD_GPU_BLACKLIST_SUPPORT_DEFS -# define QTEST_ADD_GPU_BLACKLIST_SUPPORT -#endif + +// Two backwards-compatibility defines for an obsolete feature: +#define QTEST_ADD_GPU_BLACKLIST_SUPPORT_DEFS +#define QTEST_ADD_GPU_BLACKLIST_SUPPORT +// ### Qt 6: fully remove these. #if defined(QT_NETWORK_LIB) # include <QtTest/qtest_network.h> @@ -396,15 +389,11 @@ int main(int argc, char *argv[]) \ #endif #define QTEST_MAIN(TestObject) \ -QT_BEGIN_NAMESPACE \ -QTEST_ADD_GPU_BLACKLIST_SUPPORT_DEFS \ -QT_END_NAMESPACE \ int main(int argc, char *argv[]) \ { \ QApplication app(argc, argv); \ app.setAttribute(Qt::AA_Use96Dpi, true); \ QTEST_DISABLE_KEYPAD_NAVIGATION \ - QTEST_ADD_GPU_BLACKLIST_SUPPORT \ TestObject tc; \ QTEST_SET_MAIN_SOURCE_PATH \ return QTest::qExec(&tc, argc, argv); \ @@ -415,14 +404,10 @@ int main(int argc, char *argv[]) \ #include <QtTest/qtest_gui.h> #define QTEST_MAIN(TestObject) \ -QT_BEGIN_NAMESPACE \ -QTEST_ADD_GPU_BLACKLIST_SUPPORT_DEFS \ -QT_END_NAMESPACE \ int main(int argc, char *argv[]) \ { \ QGuiApplication app(argc, argv); \ app.setAttribute(Qt::AA_Use96Dpi, true); \ - QTEST_ADD_GPU_BLACKLIST_SUPPORT \ TestObject tc; \ QTEST_SET_MAIN_SOURCE_PATH \ return QTest::qExec(&tc, argc, argv); \ diff --git a/src/testlib/qtestblacklist.cpp b/src/testlib/qtestblacklist.cpp index f430294142..84a99c10f3 100644 --- a/src/testlib/qtestblacklist.cpp +++ b/src/testlib/qtestblacklist.cpp @@ -220,22 +220,6 @@ static bool checkCondition(const QByteArray &condition) static bool ignoreAll = false; static std::set<QByteArray> *ignoredTests = 0; -static std::set<QByteArray> *gpuFeatures = 0; - -Q_TESTLIB_EXPORT std::set<QByteArray> *(*qgpu_features_ptr)(const QString &) = 0; - -static bool isGPUTestBlacklisted(const char *slot, const char *data = 0) -{ - const QByteArray disableKey = QByteArrayLiteral("disable_") + QByteArray(slot); - if (gpuFeatures->find(disableKey) != gpuFeatures->end()) { - QByteArray msg = QByteArrayLiteral("Skipped due to GPU blacklist: ") + disableKey; - if (data) - msg += ':' + QByteArray(data); - QTest::qSkip(msg.constData(), __FILE__, __LINE__); - return true; - } - return false; -} namespace QTestPrivate { @@ -275,17 +259,6 @@ void parseBlackList() } } -void parseGpuBlackList() -{ - if (!qgpu_features_ptr) - return; - QString filename = QTest::qFindTestData(QStringLiteral("GPU_BLACKLIST")); - if (filename.isEmpty()) - return; - if (!gpuFeatures) - gpuFeatures = qgpu_features_ptr(filename); -} - void checkBlackLists(const char *slot, const char *data) { bool ignore = ignoreAll; @@ -301,21 +274,8 @@ void checkBlackLists(const char *slot, const char *data) } QTestResult::setBlacklistCurrentTest(ignore); - - // Tests blacklisted in GPU_BLACKLIST are to be skipped. Just ignoring the result is - // not sufficient since these are expected to crash or behave in undefined ways. - if (!ignore && gpuFeatures) { - QByteArray s_gpu = slot; - ignore = isGPUTestBlacklisted(s_gpu, data); - if (!ignore && data) { - s_gpu += ':'; - s_gpu += data; - isGPUTestBlacklisted(s_gpu); - } - } -} - } +} // QTestPrivate QT_END_NAMESPACE diff --git a/src/testlib/qtestblacklist_p.h b/src/testlib/qtestblacklist_p.h index 08ce052231..4522c64992 100644 --- a/src/testlib/qtestblacklist_p.h +++ b/src/testlib/qtestblacklist_p.h @@ -58,7 +58,6 @@ QT_BEGIN_NAMESPACE namespace QTestPrivate { // Export functions so they can also be used by QQuickTest Q_TESTLIB_EXPORT void parseBlackList(); - Q_TESTLIB_EXPORT void parseGpuBlackList(); Q_TESTLIB_EXPORT void checkBlackLists(const char *slot, const char *data); } diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index 32facaf12b..1c3292ead9 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -282,74 +282,74 @@ namespace QTestPrivate namespace QTest { - class WatchDog; +class WatchDog; - static QObject *currentTestObject = 0; - static QString mainSourcePath; +static QObject *currentTestObject = 0; +static QString mainSourcePath; #if defined(Q_OS_MACOS) - bool macNeedsActivate = false; - IOPMAssertionID powerID; +bool macNeedsActivate = false; +IOPMAssertionID powerID; #endif - class TestMethods { - Q_DISABLE_COPY(TestMethods) +class TestMethods { + Q_DISABLE_COPY(TestMethods) public: - typedef std::vector<QMetaMethod> MetaMethods; + typedef std::vector<QMetaMethod> MetaMethods; - explicit TestMethods(const QObject *o, const MetaMethods &m = MetaMethods()); + explicit TestMethods(const QObject *o, const MetaMethods &m = MetaMethods()); - void invokeTests(QObject *testObject) const; + void invokeTests(QObject *testObject) const; - static QMetaMethod findMethod(const QObject *obj, const char *signature); + static QMetaMethod findMethod(const QObject *obj, const char *signature); - private: - bool invokeTest(int index, const char *data, WatchDog *watchDog) const; - void invokeTestOnData(int index) const; +private: + bool invokeTest(int index, const char *data, WatchDog *watchDog) const; + void invokeTestOnData(int index) const; - QMetaMethod m_initTestCaseMethod; // might not exist, check isValid(). - QMetaMethod m_initTestCaseDataMethod; - QMetaMethod m_cleanupTestCaseMethod; - QMetaMethod m_initMethod; - QMetaMethod m_cleanupMethod; + QMetaMethod m_initTestCaseMethod; // might not exist, check isValid(). + QMetaMethod m_initTestCaseDataMethod; + QMetaMethod m_cleanupTestCaseMethod; + QMetaMethod m_initMethod; + QMetaMethod m_cleanupMethod; - MetaMethods m_methods; - }; + MetaMethods m_methods; +}; - TestMethods::TestMethods(const QObject *o, const MetaMethods &m) - : m_initTestCaseMethod(TestMethods::findMethod(o, "initTestCase()")) - , m_initTestCaseDataMethod(TestMethods::findMethod(o, "initTestCase_data()")) - , m_cleanupTestCaseMethod(TestMethods::findMethod(o, "cleanupTestCase()")) - , m_initMethod(TestMethods::findMethod(o, "init()")) - , m_cleanupMethod(TestMethods::findMethod(o, "cleanup()")) - , m_methods(m) - { - if (m.empty()) { - const QMetaObject *metaObject = o->metaObject(); - const int count = metaObject->methodCount(); - m_methods.reserve(count); - for (int i = 0; i < count; ++i) { - const QMetaMethod me = metaObject->method(i); - if (isValidSlot(me)) - m_methods.push_back(me); - } +TestMethods::TestMethods(const QObject *o, const MetaMethods &m) + : m_initTestCaseMethod(TestMethods::findMethod(o, "initTestCase()")) + , m_initTestCaseDataMethod(TestMethods::findMethod(o, "initTestCase_data()")) + , m_cleanupTestCaseMethod(TestMethods::findMethod(o, "cleanupTestCase()")) + , m_initMethod(TestMethods::findMethod(o, "init()")) + , m_cleanupMethod(TestMethods::findMethod(o, "cleanup()")) + , m_methods(m) +{ + if (m.empty()) { + const QMetaObject *metaObject = o->metaObject(); + const int count = metaObject->methodCount(); + m_methods.reserve(count); + for (int i = 0; i < count; ++i) { + const QMetaMethod me = metaObject->method(i); + if (isValidSlot(me)) + m_methods.push_back(me); } } +} - QMetaMethod TestMethods::findMethod(const QObject *obj, const char *signature) - { - const QMetaObject *metaObject = obj->metaObject(); - const int funcIndex = metaObject->indexOfMethod(signature); - return funcIndex >= 0 ? metaObject->method(funcIndex) : QMetaMethod(); - } +QMetaMethod TestMethods::findMethod(const QObject *obj, const char *signature) +{ + const QMetaObject *metaObject = obj->metaObject(); + const int funcIndex = metaObject->indexOfMethod(signature); + return funcIndex >= 0 ? metaObject->method(funcIndex) : QMetaMethod(); +} - static int keyDelay = -1; - static int mouseDelay = -1; - static int eventDelay = -1; +static int keyDelay = -1; +static int mouseDelay = -1; +static int eventDelay = -1; #if QT_CONFIG(thread) - static int timeout = -1; +static int timeout = -1; #endif - static bool noCrashHandler = false; +static bool noCrashHandler = false; /*! \internal Invoke a method of the object without generating warning if the method does not exist @@ -496,7 +496,7 @@ static void qPrintDataTags(FILE *stream) } } -static int qToInt(char *str) +static int qToInt(const char *str) { char *pEnd; int l = (int)strtol(str, &pEnd, 10); @@ -507,7 +507,7 @@ static int qToInt(char *str) return l; } -Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, char *argv[], bool qml) +Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, const char *const argv[], bool qml) { QTestLog::LogMode logFormat = QTestLog::Plain; const char *logFilename = 0; @@ -811,9 +811,9 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, char *argv[], bool qml) // we load the QML files. So just store the data for now. int colon = -1; int offset; - for (offset = 0; *(argv[i]+offset); ++offset) { - if (*(argv[i]+offset) == ':') { - if (*(argv[i]+offset+1) == ':') { + for (offset = 0; argv[i][offset]; ++offset) { + if (argv[i][offset] == ':') { + if (argv[i][offset + 1] == ':') { // "::" is used as a test name separator. // e.g. "ClickTests::test_click:row1". ++offset; @@ -845,6 +845,11 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, char *argv[], bool qml) QTestLog::addLogger(logFormat, logFilename); } +// Temporary, backwards compatibility, until qtdeclarative's use of it is converted +Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, char *argv[], bool qml) { + qtest_qParseArgs(argc, const_cast<const char *const *>(argv), qml); +} + QBenchmarkResult qMedian(const QVector<QBenchmarkResult> &container) { const int count = container.count(); @@ -1195,7 +1200,9 @@ char *formatString(const char *prefix, const char *suffix, size_t numArguments, Returns a pointer to a string that is the string \a ba represented as a space-separated sequence of hex characters. If the input is considered too long, it is truncated. A trucation is indicated in - the returned string as an ellipsis at the end. + the returned string as an ellipsis at the end. The caller has + ownership of the returned pointer and must ensure it is later passed + to operator delete[]. \a length is the length of the string \a ba. */ @@ -1813,8 +1820,6 @@ void QTest::qInit(QObject *testObject, int argc, char **argv) #endif QTestPrivate::parseBlackList(); - QTestPrivate::parseGpuBlackList(); - QTestResult::reset(); QTEST_ASSERT(testObject); diff --git a/src/testlib/qtestcorelist_p.h b/src/testlib/qtestcorelist_p.h index 5943695876..4d080f6758 100644 --- a/src/testlib/qtestcorelist_p.h +++ b/src/testlib/qtestcorelist_p.h @@ -66,9 +66,6 @@ class QTestCoreList void addToList(T **list); T *nextElement(); T *previousElement(); - int count(T *list); - int count(); - private: T *next; T *prev; @@ -121,20 +118,6 @@ T *QTestCoreList<T>::previousElement() return prev; } -template <class T> -int QTestCoreList<T>::count() -{ - int numOfElements = 0; - T *it = next; - - while (it) { - ++numOfElements; - it = it->nextElement(); - } - - return numOfElements; -} - QT_END_NAMESPACE #endif |