diff options
Diffstat (limited to 'src/testlib')
-rw-r--r-- | src/testlib/doc/snippets/code/src_qtestlib_qtestcase.cpp | 2 | ||||
-rw-r--r-- | src/testlib/qtestblacklist.cpp | 6 | ||||
-rw-r--r-- | src/testlib/qtestcase.cpp | 15 | ||||
-rw-r--r-- | src/testlib/qtestkeyboard.h | 6 | ||||
-rw-r--r-- | src/testlib/qtestlog.cpp | 17 | ||||
-rw-r--r-- | src/testlib/qtestlog_p.h | 5 | ||||
-rw-r--r-- | src/testlib/qxmltestlogger.cpp | 9 | ||||
-rw-r--r-- | src/testlib/qxmltestlogger_p.h | 3 | ||||
-rw-r--r-- | src/testlib/testlib.pro | 2 |
9 files changed, 45 insertions, 20 deletions
diff --git a/src/testlib/doc/snippets/code/src_qtestlib_qtestcase.cpp b/src/testlib/doc/snippets/code/src_qtestlib_qtestcase.cpp index 29cbefdc04..8c32787b42 100644 --- a/src/testlib/doc/snippets/code/src_qtestlib_qtestcase.cpp +++ b/src/testlib/doc/snippets/code/src_qtestlib_qtestcase.cpp @@ -147,7 +147,7 @@ namespace QTest { { QByteArray ba = "MyPoint("; ba += QByteArray::number(point.x()) + ", " + QByteArray::number(point.y()); - ba += ")"; + ba += ')'; return qstrdup(ba.data()); } } diff --git a/src/testlib/qtestblacklist.cpp b/src/testlib/qtestblacklist.cpp index eb7abdad46..c2643a2304 100644 --- a/src/testlib/qtestblacklist.cpp +++ b/src/testlib/qtestblacklist.cpp @@ -109,7 +109,9 @@ static QSet<QByteArray> keywords() #ifdef Q_CC_MSVC << "msvc" #ifdef _MSC_VER - #if _MSC_VER == 1800 + #if _MSC_VER == 1900 + << "msvc-2015" + #elif _MSC_VER == 1800 << "msvc-2013" #elif _MSC_VER == 1700 << "msvc-2012" @@ -172,7 +174,7 @@ static bool isGPUTestBlacklisted(const char *slot, const char *data = 0) if (gpuFeatures->find(disableKey) != gpuFeatures->end()) { QByteArray msg = QByteArrayLiteral("Skipped due to GPU blacklist: ") + disableKey; if (data) - msg += QByteArrayLiteral(":") + QByteArray(data); + msg += ':' + QByteArray(data); QTest::qSkip(msg.constData(), __FILE__, __LINE__); return true; } diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index 000470e9e5..0847d639fd 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -2597,9 +2597,13 @@ private: void FatalSignalHandler::signal(int signum) { + const int msecsFunctionTime = qRound(QTestLog::msecsFunctionTime()); + const int msecsTotalTime = qRound(QTestLog::msecsTotalTime()); if (signum != SIGINT) stackTrace(); - qFatal("Received signal %d", signum); + qFatal("Received signal %d\n" + " Function time: %dms Total time: %dms", + signum, msecsFunctionTime, msecsTotalTime); #if defined(Q_OS_INTEGRITY) { struct sigaction act; @@ -2794,12 +2798,15 @@ static LONG WINAPI windowsFaultHandler(struct _EXCEPTION_POINTERS *exInfo) char appName[MAX_PATH]; if (!GetModuleFileNameA(NULL, appName, MAX_PATH)) appName[0] = 0; - + const int msecsFunctionTime = qRound(QTestLog::msecsFunctionTime()); + const int msecsTotalTime = qRound(QTestLog::msecsTotalTime()); const void *exceptionAddress = exInfo->ExceptionRecord->ExceptionAddress; - printf("A crash occurred in %s.\n\n" + printf("A crash occurred in %s.\n" + "Function time: %dms Total time: %dms\n\n" "Exception address: 0x%p\n" "Exception code : 0x%lx\n", - appName, exceptionAddress, exInfo->ExceptionRecord->ExceptionCode); + appName, msecsFunctionTime, msecsTotalTime, + exceptionAddress, exInfo->ExceptionRecord->ExceptionCode); DebugSymbolResolver resolver(GetCurrentProcess()); if (resolver.isValid()) { diff --git a/src/testlib/qtestkeyboard.h b/src/testlib/qtestkeyboard.h index d73658d8fc..d2b3ef240b 100644 --- a/src/testlib/qtestkeyboard.h +++ b/src/testlib/qtestkeyboard.h @@ -57,7 +57,7 @@ QT_BEGIN_NAMESPACE Q_GUI_EXPORT void qt_handleKeyEvent(QWindow *w, QEvent::Type t, int k, Qt::KeyboardModifiers mods, const QString & text = QString(), bool autorep = false, ushort count = 1); -Q_GUI_EXPORT bool qt_sendShortcutOverrideEvent(QObject *o, ulong timestamp, int k, Qt::KeyboardModifiers mods, const QString &text = QString(), bool autorep = false, ushort count = 1); +Q_GUI_EXPORT bool qt_handleShortcutEvent(QObject *o, ulong timestamp, int k, Qt::KeyboardModifiers mods, const QString &text = QString(), bool autorep = false, ushort count = 1); namespace QTest { @@ -97,7 +97,7 @@ namespace QTest if (action == Shortcut) { int timestamp = 0; - qt_sendShortcutOverrideEvent(window, timestamp, code, modifier, text, repeat); + qt_handleShortcutEvent(window, timestamp, code, modifier, text, repeat); return; } @@ -178,7 +178,7 @@ namespace QTest QKeyEvent a(press ? QEvent::KeyPress : QEvent::KeyRelease, code, modifier, text, repeat); QSpontaneKeyEvent::setSpontaneous(&a); - if (press && qt_sendShortcutOverrideEvent(widget, a.timestamp(), code, modifier, text, repeat)) + if (press && qt_handleShortcutEvent(widget, a.timestamp(), code, modifier, text, repeat)) return; if (!qApp->notify(widget, &a)) QTest::qWarn("Keyboard event not accepted by receiving widget"); diff --git a/src/testlib/qtestlog.cpp b/src/testlib/qtestlog.cpp index 59aeb27ffe..3513e10eec 100644 --- a/src/testlib/qtestlog.cpp +++ b/src/testlib/qtestlog.cpp @@ -46,6 +46,7 @@ #include <QtCore/qatomic.h> #include <QtCore/qbytearray.h> +#include <QtCore/QElapsedTimer> #include <QtCore/QVariant> #include <QtCore/QRegularExpression> @@ -75,6 +76,9 @@ static void saveCoverageTool(const char * appname, bool testfailed, bool install #endif } +static QElapsedTimer elapsedFunctionTime; +static QElapsedTimer elapsedTotalTime; + namespace QTest { int fails = 0; @@ -325,6 +329,7 @@ namespace QTest { void QTestLog::enterTestFunction(const char* function) { + elapsedFunctionTime.restart(); if (printAvailableTags) return; @@ -450,6 +455,8 @@ void QTestLog::addBenchmarkResult(const QBenchmarkResult &result) void QTestLog::startLogging() { + elapsedTotalTime.start(); + elapsedFunctionTime.start(); QTest::TestLoggers::startLogging(); QTest::oldMessageHandler = qInstallMessageHandler(QTest::messageHandler); } @@ -597,4 +604,14 @@ bool QTestLog::installedTestCoverage() return QTest::installedTestCoverage; } +qint64 QTestLog::nsecsTotalTime() +{ + return elapsedTotalTime.nsecsElapsed(); +} + +qint64 QTestLog::nsecsFunctionTime() +{ + return elapsedFunctionTime.nsecsElapsed(); +} + QT_END_NAMESPACE diff --git a/src/testlib/qtestlog_p.h b/src/testlib/qtestlog_p.h index b4786b4904..b7e9d16ec3 100644 --- a/src/testlib/qtestlog_p.h +++ b/src/testlib/qtestlog_p.h @@ -110,6 +110,11 @@ public: static void setInstalledTestCoverage(bool installed); static bool installedTestCoverage(); + static qint64 nsecsTotalTime(); + static qreal msecsTotalTime() { return QTestLog::nsecsTotalTime() / 1000000.; } + static qint64 nsecsFunctionTime(); + static qreal msecsFunctionTime() { return QTestLog::nsecsFunctionTime() / 1000000.; } + private: QTestLog(); ~QTestLog(); diff --git a/src/testlib/qxmltestlogger.cpp b/src/testlib/qxmltestlogger.cpp index bf607b4702..f96b5647e4 100644 --- a/src/testlib/qxmltestlogger.cpp +++ b/src/testlib/qxmltestlogger.cpp @@ -36,6 +36,7 @@ #include <QtCore/qglobal.h> #include <QtCore/qlibraryinfo.h> +#include <QtTest/private/qtestlog_p.h> #include <QtTest/private/qxmltestlogger_p.h> #include <QtTest/private/qtestresult_p.h> #include <QtTest/private/qbenchmark_p.h> @@ -124,15 +125,13 @@ void QXmlTestLogger::startLogging() " <QTestVersion>" QTEST_VERSION_STR "</QTestVersion>\n" "</Environment>\n", qVersion(), quotedBuild.constData()); outputString(buf.constData()); - m_totalTime.start(); } void QXmlTestLogger::stopLogging() { QTestCharBuffer buf; QTest::qt_asprintf(&buf, - "<Duration msecs=\"%f\"/>\n", - m_totalTime.nsecsElapsed() / 1000000.); + "<Duration msecs=\"%f\"/>\n", QTestLog::msecsTotalTime()); outputString(buf.constData()); if (xmlmode == QXmlTestLogger::Complete) { outputString("</TestCase>\n"); @@ -148,8 +147,6 @@ void QXmlTestLogger::enterTestFunction(const char *function) xmlQuote("edFunction, function); QTest::qt_asprintf(&buf, "<TestFunction name=\"%s\">\n", quotedFunction.constData()); outputString(buf.constData()); - - m_functionTime.start(); } void QXmlTestLogger::leaveTestFunction() @@ -158,7 +155,7 @@ void QXmlTestLogger::leaveTestFunction() QTest::qt_asprintf(&buf, " <Duration msecs=\"%f\"/>\n" "</TestFunction>\n", - m_functionTime.nsecsElapsed() / 1000000.); + QTestLog::msecsFunctionTime()); outputString(buf.constData()); } diff --git a/src/testlib/qxmltestlogger_p.h b/src/testlib/qxmltestlogger_p.h index 5cf8b4596c..49a21d9ca1 100644 --- a/src/testlib/qxmltestlogger_p.h +++ b/src/testlib/qxmltestlogger_p.h @@ -47,7 +47,6 @@ #include <QtTest/private/qabstracttestlogger_p.h> -#include <QtCore/qelapsedtimer.h> QT_BEGIN_NAMESPACE @@ -79,8 +78,6 @@ public: private: XmlMode xmlmode; - QElapsedTimer m_functionTime; - QElapsedTimer m_totalTime; }; QT_END_NAMESPACE diff --git a/src/testlib/testlib.pro b/src/testlib/testlib.pro index 0070cdb271..ff4379f85d 100644 --- a/src/testlib/testlib.pro +++ b/src/testlib/testlib.pro @@ -92,7 +92,7 @@ mac { # don't know yet if the target that links to testlib will build under Xcode or not. # The corresponding flags for the target lives in xctest.prf, where we do know. QMAKE_LFLAGS += -F$${platform_dev_frameworks_path} -weak_framework XCTest - QMAKE_OBJECTIVE_CFLAGS += -F$${platform_dev_frameworks_path} + QMAKE_CXXFLAGS += -F$${platform_dev_frameworks_path} MODULE_CONFIG += xctest } } |