From 10414444e1fdc3b91328aba19fb10bd92f6dc899 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 15 Sep 2014 15:39:36 +0200 Subject: 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 --- src/testlib/qtestresult.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/testlib/qtestresult.cpp') 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; } -- cgit v1.2.3