summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-01-15 15:12:04 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2014-01-15 15:12:04 (GMT)
commitc4e5e17f38c1b168fa3cfeb41f9fbc5f4186b111 (patch)
tree27c933245553ee9dae85527bccc0c9fe7eb30ac1 /Source
parent4c7bac45ae1347ebea6709a7fdf59f50ff7bbb15 (diff)
parent3a0d164bb2fa03966cdd7a17c0ce63b4d54f05b7 (diff)
downloadCMake-c4e5e17f38c1b168fa3cfeb41f9fbc5f4186b111.zip
CMake-c4e5e17f38c1b168fa3cfeb41f9fbc5f4186b111.tar.gz
CMake-c4e5e17f38c1b168fa3cfeb41f9fbc5f4186b111.tar.bz2
Merge topic 'skip-return-code'
3a0d164b allow to mark a test as "Not Run" with a specific return code (#8466)
Diffstat (limited to 'Source')
-rw-r--r--Source/CTest/cmCTestRunTest.cxx8
-rw-r--r--Source/CTest/cmCTestTestHandler.cxx9
-rw-r--r--Source/CTest/cmCTestTestHandler.h2
3 files changed, 18 insertions, 1 deletions
diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx
index 0e2fa41..cdf90b9 100644
--- a/Source/CTest/cmCTestRunTest.cxx
+++ b/Source/CTest/cmCTestRunTest.cxx
@@ -206,7 +206,13 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
bool success =
!forceFail && (retVal == 0 ||
this->TestProperties->RequiredRegularExpressions.size());
- if((success && !this->TestProperties->WillFail)
+ if(this->TestProperties->SkipReturnCode >= 0
+ && this->TestProperties->SkipReturnCode == retVal)
+ {
+ this->TestResult.Status = cmCTestTestHandler::NOT_RUN;
+ cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Skipped ");
+ }
+ else if((success && !this->TestProperties->WillFail)
|| (!success && this->TestProperties->WillFail))
{
this->TestResult.Status = cmCTestTestHandler::COMPLETED;
diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx
index 26f8014..3a04b33 100644
--- a/Source/CTest/cmCTestTestHandler.cxx
+++ b/Source/CTest/cmCTestTestHandler.cxx
@@ -2229,6 +2229,14 @@ bool cmCTestTestHandler::SetTestsProperties(
rtit->Processors = 1;
}
}
+ if ( key == "SKIP_RETURN_CODE" )
+ {
+ rtit->SkipReturnCode = atoi(val.c_str());
+ if(rtit->SkipReturnCode < 0 || rtit->SkipReturnCode > 255)
+ {
+ rtit->SkipReturnCode = -1;
+ }
+ }
if ( key == "DEPENDS" )
{
std::vector<std::string> lval;
@@ -2364,6 +2372,7 @@ bool cmCTestTestHandler::AddTest(const std::vector<std::string>& args)
test.ExplicitTimeout = false;
test.Cost = 0;
test.Processors = 1;
+ test.SkipReturnCode = -1;
test.PreviousRuns = 0;
if (this->UseIncludeRegExpFlag &&
!this->IncludeTestsRegularExpression.find(testname.c_str()))
diff --git a/Source/CTest/cmCTestTestHandler.h b/Source/CTest/cmCTestTestHandler.h
index 6dda300..63f9c93 100644
--- a/Source/CTest/cmCTestTestHandler.h
+++ b/Source/CTest/cmCTestTestHandler.h
@@ -109,6 +109,8 @@ public:
int Index;
//Requested number of process slots
int Processors;
+ // return code of test which will mark test as "not run"
+ int SkipReturnCode;
std::vector<std::string> Environment;
std::vector<std::string> Labels;
std::set<std::string> LockedResources;