| 
														
															@@ -2,6 +2,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															    file Copyright.txt or https://cmake.org/licensing for details.  */ 
														 | 
														
														 | 
														
															    file Copyright.txt or https://cmake.org/licensing for details.  */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 #include "cmCTestRunTest.h" 
														 | 
														
														 | 
														
															 #include "cmCTestRunTest.h" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+#include <algorithm> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 #include <chrono> 
														 | 
														
														 | 
														
															 #include <chrono> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 #include <cstddef> // IWYU pragma: keep 
														 | 
														
														 | 
														
															 #include <cstddef> // IWYU pragma: keep 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 #include <cstdint> 
														 | 
														
														 | 
														
															 #include <cstdint> 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -44,7 +45,9 @@ void cmCTestRunTest::CheckOutput(std::string const& line) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   // Check for special CTest XML tags in this line of output. 
														 | 
														
														 | 
														
															   // Check for special CTest XML tags in this line of output. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   // If any are found, this line is excluded from ProcessOutput. 
														 | 
														
														 | 
														
															   // If any are found, this line is excluded from ProcessOutput. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   if (!line.empty() && line.find("<CTest") != std::string::npos) { 
														 | 
														
														 | 
														
															   if (!line.empty() && line.find("<CTest") != std::string::npos) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    bool ctest_tag_found = false; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (this->TestHandler->CustomCompletionStatusRegex.find(line)) { 
														 | 
														
														 | 
														
															     if (this->TestHandler->CustomCompletionStatusRegex.find(line)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      ctest_tag_found = true; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       this->TestResult.CustomCompletionStatus = 
														 | 
														
														 | 
														
															       this->TestResult.CustomCompletionStatus = 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         this->TestHandler->CustomCompletionStatusRegex.match(1); 
														 | 
														
														 | 
														
															         this->TestHandler->CustomCompletionStatusRegex.match(1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, 
														 | 
														
														 | 
														
															       cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -52,6 +55,20 @@ void cmCTestRunTest::CheckOutput(std::string const& line) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                   << "Test Details changed to '" 
														 | 
														
														 | 
														
															                                   << "Test Details changed to '" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                   << this->TestResult.CustomCompletionStatus 
														 | 
														
														 | 
														
															                                   << this->TestResult.CustomCompletionStatus 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                   << "'" << std::endl); 
														 | 
														
														 | 
														
															                                   << "'" << std::endl); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } else if (this->TestHandler->CustomLabelRegex.find(line)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      ctest_tag_found = true; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      auto label = this->TestHandler->CustomLabelRegex.match(1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      auto& labels = this->TestProperties->Labels; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      if (std::find(labels.begin(), labels.end(), label) == labels.end()) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        labels.push_back(label); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        std::sort(labels.begin(), labels.end()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                   this->GetIndex() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                     << ": " 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                     << "Test Label added: '" << label << "'" << std::endl); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (ctest_tag_found) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       return; 
														 | 
														
														 | 
														
															       return; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 |