diff --git a/src/plugins/qt4projectmanager/qtoutputformatter.cpp b/src/plugins/qt4projectmanager/qtoutputformatter.cpp index 859f652bb3bb08f2654c917da82dc76488a4d790..7e17e575e350357fa05f2a7e8d76b992f7ef1dfb 100644 --- a/src/plugins/qt4projectmanager/qtoutputformatter.cpp +++ b/src/plugins/qt4projectmanager/qtoutputformatter.cpp @@ -44,6 +44,7 @@ QtOutputFormatter::QtOutputFormatter(Qt4Project *project) , m_qmlError(QLatin1String("(file:///.+:\\d+:\\d+):")) , m_qtError(QLatin1String("Object::.*in (.*:\\d+)")) , m_qtAssert(QLatin1String("^ASSERT: .* in file (.+, line \\d+)$")) + , m_qtTestFail(QLatin1String("^ Loc: \\[(.*)\\]$")) , m_project(project) { } @@ -65,6 +66,10 @@ LinkResult QtOutputFormatter::matchLine(const QString &line) const lr.href = m_qtAssert.cap(1); lr.start = m_qtAssert.pos(1); lr.end = lr.start + lr.href.length(); + } else if (m_qtTestFail.indexIn(line) != -1) { + lr.href = m_qtTestFail.cap(1); + lr.start = m_qtTestFail.pos(1); + lr.end = lr.start + lr.href.length(); } return lr; } @@ -178,6 +183,12 @@ void QtOutputFormatter::handleLink(const QString &href) line = qtAssertLink.cap(2).toInt(); } + QRegExp qtTestFailLink(QLatin1String("^(.*)\\((\\d+)\\)$")); + if (qtTestFailLink.indexIn(href) != -1) { + fileName = qtTestFailLink.cap(1); + line = qtTestFailLink.cap(2).toInt(); + } + if (!fileName.isEmpty()) { QFileInfo fi(fileName); if (fi.isRelative()) { diff --git a/src/plugins/qt4projectmanager/qtoutputformatter.h b/src/plugins/qt4projectmanager/qtoutputformatter.h index 9b90a0d37d7185dd82adf61841694f70382e8a07..72f87f4ee3e1691b1adffc1af734f23ad0a41ebe 100644 --- a/src/plugins/qt4projectmanager/qtoutputformatter.h +++ b/src/plugins/qt4projectmanager/qtoutputformatter.h @@ -62,6 +62,7 @@ private: QRegExp m_qmlError; QRegExp m_qtError; QRegExp m_qtAssert; + QRegExp m_qtTestFail; QWeakPointer<Qt4Project> m_project; QTextCharFormat m_linkFormat; QString m_lastLine;