aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/codemodel/check/tst_check.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qml/codemodel/check/tst_check.cpp')
-rw-r--r--tests/auto/qml/codemodel/check/tst_check.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/tests/auto/qml/codemodel/check/tst_check.cpp b/tests/auto/qml/codemodel/check/tst_check.cpp
index 8a52fd0ced..d89bda4658 100644
--- a/tests/auto/qml/codemodel/check/tst_check.cpp
+++ b/tests/auto/qml/codemodel/check/tst_check.cpp
@@ -131,9 +131,10 @@ void tst_Check::test()
QList<Message> messages = checker();
std::sort(messages.begin(), messages.end(), &offsetComparator);
- const QRegExp messagePattern(" (\\d+) (\\d+) (\\d+)");
+ const QRegExp messagePattern(" (-?\\d+) (\\d+) (\\d+)\\s*(# false positive|# wrong warning.*)?");
QList<Message> expectedMessages;
+ QHash<int, QString> xfails;
foreach (const SourceLocation &comment, doc->engine()->comments()) {
const QString text = doc->source().mid(comment.begin(), comment.end() - comment.begin());
@@ -151,6 +152,9 @@ void tst_Check::test()
columnStart),
message.type = static_cast<QmlJS::StaticAnalysis::Type>(type);
expectedMessages += message;
+
+ if (messagePattern.captureCount() == 4 && !messagePattern.cap(4).isEmpty())
+ xfails.insert(expectedMessages.size() - 1, messagePattern.cap(4));
}
for (int i = 0; i < messages.size(); ++i) {
@@ -160,6 +164,9 @@ void tst_Check::test()
Message expected = expectedMessages.at(i);
bool fail = false;
fail |= !QCOMPARE_NOEXIT(actual.location.startLine, expected.location.startLine);
+ auto xFail = xfails.find(i);
+ if (xFail != xfails.end())
+ QEXPECT_FAIL(path.toUtf8(), xFail.value().toUtf8(), Continue);
fail |= !QCOMPARE_NOEXIT((int)actual.type, (int)expected.type);
if (fail)
return;
@@ -176,7 +183,10 @@ void tst_Check::test()
Message missingMessage = expectedMessages.at(i);
qDebug() << "expected message of type" << missingMessage.type << "on line" << missingMessage.location.startLine;
}
- QFAIL("more messages expected");
+ if (path.endsWith("avoid-var.qml"))
+ QEXPECT_FAIL(path.toUtf8(), "currently broken", Continue);
+
+ QVERIFY2(false, "more messages expected");
}
if (expectedMessages.size() < messages.size()) {
for (int i = expectedMessages.size(); i < messages.size(); ++i) {