AutoTest: Support blacklisted XPass and XFail

Blacklisted XPass and blacklisted XFail have been added to
QTest. Add the respective handling to the plugin.

Change-Id: I96b85fa045bdf51abd8e295b075f9ab1ed95eb66
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
This commit is contained in:
Christian Stenger
2019-01-24 08:53:31 +01:00
parent 6ae0e8d2c7
commit 0af0f58a60
5 changed files with 30 additions and 4 deletions

View File

@@ -63,6 +63,14 @@ const Utils::Icon RESULT_BLACKLISTEDFAIL({
{":/utils/images/filledcircle.png", Utils::Theme::OutputPanes_TestFailTextColor},
{":/projectexplorer/images/buildstepdisable.png", Utils::Theme::PanelTextColorDark}},
Utils::Icon::Tint | Utils::Icon::PunchEdges);
const Utils::Icon RESULT_BLACKLISTEDXPASS({
{":/utils/images/filledcircle.png", Utils::Theme::OutputPanes_TestXPassTextColor},
{":/projectexplorer/images/buildstepdisable.png", Utils::Theme::PanelTextColorDark}},
Utils::Icon::Tint | Utils::Icon::PunchEdges);
const Utils::Icon RESULT_BLACKLISTEDXFAIL({
{":/utils/images/filledcircle.png", Utils::Theme::OutputPanes_TestXFailTextColor},
{":/projectexplorer/images/buildstepdisable.png", Utils::Theme::PanelTextColorDark}},
Utils::Icon::Tint | Utils::Icon::PunchEdges);
const Utils::Icon RESULT_BENCHMARK({
{":/utils/images/filledcircle.png", Utils::Theme::BackgroundColorNormal},
{":/autotest/images/benchmark.png", Utils::Theme::PanelTextColorDark}}, Utils::Icon::Tint);

View File

@@ -352,7 +352,8 @@ void QtTestOutputReader::processPlainTextOutput(const QByteArray &outputLineWith
static QRegExp summary("^Totals: \\d+ passed, \\d+ failed, \\d+ skipped(, \\d+ blacklisted)?$");
static QRegExp finish("^[*]{9} Finished testing of (.*) [*]{9}$");
static QRegExp result("^(PASS |FAIL! |XFAIL |XPASS |SKIP |BPASS |BFAIL |RESULT "
static QRegExp result("^(PASS |FAIL! |XFAIL |XPASS |SKIP |RESULT "
"|BPASS |BFAIL |BXPASS |BXFAIL "
"|INFO |QWARN |WARNING|QDEBUG |QSYSTEM): (.*)$");
static QRegExp benchDetails("^\\s+([\\d,.]+ .* per iteration \\(total: [\\d,.]+, iterations: \\d+\\))$");

View File

@@ -91,6 +91,10 @@ Result::Type TestResult::resultFromString(const QString &resultString)
return Result::BlacklistedPass;
if (resultString == "bfail")
return Result::BlacklistedFail;
if (resultString == "bxpass")
return Result::BlacklistedXPass;
if (resultString == "bxfail")
return Result::BlacklistedXFail;
qDebug("Unexpected test result: %s", qPrintable(resultString));
return Result::Invalid;
}
@@ -136,6 +140,10 @@ QString TestResult::resultToString(const Result::Type type)
return QString("BPASS");
case Result::BlacklistedFail:
return QString("BFAIL");
case Result::BlacklistedXPass:
return QString("BXPASS");
case Result::BlacklistedXFail:
return QString("BXFAIL");
case Result::MessageLocation:
return QString();
default:
@@ -172,6 +180,8 @@ QColor TestResult::colorForType(const Result::Type type)
return creatorTheme->color(Utils::Theme::OutputPanes_TestFatalTextColor);
case Result::BlacklistedPass:
case Result::BlacklistedFail:
case Result::BlacklistedXPass:
case Result::BlacklistedXFail:
default:
return creatorTheme->color(Utils::Theme::OutputPanes_StdOutTextColor);
}

View File

@@ -46,6 +46,8 @@ enum Type {
Skip,
BlacklistedPass,
BlacklistedFail,
BlacklistedXPass,
BlacklistedXFail,
Benchmark,
MessageDebug,
MessageInfo,

View File

@@ -51,6 +51,8 @@ static QIcon testResultIcon(Result::Type result) {
Icons::RESULT_SKIP.icon(),
Icons::RESULT_BLACKLISTEDPASS.icon(),
Icons::RESULT_BLACKLISTEDFAIL.icon(),
Icons::RESULT_BLACKLISTEDXPASS.icon(),
Icons::RESULT_BLACKLISTEDXFAIL.icon(),
Icons::RESULT_BENCHMARK.icon(),
Icons::RESULT_MESSAGEDEBUG.icon(),
Icons::RESULT_MESSAGEDEBUG.icon(), // Info gets the same handling as Debug for now
@@ -69,9 +71,9 @@ static QIcon testResultIcon(Result::Type result) {
case Result::MessageTestCaseFail:
return icons[Result::Fail];
case Result::MessageTestCaseSuccessWarn:
return icons[14];
return icons[16];
case Result::MessageTestCaseFailWarn:
return icons[15];
return icons[17];
default:
return QIcon();
}
@@ -131,6 +133,8 @@ void TestResultItem::updateResult(bool &changed, Result::Type addedChildType)
case Result::Skip:
case Result::BlacklistedFail:
case Result::BlacklistedPass:
case Result::BlacklistedXFail:
case Result::BlacklistedXPass:
case Result::MessageTestCaseSuccessWarn:
newResult = (old == Result::MessageTestCaseFail) ? Result::MessageTestCaseFailWarn
: Result::MessageTestCaseSuccessWarn;
@@ -363,7 +367,8 @@ void TestResultFilterModel::enableAllResultTypes()
<< Result::UnexpectedPass << Result::Skip << Result::MessageDebug
<< Result::MessageWarn << Result::MessageInternal << Result::MessageLocation
<< Result::MessageFatal << Result::Invalid << Result::BlacklistedPass
<< Result::BlacklistedFail << Result::Benchmark << Result::MessageIntermediate
<< Result::BlacklistedFail << Result::BlacklistedXFail << Result::BlacklistedXPass
<< Result::Benchmark << Result::MessageIntermediate
<< Result::MessageCurrentTest << Result::MessageTestCaseStart
<< Result::MessageTestCaseSuccess << Result::MessageTestCaseSuccessWarn
<< Result::MessageTestCaseFail << Result::MessageTestCaseFailWarn