Tests: Cover genex behavior in CROSSCOMPILING_EMULATOR test case
A `$<TARGET_FILE:tgt>` generator expression does not cause insertion of the emulator. Add a test covering this. While at it, extend the test case to cover executables in a subdirectory. Also make the test matching expressions more robust to support multiple add_test calls without mixing them while matching.
This commit is contained in:
parent
96c8a4769f
commit
8de778118b
|
@ -4,9 +4,25 @@ if(EXISTS "${testfile}")
|
|||
else()
|
||||
message(FATAL_ERROR "Could not find expected CTestTestfile.cmake.")
|
||||
endif()
|
||||
if(testfile_contents MATCHES "add_test[(]DoesNotUseEmulator ^(pseudo_emulator)+$")
|
||||
message(SEND_ERROR "Used emulator when it should not be used.")
|
||||
|
||||
set(error_details "There is a problem with generated test file: ${testfile}")
|
||||
|
||||
if(testfile_contents MATCHES "add_test[(]DoesNotUseEmulator [^\n]+pseudo_emulator[^\n]+\n")
|
||||
message(SEND_ERROR "Used emulator when it should not be used. ${error_details}")
|
||||
endif()
|
||||
if(NOT testfile_contents MATCHES "add_test[(]UsesEmulator .+pseudo_emulator.+$")
|
||||
message(SEND_ERROR "Did not use emulator when it should be used.")
|
||||
|
||||
if(NOT testfile_contents MATCHES "add_test[(]UsesEmulator [^\n]+pseudo_emulator[^\n]+\n")
|
||||
message(SEND_ERROR "Did not use emulator when it should be used. ${error_details}")
|
||||
endif()
|
||||
|
||||
if(testfile_contents MATCHES "add_test[(]DoesNotUseEmulatorWithGenex [^\n]+pseudo_emulator[^\n]+\n")
|
||||
message(SEND_ERROR "Used emulator when it should not be used. ${error_details}")
|
||||
endif()
|
||||
|
||||
if(NOT testfile_contents MATCHES "add_test[(]UsesEmulatorWithExecTargetFromSubdirAddedWithoutGenex [^\n]+pseudo_emulator[^\n]+\n")
|
||||
message(SEND_ERROR "Did not use emulator when it should be used. ${error_details}")
|
||||
endif()
|
||||
|
||||
if(testfile_contents MATCHES "add_test[(]DoesNotUseEmulatorWithExecTargetFromSubdirAddedWithGenex [^\n]+pseudo_emulator[^\n]+\n")
|
||||
message(SEND_ERROR "Used emulator when it should not be used. ${error_details}")
|
||||
endif()
|
||||
|
|
|
@ -4,5 +4,17 @@ add_test(NAME DoesNotUseEmulator
|
|||
COMMAND ${CMAKE_COMMAND} -E echo "Hi")
|
||||
|
||||
add_executable(generated_exe simple_src.cxx)
|
||||
|
||||
add_test(NAME UsesEmulator
|
||||
COMMAND generated_exe)
|
||||
|
||||
add_test(NAME DoesNotUseEmulatorWithGenex
|
||||
COMMAND $<TARGET_FILE:generated_exe>)
|
||||
|
||||
add_subdirectory(AddTest)
|
||||
|
||||
add_test(NAME UsesEmulatorWithExecTargetFromSubdirAddedWithoutGenex
|
||||
COMMAND generated_exe_in_subdir_added_to_test_without_genex)
|
||||
|
||||
add_test(NAME DoesNotUseEmulatorWithExecTargetFromSubdirAddedWithGenex
|
||||
COMMAND $<TARGET_FILE:generated_exe_in_subdir_added_to_test_with_genex>)
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
add_executable(generated_exe_in_subdir_added_to_test_without_genex ${CMAKE_CURRENT_SOURCE_DIR}/../simple_src.cxx)
|
||||
|
||||
add_executable(generated_exe_in_subdir_added_to_test_with_genex ${CMAKE_CURRENT_SOURCE_DIR}/../simple_src.cxx)
|
Loading…
Reference in New Issue