Browse Source

ctest: Remove unnecessary and ambiguous tests-from-file comment syntax

Test names can contain `#`.  Since we ignore lines that do not match any
test names anyway, "commenting" can still work without explicit syntax.
Also drop whitespace trimming for similar reasons.

Fixes: #25741
Brad King 1 year ago
parent
commit
1a4837641e

+ 2 - 2
Help/manual/ctest.1.rst

@@ -242,7 +242,7 @@ Run Tests
 
 
  This option tells CTest to run the tests which are listed in the given
  This option tells CTest to run the tests which are listed in the given
  file. The file must contain one exact test name per line.
  file. The file must contain one exact test name per line.
- Lines can be commented out using a ``#``.
+ Lines that do not exactly match any test names are ignored.
  This option can be combined with the other options like
  This option can be combined with the other options like
  ``-R``, ``-E``, ``-L`` or ``-LE``.
  ``-R``, ``-E``, ``-L`` or ``-LE``.
 
 
@@ -254,7 +254,7 @@ Run Tests
 
 
  This option tells CTest to NOT run the tests which are listed in the given
  This option tells CTest to NOT run the tests which are listed in the given
  file. The file must contain one exact test name per line.
  file. The file must contain one exact test name per line.
- Lines can be commented out using a ``#``.
+ Lines that do not exactly match any test names are ignored.
  This option can be combined with the other options like
  This option can be combined with the other options like
  ``-R``, ``-E``, ``-L`` or ``-LE``.
  ``-R``, ``-E``, ``-L`` or ``-LE``.
 
 

+ 2 - 5
Source/CTest/cmCTestTestHandler.cxx

@@ -2037,12 +2037,9 @@ cm::optional<std::set<std::string>> cmCTestTestHandler::ReadTestListFile(
     std::set<std::string> testNames;
     std::set<std::string> testNames;
     std::string line;
     std::string line;
     while (cmSystemTools::GetLineFromStream(ifs, line)) {
     while (cmSystemTools::GetLineFromStream(ifs, line)) {
-      std::string trimmed = cmTrimWhitespace(line);
-      if (trimmed.empty() || (trimmed[0] == '#')) {
-        continue;
+      if (!line.empty()) {
+        testNames.insert(line);
       }
       }
-
-      testNames.insert(trimmed);
     }
     }
     result = std::move(testNames);
     result = std::move(testNames);
   } else {
   } else {

+ 3 - 0
Tests/RunCMake/CTestCommandLine/TestsFromFile-TestList.txt

@@ -1,2 +1,5 @@
 Test1
 Test1
+
+est
+  Test11
 # Test11
 # Test11

+ 3 - 0
Tests/RunCMake/ctest_test/TestsFromFile-TestList.txt

@@ -1,2 +1,5 @@
 Test1
 Test1
+
+est
+  Test11
 # Test11
 # Test11