diff options
author | Lars Knoll <lars.knoll@digia.com> | 2014-09-15 15:39:36 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@digia.com> | 2014-09-21 20:58:41 +0200 |
commit | 10414444e1fdc3b91328aba19fb10bd92f6dc899 (patch) | |
tree | 382677984b22b3d96254373926859b6a7f73803e /src/testlib/qtestresult.cpp | |
parent | 23a03ebcd17be328508e749afeb2cd962296be3b (diff) |
Add support for blacklisting test functions
We need to have a finer grained control over the tests
we skip in our CI system. This adds a blacklisting
mechanism that allows blacklisting individual test
functions (or even test data) using a set of predefined
matching keys for the operating system and some other
relevant variables.
QTestlib will search for a file called BLACKLIST in the test
directory and parse it if found. The file contains a simple
ini style list of functions to blacklist. For details see
qtestblacklist.cpp.
Change-Id: Id3fae4b264ca99970cbf9f45bfb85fa75c1fd823
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/testlib/qtestresult.cpp')
-rw-r--r-- | src/testlib/qtestresult.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/testlib/qtestresult.cpp b/src/testlib/qtestresult.cpp index 8eb1fa2d9c..8d1a942d8b 100644 --- a/src/testlib/qtestresult.cpp +++ b/src/testlib/qtestresult.cpp @@ -62,6 +62,7 @@ namespace QTest static const char *currentTestObjectName = 0; static bool failed = false; static bool skipCurrentTest = false; + static bool blacklistCurrentTest = false; static const char *expectFailComment = 0; static int expectFailMode = 0; @@ -77,10 +78,16 @@ void QTestResult::reset() QTest::expectFailComment = 0; QTest::expectFailMode = 0; + QTest::blacklistCurrentTest = false; QTestLog::resetCounters(); } +void QTestResult::setBlacklistCurrentTest(bool b) +{ + QTest::blacklistCurrentTest = b; +} + bool QTestResult::currentTestFailed() { return QTest::failed; @@ -139,7 +146,10 @@ void QTestResult::finishedCurrentTestDataCleanup() { // If the current test hasn't failed or been skipped, then it passes. if (!QTest::failed && !QTest::skipCurrentTest) { - QTestLog::addPass(""); + if (QTest::blacklistCurrentTest) + QTestLog::addBPass(""); + else + QTestLog::addPass(""); } QTest::failed = false; @@ -290,7 +300,10 @@ void QTestResult::addFailure(const char *message, const char *file, int line) { clearExpectFail(); - QTestLog::addFail(message, file, line); + if (QTest::blacklistCurrentTest) + QTestLog::addBFail(message, file, line); + else + QTestLog::addFail(message, file, line); QTest::failed = true; } |