aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@theqtcompany.com>2015-05-26 15:12:42 +0200
committerEike Ziller <eike.ziller@theqtcompany.com>2015-05-26 15:12:42 +0200
commit3858c33d741cc0bfb120d528b0f3465e665c4bd5 (patch)
treec5fd6289f486a14e698940a40511fa4344a911da /src/plugins/projectexplorer
parent03b92050e03bbc51f1d49d7dbce8116f23a0c66e (diff)
parentb8038191e693f5649686d56b2192169ea1f53a25 (diff)
Merge remote-tracking branch 'origin/3.4'
Diffstat (limited to 'src/plugins/projectexplorer')
-rw-r--r--src/plugins/projectexplorer/msvcparser.cpp13
-rw-r--r--src/plugins/projectexplorer/outputparser_test.cpp13
2 files changed, 23 insertions, 3 deletions
diff --git a/src/plugins/projectexplorer/msvcparser.cpp b/src/plugins/projectexplorer/msvcparser.cpp
index 1c5037650b..1a6ccf2cd2 100644
--- a/src/plugins/projectexplorer/msvcparser.cpp
+++ b/src/plugins/projectexplorer/msvcparser.cpp
@@ -35,7 +35,8 @@
#include <utils/qtcassert.h>
#include <utils/fileutils.h>
-static const char FILE_POS_PATTERN[] = "(cl|LINK|.+) : ";
+// As of MSVC 2015: "foo.cpp(42) :" -> "foo.cpp(42):"
+static const char FILE_POS_PATTERN[] = "(cl|LINK|.+[^ ]) ?: ";
static const char ERROR_PATTERN[] = "[A-Z]+\\d\\d\\d\\d ?:";
static QPair<Utils::FileName, int> parseFileName(const QString &input)
@@ -232,6 +233,16 @@ void ProjectExplorerPlugin::testMsvcOutputParsers_data()
Constants::TASK_CATEGORY_COMPILE))
<< QString();
+ QTest::newRow("labeled error-2015")
+ << QString::fromLatin1("qmlstandalone\\main.cpp(54): error C4716: 'findUnresolvedModule' : must return a value") << OutputParserTester::STDOUT
+ << QString() << QString()
+ << (QList<Task>()
+ << Task(Task::Error,
+ QLatin1String("C4716: 'findUnresolvedModule' : must return a value"),
+ Utils::FileName::fromUserInput(QLatin1String("qmlstandalone\\main.cpp")), 54,
+ Constants::TASK_CATEGORY_COMPILE))
+ << QString();
+
QTest::newRow("labeled warning")
<< QString::fromLatin1("x:\\src\\plugins\\projectexplorer\\msvcparser.cpp(69) : warning C4100: 'something' : unreferenced formal parameter") << OutputParserTester::STDOUT
<< QString() << QString()
diff --git a/src/plugins/projectexplorer/outputparser_test.cpp b/src/plugins/projectexplorer/outputparser_test.cpp
index f39a67f75d..0ac1b3182d 100644
--- a/src/plugins/projectexplorer/outputparser_test.cpp
+++ b/src/plugins/projectexplorer/outputparser_test.cpp
@@ -37,6 +37,13 @@
namespace ProjectExplorer {
+static inline QByteArray msgFileComparisonFail(const Utils::FileName &f1, const Utils::FileName &f2)
+{
+ const QString result = QLatin1Char('"') + f1.toUserOutput()
+ + QLatin1String("\" != \"") + f2.toUserOutput() + QLatin1Char('"');
+ return result.toLocal8Bit();
+}
+
OutputParserTester::OutputParserTester() :
m_debug(false)
{ }
@@ -83,7 +90,8 @@ void OutputParserTester::testParsing(const QString &lines,
for (int i = 0; i < tasks.size(); ++i) {
QCOMPARE(m_receivedTasks.at(i).category, tasks.at(i).category);
QCOMPARE(m_receivedTasks.at(i).description, tasks.at(i).description);
- QCOMPARE(m_receivedTasks.at(i).file, tasks.at(i).file);
+ QVERIFY2(m_receivedTasks.at(i).file == tasks.at(i).file,
+ msgFileComparisonFail(m_receivedTasks.at(i).file, tasks.at(i).file));
QCOMPARE(m_receivedTasks.at(i).line, tasks.at(i).line);
QCOMPARE(static_cast<int>(m_receivedTasks.at(i).type), static_cast<int>(tasks.at(i).type));
}
@@ -103,7 +111,8 @@ void OutputParserTester::testTaskMangling(const Task &input,
if (m_receivedTasks.size() == 1) {
QCOMPARE(m_receivedTasks.at(0).category, output.category);
QCOMPARE(m_receivedTasks.at(0).description, output.description);
- QCOMPARE(m_receivedTasks.at(0).file, output.file);
+ QVERIFY2(m_receivedTasks.at(0).file == output.file,
+ msgFileComparisonFail(m_receivedTasks.at(0).file, output.file));
QCOMPARE(m_receivedTasks.at(0).line, output.line);
QCOMPARE(m_receivedTasks.at(0).type, output.type);
}