From 15da517b9b911791f99666fc10753da558f88bd3 Mon Sep 17 00:00:00 2001 From: Tobias Hunger <tobias.hunger@nokia.com> Date: Sun, 29 Aug 2010 16:42:03 +0000 Subject: [PATCH] Make failed test locations clickable in output --- src/plugins/qt4projectmanager/qtoutputformatter.cpp | 11 +++++++++++ src/plugins/qt4projectmanager/qtoutputformatter.h | 1 + 2 files changed, 12 insertions(+) diff --git a/src/plugins/qt4projectmanager/qtoutputformatter.cpp b/src/plugins/qt4projectmanager/qtoutputformatter.cpp index 859f652bb3b..7e17e575e35 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 9b90a0d37d7..72f87f4ee3e 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; -- GitLab