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}, {":/utils/images/filledcircle.png", Utils::Theme::OutputPanes_TestFailTextColor},
{":/projectexplorer/images/buildstepdisable.png", Utils::Theme::PanelTextColorDark}}, {":/projectexplorer/images/buildstepdisable.png", Utils::Theme::PanelTextColorDark}},
Utils::Icon::Tint | Utils::Icon::PunchEdges); 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({ const Utils::Icon RESULT_BENCHMARK({
{":/utils/images/filledcircle.png", Utils::Theme::BackgroundColorNormal}, {":/utils/images/filledcircle.png", Utils::Theme::BackgroundColorNormal},
{":/autotest/images/benchmark.png", Utils::Theme::PanelTextColorDark}}, Utils::Icon::Tint); {":/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 summary("^Totals: \\d+ passed, \\d+ failed, \\d+ skipped(, \\d+ blacklisted)?$");
static QRegExp finish("^[*]{9} Finished testing of (.*) [*]{9}$"); 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): (.*)$"); "|INFO |QWARN |WARNING|QDEBUG |QSYSTEM): (.*)$");
static QRegExp benchDetails("^\\s+([\\d,.]+ .* per iteration \\(total: [\\d,.]+, iterations: \\d+\\))$"); 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; return Result::BlacklistedPass;
if (resultString == "bfail") if (resultString == "bfail")
return Result::BlacklistedFail; return Result::BlacklistedFail;
if (resultString == "bxpass")
return Result::BlacklistedXPass;
if (resultString == "bxfail")
return Result::BlacklistedXFail;
qDebug("Unexpected test result: %s", qPrintable(resultString)); qDebug("Unexpected test result: %s", qPrintable(resultString));
return Result::Invalid; return Result::Invalid;
} }
@@ -136,6 +140,10 @@ QString TestResult::resultToString(const Result::Type type)
return QString("BPASS"); return QString("BPASS");
case Result::BlacklistedFail: case Result::BlacklistedFail:
return QString("BFAIL"); return QString("BFAIL");
case Result::BlacklistedXPass:
return QString("BXPASS");
case Result::BlacklistedXFail:
return QString("BXFAIL");
case Result::MessageLocation: case Result::MessageLocation:
return QString(); return QString();
default: default:
@@ -172,6 +180,8 @@ QColor TestResult::colorForType(const Result::Type type)
return creatorTheme->color(Utils::Theme::OutputPanes_TestFatalTextColor); return creatorTheme->color(Utils::Theme::OutputPanes_TestFatalTextColor);
case Result::BlacklistedPass: case Result::BlacklistedPass:
case Result::BlacklistedFail: case Result::BlacklistedFail:
case Result::BlacklistedXPass:
case Result::BlacklistedXFail:
default: default:
return creatorTheme->color(Utils::Theme::OutputPanes_StdOutTextColor); return creatorTheme->color(Utils::Theme::OutputPanes_StdOutTextColor);
} }

View File

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

View File

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