Просмотр исходного кода

Merge topic 'test-CROSSCOMPILING_EMULATOR'

eccfc0d1 Tests: Improve source file name in RunCMake.CrosscompilingEmulator
8de77811 Tests: Cover genex behavior in CROSSCOMPILING_EMULATOR test case
Brad King 9 лет назад
Родитель
Сommit
cc46264307

+ 20 - 4
Tests/RunCMake/CrosscompilingEmulator/AddTest-check.cmake

@@ -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()

+ 13 - 1
Tests/RunCMake/CrosscompilingEmulator/AddTest.cmake

@@ -3,6 +3,18 @@ enable_testing()
 add_test(NAME DoesNotUseEmulator
   COMMAND ${CMAKE_COMMAND} -E echo "Hi")
 
-add_executable(generated_exe simple_src.cxx)
+add_executable(generated_exe simple_src_exiterror.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>)

+ 5 - 0
Tests/RunCMake/CrosscompilingEmulator/AddTest/CMakeLists.txt

@@ -0,0 +1,5 @@
+add_executable(generated_exe_in_subdir_added_to_test_without_genex
+  ${CMAKE_CURRENT_SOURCE_DIR}/../simple_src_exiterror.cxx)
+
+add_executable(generated_exe_in_subdir_added_to_test_with_genex
+  ${CMAKE_CURRENT_SOURCE_DIR}/../simple_src_exiterror.cxx)

+ 2 - 2
Tests/RunCMake/CrosscompilingEmulator/CrosscompilingEmulatorProperty.cmake

@@ -3,7 +3,7 @@
 
 # -DCMAKE_CROSSCOMPILING_EMULATOR=/path/to/pseudo_emulator is passed to this
 # test
-add_executable(target_with_emulator simple_src.cxx)
+add_executable(target_with_emulator simple_src_exiterror.cxx)
 get_property(emulator TARGET target_with_emulator
              PROPERTY CROSSCOMPILING_EMULATOR)
 if(NOT "${emulator}" MATCHES "pseudo_emulator")
@@ -20,7 +20,7 @@ if(NOT "${emulator}" MATCHES "another_emulator")
 endif()
 
 unset(CMAKE_CROSSCOMPILING_EMULATOR CACHE)
-add_executable(target_without_emulator simple_src.cxx)
+add_executable(target_without_emulator simple_src_exiterror.cxx)
 get_property(emulator TARGET target_without_emulator
              PROPERTY CROSSCOMPILING_EMULATOR)
 if(NOT "${emulator}" STREQUAL "")

+ 2 - 2
Tests/RunCMake/CrosscompilingEmulator/TryRun.cmake

@@ -2,7 +2,7 @@ set(CMAKE_CROSSCOMPILING 1)
 
 try_run(run_result compile_result
   ${CMAKE_CURRENT_BINARY_DIR}
-  ${CMAKE_CURRENT_SOURCE_DIR}/simple_src.cxx
+  ${CMAKE_CURRENT_SOURCE_DIR}/simple_src_exiterror.cxx
   RUN_OUTPUT_VARIABLE run_output)
 
 message(STATUS "run_output: ${run_output}")
@@ -13,6 +13,6 @@ set(CMAKE_CROSSCOMPILING_EMULATOR ${CMAKE_CROSSCOMPILING_EMULATOR}
   "multi arg")
 try_run(run_result compile_result
   ${CMAKE_CURRENT_BINARY_DIR}
-  ${CMAKE_CURRENT_SOURCE_DIR}/simple_src.cxx
+  ${CMAKE_CURRENT_SOURCE_DIR}/simple_src_exiterror.cxx
   RUN_OUTPUT_VARIABLE run_output)
 message(STATUS "Emulator with arguments run_output: ${run_output}")

+ 0 - 0
Tests/RunCMake/CrosscompilingEmulator/simple_src.cxx → Tests/RunCMake/CrosscompilingEmulator/simple_src_exiterror.cxx