You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cmake/Tests/RunCMake/CommandLine/ProfilingTest-check.cmake

32 lines
1.1 KiB

if (NOT EXISTS ${ProfilingTestOutput})
set(RunCMake_TEST_FAILED "Expected ${ProfilingTestOutput} to exists")
endif()
file(READ "${ProfilingTestOutput}" JSON_HEADER LIMIT 2)
if (NOT JSON_HEADER MATCHES "^\\[{")
set(RunCMake_TEST_FAILED "Expected valid JSON start")
return()
endif()
file(SIZE "${ProfilingTestOutput}" OUTPUT_SIZE)
math(EXPR END_OFFSET "${OUTPUT_SIZE} -2 ")
file(READ "${ProfilingTestOutput}" JSON_TRAILER OFFSET ${END_OFFSET})
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()