Commit 7cf2f7d2 authored by Craig Scott's avatar Craig Scott
Browse files

cmake: Store lowercase command names in profiling output

This ensures commands can be properly aggregated by tools
processing the profiling output.

Fixes: #20946
parent 6ab08c4e
...@@ -58,7 +58,7 @@ void cmMakefileProfilingData::StartEntry(const cmListFileFunction& lff, ...@@ -58,7 +58,7 @@ void cmMakefileProfilingData::StartEntry(const cmListFileFunction& lff,
cmsys::SystemInformation info; cmsys::SystemInformation info;
Json::Value v; Json::Value v;
v["ph"] = "B"; v["ph"] = "B";
v["name"] = lff.Name.Original; v["name"] = lff.Name.Lower;
v["cat"] = "cmake"; v["cat"] = "cmake";
v["ts"] = Json::Value::UInt64( v["ts"] = Json::Value::UInt64(
std::chrono::duration_cast<std::chrono::microseconds>( std::chrono::duration_cast<std::chrono::microseconds>(
...@@ -16,3 +16,16 @@ if (NOT JSON_TRAILER MATCHES "^}]$") ...@@ -16,3 +16,16 @@ if (NOT JSON_TRAILER MATCHES "^}]$")
set(RunCMake_TEST_FAILED "Expected valid JSON end") set(RunCMake_TEST_FAILED "Expected valid JSON end")
return() return()
endif() endif()
file(STRINGS ${ProfilingTestOutput} upperCaseCommand
REGEX [["name"[ ]*:[ ]*"__TESTING_COMMAND_CASE"]])
if (NOT "${upperCaseCommand}" STREQUAL "")
set(RunCMake_TEST_FAILED "Command name not stored in lowercase")
file(STRINGS ${ProfilingTestOutput} lowerCaseCommand
REGEX [["name"[ ]*:[ ]*"__testing_command_case"]])
list(LENGTH lowerCaseCommand numInvocations)
if (NOT numInvocations EQUAL 1)
"Unexpected number of lowercase command names: ${numInvocations}")
# This file is intentionally left blank function(__testing_command_case)
# This must not appear in the profiling output as uppercase
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment