create_test_sourcelist: Add support for more special characters in paths

Use `cmSystemTools::MakeCidentifier` to robustly create a valid function
name to which the test path maps.

Fixes: #23855
This commit is contained in:
Klaas Speller
2022-08-17 13:42:32 +02:00
committed by Brad King
parent ca2f19ca9c
commit f0802b2f50

View File

@@ -87,9 +87,7 @@ bool cmCreateTestSourceList(std::vector<std::string> const& args,
func_name = cmSystemTools::GetFilenameWithoutLastExtension(*i);
}
cmSystemTools::ConvertToUnixSlashes(func_name);
std::replace(func_name.begin(), func_name.end(), ' ', '_');
std::replace(func_name.begin(), func_name.end(), '/', '_');
std::replace(func_name.begin(), func_name.end(), ':', '_');
func_name = cmSystemTools::MakeCidentifier(func_name);
bool already_declared =
std::find(tests_func_name.begin(), tests_func_name.end(), func_name) !=
tests_func_name.end();