diff options
Diffstat (limited to 'src/testlib')
-rw-r--r-- | src/testlib/doc/qttestlib.qdocconf | 10 | ||||
-rw-r--r-- | src/testlib/qsignalspy.h | 17 | ||||
-rw-r--r-- | src/testlib/qtest.h | 23 | ||||
-rw-r--r-- | src/testlib/qtestcase.cpp | 4 |
4 files changed, 39 insertions, 15 deletions
diff --git a/src/testlib/doc/qttestlib.qdocconf b/src/testlib/doc/qttestlib.qdocconf index 2a2a1e4ea0..1f0c35c389 100644 --- a/src/testlib/doc/qttestlib.qdocconf +++ b/src/testlib/doc/qttestlib.qdocconf @@ -3,21 +3,21 @@ include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) project = QtTestLib description = Qt Test Reference Documentation url = http://qt-project.org/doc/qttestlib -version = 5.0.1 +version = 5.1.0 examplesinstallpath = testlib qhp.projects = QtTestLib qhp.QtTestLib.file = qttestlib.qhp -qhp.QtTestLib.namespace = org.qt-project.qttest.501 +qhp.QtTestLib.namespace = org.qt-project.qttest.510 qhp.QtTestLib.virtualFolder = qttest qhp.QtTestLib.indexTitle = Qt Test qhp.QtTestLib.indexRoot = -qhp.QtTestLib.filterAttributes = qttestlib 5.0.1 qtrefdoc -qhp.QtTestLib.customFilters.Qt.name = QtTestLib 5.0.1 -qhp.QtTestLib.customFilters.Qt.filterAttributes = qttest 5.0.1 +qhp.QtTestLib.filterAttributes = qttestlib 5.1.0 qtrefdoc +qhp.QtTestLib.customFilters.Qt.name = QtTestLib 5.1.0 +qhp.QtTestLib.customFilters.Qt.filterAttributes = qttest 5.1.0 qhp.QtTestLib.subprojects = classes qhp.QtTestLib.subprojects.classes.title = C++ Classes diff --git a/src/testlib/qsignalspy.h b/src/testlib/qsignalspy.h index 0323fa111f..9435e32c5c 100644 --- a/src/testlib/qsignalspy.h +++ b/src/testlib/qsignalspy.h @@ -97,7 +97,7 @@ public: return; } sig = ba; - initArgs(mo->method(sigIndex)); + initArgs(mo->method(sigIndex), obj); } inline bool isValid() const { return !sig.isEmpty(); } @@ -131,10 +131,23 @@ public: private: void initArgs(const QMetaMethod &member) { + initArgs(member, 0); + } + + void initArgs(const QMetaMethod &member, const QObject *obj) + { const QList<QByteArray> params = member.parameterTypes(); args.reserve(params.size()); for (int i = 0; i < params.count(); ++i) { - const int tp = QMetaType::type(params.at(i).constData()); + int tp = QMetaType::type(params.at(i).constData()); + if (tp == QMetaType::UnknownType && obj) { + void *argv[] = { &tp, &i }; + QMetaObject::metacall(const_cast<QObject*>(obj), + QMetaObject::RegisterMethodArgumentMetaType, + member.methodIndex(), argv); + if (tp == -1) + tp = QMetaType::UnknownType; + } if (tp == QMetaType::UnknownType) { Q_ASSERT(tp != QMetaType::Void); // void parameter => metaobject is corrupt qWarning("Don't know how to handle '%s', use qRegisterMetaType to register it.", diff --git a/src/testlib/qtest.h b/src/testlib/qtest.h index 6d130af27c..ed78682b8e 100644 --- a/src/testlib/qtest.h +++ b/src/testlib/qtest.h @@ -186,9 +186,9 @@ inline bool qCompare(QLatin1String const &t1, QString const &t2, const char *act return qCompare(QString(t1), t2, actual, expected, file, line); } -template<> -inline bool qCompare(QStringList const &t1, QStringList const &t2, - const char *actual, const char *expected, const char *file, int line) +template <typename T> +inline bool qCompare(QList<T> const &t1, QList<T> const &t2, const char *actual, const char *expected, + const char *file, int line) { char msg[1024]; msg[0] = '\0'; @@ -196,23 +196,30 @@ inline bool qCompare(QStringList const &t1, QStringList const &t2, const int actualSize = t1.count(); const int expectedSize = t2.count(); if (actualSize != expectedSize) { - qsnprintf(msg, sizeof(msg), "Compared QStringLists have different sizes.\n" + qsnprintf(msg, sizeof(msg), "Compared lists have different sizes.\n" " Actual (%s) size: '%d'\n" " Expected (%s) size: '%d'", actual, actualSize, expected, expectedSize); isOk = false; } for (int i = 0; isOk && i < actualSize; ++i) { - if (t1.at(i) != t2.at(i)) { - qsnprintf(msg, sizeof(msg), "Compared QStringLists differ at index %d.\n" + if (!(t1.at(i) == t2.at(i))) { + qsnprintf(msg, sizeof(msg), "Compared lists differ at index %d.\n" " Actual (%s): '%s'\n" - " Expected (%s): '%s'", i, actual, t1.at(i).toLatin1().constData(), - expected, t2.at(i).toLatin1().constData()); + " Expected (%s): '%s'", i, actual, toString(t1.at(i)), + expected, toString(t2.at(i))); isOk = false; } } return compare_helper(isOk, msg, 0, 0, actual, expected, file, line); } +template <> +inline bool qCompare(QStringList const &t1, QStringList const &t2, const char *actual, const char *expected, + const char *file, int line) +{ + return qCompare<QString>(t1, t2, actual, expected, file, line); +} + template <typename T> inline bool qCompare(QFlags<T> const &t1, T const &t2, const char *actual, const char *expected, const char *file, int line) diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index 951631ba33..d83b05f05e 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -2684,6 +2684,10 @@ bool QTest::compare_string_helper(const char *t1, const char *t2, const char *ac \internal */ +/*! \fn bool QTest::qCompare(QList<T> const &t1, QList<T> const &t2, const char *actual, const char *expected, const char *file, int line) + \internal +*/ + /*! \fn bool QTest::qCompare(QFlags<T> const &t1, T const &t2, const char *actual, const char *expected, const char *file, int line) \internal */ |