From ad3df3ce4dfe772c0a95eefd88628b4a800803d9 Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 20 Oct 2023 15:34:48 -0400 Subject: cmCTestMultiProcessHandler: Exclude dependent tests earlier Tests with unfinished dependencies should not be considered at all when looking for tests that fit within the load and concurrency limits. --- Source/CTest/cmCTestMultiProcessHandler.cxx | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/Source/CTest/cmCTestMultiProcessHandler.cxx b/Source/CTest/cmCTestMultiProcessHandler.cxx index a45b3db..3759af1 100644 --- a/Source/CTest/cmCTestMultiProcessHandler.cxx +++ b/Source/CTest/cmCTestMultiProcessHandler.cxx @@ -460,14 +460,7 @@ bool cmCTestMultiProcessHandler::StartTest(int test) return false; } - // if there are no depends left then run this test - if (this->PendingTests[test].Depends.empty()) { - return this->StartTestProcess(test); - } - // This test was not able to start because it is waiting - // on depends to run - this->DeallocateResources(test); - return false; + return this->StartTestProcess(test); } void cmCTestMultiProcessHandler::StartNextTests() @@ -553,6 +546,11 @@ void cmCTestMultiProcessHandler::StartNextTests() continue; } + // Exclude tests that depend on unfinished tests. + if (!this->PendingTests[test].Depends.empty()) { + continue; + } + size_t processors = this->GetProcessorsUsed(test); if (this->TestLoad > 0) { // Exclude tests that are too big to fit in the spare load. -- cgit v0.12