summaryrefslogtreecommitdiffstats
path: root/Source/CTest
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-10-20 19:26:10 (GMT)
committerBrad King <brad.king@kitware.com>2023-11-17 23:42:17 (GMT)
commit8f1e8af0ccec06b69f25d01d1f27d967a3501f14 (patch)
tree19a2aeff9b190abd8d01da2c7222ea0b8b1ed2f0 /Source/CTest
parentbd0b4ca867c297a42b3128e0193c6ab01f1b53ec (diff)
downloadCMake-8f1e8af0ccec06b69f25d01d1f27d967a3501f14.zip
CMake-8f1e8af0ccec06b69f25d01d1f27d967a3501f14.tar.gz
CMake-8f1e8af0ccec06b69f25d01d1f27d967a3501f14.tar.bz2
cmCTestMultiProcessHandler: Stop searching for tests when limit is reached
Avoid an extra loop iteration if we have no room for more tests.
Diffstat (limited to 'Source/CTest')
-rw-r--r--Source/CTest/cmCTestMultiProcessHandler.cxx12
1 files changed, 8 insertions, 4 deletions
diff --git a/Source/CTest/cmCTestMultiProcessHandler.cxx b/Source/CTest/cmCTestMultiProcessHandler.cxx
index d4cda42..31b7422 100644
--- a/Source/CTest/cmCTestMultiProcessHandler.cxx
+++ b/Source/CTest/cmCTestMultiProcessHandler.cxx
@@ -542,7 +542,7 @@ void cmCTestMultiProcessHandler::StartNextTests()
// Start tests in the preferred order, each subject to readiness checks.
auto ti = this->OrderedTests.begin();
- while (ti != this->OrderedTests.end()) {
+ while (numToStart > 0 && ti != this->OrderedTests.end()) {
// Increment the test iterator now because the current list
// entry may be deleted below.
int test = *ti++;
@@ -584,8 +584,6 @@ void cmCTestMultiProcessHandler::StartNextTests()
if (this->StartTest(test)) {
numToStart -= processors;
- } else if (numToStart == 0) {
- break;
}
}
@@ -606,7 +604,7 @@ void cmCTestMultiProcessHandler::StartNextTests()
} else if (onlyRunSerialTestsLeft) {
cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT,
"Only RUN_SERIAL tests remain, awaiting available slot.");
- } else {
+ } else if (!testWithMinProcessors.empty()) {
/* clang-format off */
cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT,
"System Load: " << systemLoad << ", "
@@ -614,6 +612,12 @@ void cmCTestMultiProcessHandler::StartNextTests()
"Smallest test " << testWithMinProcessors <<
" requires " << minProcessorsRequired);
/* clang-format on */
+ } else {
+ /* clang-format off */
+ cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT,
+ "System Load: " << systemLoad << ", "
+ "Max Allowed Load: " << this->TestLoad);
+ /* clang-format on */
}
cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "*****" << std::endl);