summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorCraig Scott <craig.scott@crascit.com>2020-07-13 00:22:22 (GMT)
committerCraig Scott <craig.scott@crascit.com>2020-07-13 01:03:05 (GMT)
commit7cf2f7d2af708d262fc57b19c76b8d2fc63386e9 (patch)
tree0efa30fdc3c65d09dfe1648047c82541246ada8c /Tests
parent6ab08c4e99469439900c1cdc02fd2452ab268a87 (diff)
downloadCMake-7cf2f7d2af708d262fc57b19c76b8d2fc63386e9.zip
CMake-7cf2f7d2af708d262fc57b19c76b8d2fc63386e9.tar.gz
CMake-7cf2f7d2af708d262fc57b19c76b8d2fc63386e9.tar.bz2
cmake: Store lowercase command names in profiling output
This ensures commands can be properly aggregated by tools processing the profiling output. Fixes: #20946
Diffstat (limited to 'Tests')
-rw-r--r--Tests/RunCMake/CommandLine/ProfilingTest-check.cmake13
-rw-r--r--Tests/RunCMake/CommandLine/ProfilingTest.cmake6
2 files changed, 18 insertions, 1 deletions
diff --git a/Tests/RunCMake/CommandLine/ProfilingTest-check.cmake b/Tests/RunCMake/CommandLine/ProfilingTest-check.cmake
index 19ece86..2e8eac1 100644
--- a/Tests/RunCMake/CommandLine/ProfilingTest-check.cmake
+++ b/Tests/RunCMake/CommandLine/ProfilingTest-check.cmake
@@ -16,3 +16,16 @@ if (NOT JSON_TRAILER MATCHES "^}]$")
set(RunCMake_TEST_FAILED "Expected valid JSON end")
return()
endif()
+
+file(STRINGS ${ProfilingTestOutput} upperCaseCommand
+ REGEX [["name"[ ]*:[ ]*"__TESTING_COMMAND_CASE"]])
+if (NOT "${upperCaseCommand}" STREQUAL "")
+ set(RunCMake_TEST_FAILED "Command name not stored in lowercase")
+endif()
+file(STRINGS ${ProfilingTestOutput} lowerCaseCommand
+ REGEX [["name"[ ]*:[ ]*"__testing_command_case"]])
+list(LENGTH lowerCaseCommand numInvocations)
+if (NOT numInvocations EQUAL 1)
+ set(RunCMake_TEST_FAILED
+ "Unexpected number of lowercase command names: ${numInvocations}")
+endif()
diff --git a/Tests/RunCMake/CommandLine/ProfilingTest.cmake b/Tests/RunCMake/CommandLine/ProfilingTest.cmake
index 837f4bf..4cf0c30 100644
--- a/Tests/RunCMake/CommandLine/ProfilingTest.cmake
+++ b/Tests/RunCMake/CommandLine/ProfilingTest.cmake
@@ -1 +1,5 @@
-# This file is intentionally left blank
+function(__testing_command_case)
+endfunction()
+
+# This must not appear in the profiling output as uppercase
+__TESTING_COMMAND_CASE()