summaryrefslogtreecommitdiffstats
path: root/Source/CTest/cmCTestMultiProcessHandler.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-10-23 13:25:25 (GMT)
committerBrad King <brad.king@kitware.com>2015-10-23 13:55:25 (GMT)
commite61973e1ab2c01f9ae5df145bfdc14e83a0cf1d9 (patch)
tree50fd4abbdf56fab437eb1c764a74b47c8bb73151 /Source/CTest/cmCTestMultiProcessHandler.cxx
parent498db9b9bcfdf391ff89ffc0b273a65d0bc1bd7e (diff)
downloadCMake-e61973e1ab2c01f9ae5df145bfdc14e83a0cf1d9.zip
CMake-e61973e1ab2c01f9ae5df145bfdc14e83a0cf1d9.tar.gz
CMake-e61973e1ab2c01f9ae5df145bfdc14e83a0cf1d9.tar.bz2
CTest: Fix regression in handling of a RUN_SERIAL test that fails
Refactoring in commit v3.4.0-rc1~390^2~1 (cmCTestMultiProcessHandler: Refactor RUN_SERIAL implementation, 2015-06-01) forgot to update a code path for cleaning up after a failed RUN_SERIAL test. This causes an infinite loop after a RUN_SERIAL test fails. Fix it and add a test.
Diffstat (limited to 'Source/CTest/cmCTestMultiProcessHandler.cxx')
-rw-r--r--Source/CTest/cmCTestMultiProcessHandler.cxx9
1 files changed, 4 insertions, 5 deletions
diff --git a/Source/CTest/cmCTestMultiProcessHandler.cxx b/Source/CTest/cmCTestMultiProcessHandler.cxx
index 4832186..7c7f5df 100644
--- a/Source/CTest/cmCTestMultiProcessHandler.cxx
+++ b/Source/CTest/cmCTestMultiProcessHandler.cxx
@@ -198,6 +198,10 @@ void cmCTestMultiProcessHandler::UnlockResources(int index)
{
this->LockedResources.erase(*i);
}
+ if (this->Properties[index]->RunSerial)
+ {
+ this->SerialTestRunning = false;
+ }
}
//---------------------------------------------------------
@@ -451,11 +455,6 @@ bool cmCTestMultiProcessHandler::CheckOutput()
this->WriteCheckpoint(test);
this->UnlockResources(test);
this->RunningCount -= GetProcessorsUsed(test);
- if (this->Properties[test]->RunSerial)
- {
- this->SerialTestRunning = false;
- }
-
delete p;
}
return true;