Files
openvehicle-api/tests/cmake/run_gtest_serialized.cmake

41 lines
1.0 KiB
CMake
Raw Normal View History

cmake_minimum_required(VERSION 3.20)
if(NOT DEFINED TEST_EXE)
message(FATAL_ERROR "TEST_EXE is required")
endif()
if(NOT DEFINED TEST_XML)
message(FATAL_ERROR "TEST_XML is required")
endif()
if(NOT DEFINED LOCK_FILE)
message(FATAL_ERROR "LOCK_FILE is required")
endif()
if(NOT DEFINED TEST_EXECUTION_MODE)
set(TEST_EXECUTION_MODE "CMake")
endif()
if(NOT DEFINED LOCK_TIMEOUT_SEC)
set(LOCK_TIMEOUT_SEC 1200)
endif()
file(LOCK "${LOCK_FILE}" TIMEOUT ${LOCK_TIMEOUT_SEC} RESULT_VARIABLE LOCK_RESULT)
if(NOT LOCK_RESULT STREQUAL "0")
message(FATAL_ERROR "Failed to acquire test lock '${LOCK_FILE}': ${LOCK_RESULT}")
endif()
execute_process(
COMMAND "${CMAKE_COMMAND}" -E env
"TEST_EXECUTION_MODE=${TEST_EXECUTION_MODE}"
"${TEST_EXE}"
"--gtest_output=xml:${TEST_XML}"
RESULT_VARIABLE TEST_RESULT
)
file(LOCK "${LOCK_FILE}" RELEASE)
if(NOT TEST_RESULT EQUAL 0)
message(FATAL_ERROR "Test execution failed with code ${TEST_RESULT}: ${TEST_EXE}")
endif()