Browse Source

cmCTestMultiProcessHandler: Consolidate test readiness checks

Brad King 2 years ago
parent
commit
5ff0b4ed57
1 changed files with 13 additions and 11 deletions
  1. 13 11
      Source/CTest/cmCTestMultiProcessHandler.cxx

+ 13 - 11
Source/CTest/cmCTestMultiProcessHandler.cxx

@@ -449,17 +449,6 @@ std::string cmCTestMultiProcessHandler::GetName(int test)
 
 bool cmCTestMultiProcessHandler::StartTest(int test)
 {
-  // Check for locked project resources.
-  for (std::string const& i : this->Properties[test]->ProjectResources) {
-    if (cm::contains(this->ProjectResourcesLocked, i)) {
-      return false;
-    }
-  }
-
-  if (!this->AllocateResources(test)) {
-    return false;
-  }
-
   return this->StartTestProcess(test);
 }
 
@@ -576,6 +565,19 @@ void cmCTestMultiProcessHandler::StartNextTests()
       continue;
     }
 
+    // Exclude tests that depend on currently-locked project resources.
+    for (std::string const& i : this->Properties[test]->ProjectResources) {
+      if (cm::contains(this->ProjectResourcesLocked, i)) {
+        continue;
+      }
+    }
+
+    // Allocate system resources needed by this test.
+    if (!this->AllocateResources(test)) {
+      continue;
+    }
+
+    // The test is ready to run.
     if (this->StartTest(test)) {
       numToStart -= processors;
     }