summaryrefslogtreecommitdiffstats
path: root/Source/CTest
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2017-04-21 18:26:21 (GMT)
committerBen Boeckel <ben.boeckel@kitware.com>2017-04-21 20:39:41 (GMT)
commit202a44a4cab0ebf2c89fb878cd2ee634fb83906c (patch)
tree6c654ebd6f3b53c7198160a740078116a467cf50 /Source/CTest
parent294cf948dc37799e1980685afbf1fa585ad5b0fb (diff)
downloadCMake-202a44a4cab0ebf2c89fb878cd2ee634fb83906c.zip
CMake-202a44a4cab0ebf2c89fb878cd2ee634fb83906c.tar.gz
CMake-202a44a4cab0ebf2c89fb878cd2ee634fb83906c.tar.bz2
cmCTestRunTest: do not count skipped tests as failed
Skipped tests are neither passed nor failed tests, but return codes are based only upon failed tests, so do not count them as such. Fixes #16822.
Diffstat (limited to 'Source/CTest')
-rw-r--r--Source/CTest/cmCTestRunTest.cxx8
1 files changed, 6 insertions, 2 deletions
diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx
index a4853b7..fe23075 100644
--- a/Source/CTest/cmCTestRunTest.cxx
+++ b/Source/CTest/cmCTestRunTest.cxx
@@ -167,6 +167,7 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
std::vector<std::pair<cmsys::RegularExpression, std::string> >::iterator
passIt;
bool forceFail = false;
+ bool skipped = false;
bool outputTestErrorsToConsole = false;
if (!this->TestProperties->RequiredRegularExpressions.empty() &&
this->FailedDependencies.empty()) {
@@ -219,6 +220,7 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
s << "SKIP_RETURN_CODE=" << this->TestProperties->SkipReturnCode;
this->TestResult.CompletionStatus = s.str();
cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Skipped ");
+ skipped = true;
} else if ((success && !this->TestProperties->WillFail) ||
(!success && this->TestProperties->WillFail)) {
this->TestResult.Status = cmCTestTestHandler::COMPLETED;
@@ -338,7 +340,9 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
compress ? this->CompressedOutput : this->ProcessOutput;
this->TestResult.CompressOutput = compress;
this->TestResult.ReturnValue = this->TestProcess->GetExitValue();
- this->TestResult.CompletionStatus = "Completed";
+ if (!skipped) {
+ this->TestResult.CompletionStatus = "Completed";
+ }
this->TestResult.ExecutionTime = this->TestProcess->GetTotalTime();
this->MemCheckPostProcess();
this->ComputeWeightedCost();
@@ -349,7 +353,7 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
this->TestHandler->TestResults.push_back(this->TestResult);
}
delete this->TestProcess;
- return passed;
+ return passed || skipped;
}
bool cmCTestRunTest::StartAgain()