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.
This commit is contained in:
Brad King
2023-10-20 15:34:48 -04:00
parent 3c4767f467
commit ad3df3ce4d

View File

@@ -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.