mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-26 18:58:34 -06:00
Merge topic 'test-launcher-emulator'
fb766ff638Tests: Improve RunCMake.add_test TEST_LAUNCHER coveragec5b58b0842Tests: Improve RunCMake.add_test error formattingb440e0af3fTests: Improve RunCMake.CrosscompilingEmulator coverage54edf3471eTests: Improve RunCMake.CrosscompilingEmulator error formatting2b5447d4a8Tests: Shorten RunCMake.CrosscompilingEmulator executable names10f906106eTests: Teach pseudo_emulator helper to pass by default Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !9192
This commit is contained in:
@@ -490,7 +490,7 @@ add_RunCMake_test(add_dependencies)
|
||||
add_RunCMake_test(add_executable)
|
||||
add_RunCMake_test(add_library)
|
||||
add_RunCMake_test(add_subdirectory -DCMAKE_Fortran_COMPILER=${CMAKE_Fortran_COMPILER})
|
||||
add_RunCMake_test(add_test)
|
||||
add_RunCMake_test(add_test -DPSEUDO_EMULATOR=$<TARGET_FILE:pseudo_emulator>)
|
||||
add_RunCMake_test(build_command)
|
||||
add_executable(exit_code exit_code.c)
|
||||
set(execute_process_ARGS
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
foreach(output IN ITEMS output1 output2 output3 output4)
|
||||
if(NOT EXISTS "${RunCMake_TEST_BINARY_DIR}/${output}")
|
||||
message(FATAL_ERROR "Failed to create output: ${RunCMake_TEST_BINARY_DIR}/${output}")
|
||||
set(RunCMake_TEST_FAILED "Failed to create output:\n ${RunCMake_TEST_BINARY_DIR}/${output}")
|
||||
return()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
enable_language(C)
|
||||
set(CMAKE_CROSSCOMPILING 1)
|
||||
|
||||
# Executable: Return error code different from 0
|
||||
add_executable(generated_exe_emulator_expected simple_src_exiterror.cxx)
|
||||
add_executable(generated_exe_emulator_expected simple_src_exiterror.c)
|
||||
|
||||
# Executable: Return error code equal to 0
|
||||
add_executable(generated_exe_emulator_unexpected generated_exe_emulator_unexpected.cxx)
|
||||
add_executable(generated_exe_emulator_unexpected emulator_unexpected.c)
|
||||
# Place the executable in a predictable location.
|
||||
set_property(TARGET generated_exe_emulator_unexpected PROPERTY RUNTIME_OUTPUT_DIRECTORY $<1:${CMAKE_CURRENT_BINARY_DIR}>)
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
if(NOT EXISTS "${RunCMake_TEST_BINARY_DIR}/output")
|
||||
message(FATAL_ERROR "Failed to create output: ${RunCMake_TEST_BINARY_DIR}/output")
|
||||
set(RunCMake_TEST_FAILED "Failed to create output:\n ${RunCMake_TEST_BINARY_DIR}/output")
|
||||
return()
|
||||
endif()
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
enable_language(C)
|
||||
set(CMAKE_CROSSCOMPILING 1)
|
||||
|
||||
# Executable: Return error code different from 0
|
||||
add_executable(generated_exe_emulator_expected simple_src_exiterror.cxx)
|
||||
add_executable(generated_exe_emulator_expected simple_src_exiterror.c)
|
||||
|
||||
add_custom_command(OUTPUT output
|
||||
COMMAND generated_exe_emulator_expected
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
enable_language(C)
|
||||
set(CMAKE_CROSSCOMPILING 1)
|
||||
|
||||
# Executable: Return error code different from 0
|
||||
add_executable(generated_exe_emulator_expected simple_src_exiterror.cxx)
|
||||
add_executable(generated_exe_emulator_expected simple_src_exiterror.c)
|
||||
|
||||
# Executable: Return error code equal to 0
|
||||
add_executable(generated_exe_emulator_unexpected generated_exe_emulator_unexpected.cxx)
|
||||
add_executable(generated_exe_emulator_unexpected emulator_unexpected.c)
|
||||
# Place the executable in a predictable location.
|
||||
set_property(TARGET generated_exe_emulator_unexpected PROPERTY RUNTIME_OUTPUT_DIRECTORY $<1:${CMAKE_CURRENT_BINARY_DIR}>)
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
enable_language(C)
|
||||
set(CMAKE_CROSSCOMPILING 1)
|
||||
|
||||
# Executable: Return error code different from 0
|
||||
add_executable(generated_exe_emulator_expected simple_src_exiterror.cxx)
|
||||
add_executable(generated_exe_emulator_expected simple_src_exiterror.c)
|
||||
|
||||
add_custom_target(generate_output ALL
|
||||
generated_exe_emulator_expected
|
||||
|
||||
@@ -2,27 +2,33 @@ set(testfile "${RunCMake_TEST_BINARY_DIR}/CTestTestfile.cmake")
|
||||
if(EXISTS "${testfile}")
|
||||
file(READ "${testfile}" testfile_contents)
|
||||
else()
|
||||
message(FATAL_ERROR "Could not find expected CTestTestfile.cmake.")
|
||||
set(RunCMake_TEST_FAILED "Could not find expected CTestTestfile.cmake.")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(error_details "There is a problem with generated test file: ${testfile}")
|
||||
set(error_details "There is a problem with generated test file:\n ${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}")
|
||||
set(RunCMake_TEST_FAILED "Used emulator when it should not be used. ${error_details}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(testfile_contents MATCHES "add_test[(]ShouldNotUseEmulator [^\n]+pseudo_emulator[^\n]+\n")
|
||||
message(SEND_ERROR "Used emulator when it should be used. ${error_details}")
|
||||
set(RunCMake_TEST_FAILED "Used emulator when it should be used. ${error_details}")
|
||||
return()
|
||||
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}")
|
||||
set(RunCMake_TEST_FAILED "Used emulator when it should not be used. ${error_details}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(testfile_contents MATCHES "add_test[(]ShouldNotUseEmulatorWithExecTargetFromSubdirAddedWithoutGenex [^\n]+pseudo_emulator[^\n]+\n")
|
||||
message(SEND_ERROR "Used emulator when it should be used. ${error_details}")
|
||||
set(RunCMake_TEST_FAILED "Used emulator when it should be used. ${error_details}")
|
||||
return()
|
||||
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}")
|
||||
set(RunCMake_TEST_FAILED "Used emulator when it should not be used. ${error_details}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
test 1
|
||||
Start 1: DoesNotUseEmulator
|
||||
|
||||
1: Test command: "?[^
|
||||
]*[/\]cmake(\.exe)?"? "-E" "echo" "Hi"
|
||||
1: Working Directory: [^
|
||||
]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-CMP0158-NEW-build
|
||||
1: Test timeout computed to be: [0-9]+
|
||||
1: Hi
|
||||
1/5 Test #1: DoesNotUseEmulator [.]* +Passed +[0-9.]+ sec
|
||||
test 2
|
||||
Start 2: ShouldNotUseEmulator
|
||||
|
||||
2: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake[/\]CrosscompilingEmulator[/\]AddTest-CMP0158-NEW-build([/\]Debug)?[/\]exe(\.exe)?"?
|
||||
2: Working Directory: [^
|
||||
]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-CMP0158-NEW-build
|
||||
2: Test timeout computed to be: [0-9]+
|
||||
2/5 Test #2: ShouldNotUseEmulator [.]* +Passed +[0-9.]+ sec
|
||||
test 3
|
||||
Start 3: DoesNotUseEmulatorWithGenex
|
||||
|
||||
3: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake[/\]CrosscompilingEmulator[/\]AddTest-CMP0158-NEW-build([/\]Debug)?[/\]exe(\.exe)?"?
|
||||
3: Working Directory: [^
|
||||
]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-CMP0158-NEW-build
|
||||
3: Test timeout computed to be: [0-9]+
|
||||
3/5 Test #3: DoesNotUseEmulatorWithGenex [.]* +Passed +[0-9.]+ sec
|
||||
test 4
|
||||
Start 4: ShouldNotUseEmulatorWithExecTargetFromSubdirAddedWithoutGenex
|
||||
|
||||
4: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake[/\]CrosscompilingEmulator[/\]AddTest-CMP0158-NEW-build[/\]AddTest([/\]Debug)?[/\]subdir_exe_no_genex(\.exe)?"?
|
||||
4: Working Directory: [^
|
||||
]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-CMP0158-NEW-build
|
||||
4: Test timeout computed to be: [0-9]+
|
||||
4/5 Test #4: ShouldNotUseEmulatorWithExecTargetFromSubdirAddedWithoutGenex [.]* +Passed +[0-9.]+ sec
|
||||
test 5
|
||||
Start 5: DoesNotUseEmulatorWithExecTargetFromSubdirAddedWithGenex
|
||||
|
||||
5: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake[/\]CrosscompilingEmulator[/\]AddTest-CMP0158-NEW-build[/\]AddTest([/\]Debug)?[/\]subdir_exe_with_genex(\.exe)?"?
|
||||
5: Working Directory: [^
|
||||
]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-CMP0158-NEW-build
|
||||
5: Test timeout computed to be: [0-9]+
|
||||
5/5 Test #5: DoesNotUseEmulatorWithExecTargetFromSubdirAddedWithGenex [.]* +Passed +[0-9.]+ sec
|
||||
@@ -1,5 +1,7 @@
|
||||
enable_language(C)
|
||||
enable_testing()
|
||||
if(CMAKE_CROSSCOMPILING)
|
||||
message(FATAL_ERROR "cross compiling")
|
||||
message(FATAL_ERROR "cross compiling")
|
||||
endif()
|
||||
|
||||
cmake_policy(SET CMP0158 NEW)
|
||||
@@ -8,18 +10,18 @@ enable_testing()
|
||||
add_test(NAME DoesNotUseEmulator
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Hi")
|
||||
|
||||
add_executable(generated_exe simple_src_exiterror.cxx)
|
||||
add_executable(exe main.c)
|
||||
|
||||
add_test(NAME ShouldNotUseEmulator
|
||||
COMMAND generated_exe)
|
||||
COMMAND exe)
|
||||
|
||||
add_test(NAME DoesNotUseEmulatorWithGenex
|
||||
COMMAND $<TARGET_FILE:generated_exe>)
|
||||
COMMAND $<TARGET_FILE:exe>)
|
||||
|
||||
add_subdirectory(AddTest)
|
||||
|
||||
add_test(NAME ShouldNotUseEmulatorWithExecTargetFromSubdirAddedWithoutGenex
|
||||
COMMAND generated_exe_in_subdir_added_to_test_without_genex)
|
||||
COMMAND subdir_exe_no_genex)
|
||||
|
||||
add_test(NAME DoesNotUseEmulatorWithExecTargetFromSubdirAddedWithGenex
|
||||
COMMAND $<TARGET_FILE:generated_exe_in_subdir_added_to_test_with_genex>)
|
||||
COMMAND $<TARGET_FILE:subdir_exe_with_genex>)
|
||||
|
||||
@@ -2,27 +2,33 @@ set(testfile "${RunCMake_TEST_BINARY_DIR}/CTestTestfile.cmake")
|
||||
if(EXISTS "${testfile}")
|
||||
file(READ "${testfile}" testfile_contents)
|
||||
else()
|
||||
message(FATAL_ERROR "Could not find expected CTestTestfile.cmake.")
|
||||
set(RunCMake_TEST_FAILED "Could not find expected CTestTestfile.cmake.")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(error_details "There is a problem with generated test file: ${testfile}")
|
||||
set(error_details "There is a problem with generated test file:\n ${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}")
|
||||
set(RunCMake_TEST_FAILED "Used emulator when it should not be used. ${error_details}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
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}")
|
||||
set(RunCMake_TEST_FAILED "Did not use emulator when it should be used. ${error_details}")
|
||||
return()
|
||||
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}")
|
||||
set(RunCMake_TEST_FAILED "Used emulator when it should not be used. ${error_details}")
|
||||
return()
|
||||
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}")
|
||||
set(RunCMake_TEST_FAILED "Did not use emulator when it should be used. ${error_details}")
|
||||
return()
|
||||
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}")
|
||||
set(RunCMake_TEST_FAILED "Used emulator when it should not be used. ${error_details}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
test 1
|
||||
Start 1: DoesNotUseEmulator
|
||||
|
||||
1: Test command: "?[^
|
||||
]*[/\]cmake(\.exe)?"? "-E" "echo" "Hi"
|
||||
1: Working Directory: [^
|
||||
]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-CMP0158-OLD-build
|
||||
1: Test timeout computed to be: [0-9]+
|
||||
1: Hi
|
||||
1/5 Test #1: DoesNotUseEmulator [.]* +Passed +[0-9.]+ sec
|
||||
test 2
|
||||
Start 2: UsesEmulator
|
||||
|
||||
2: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake([/\][^/\]+)?[/\]pseudo_emulator(\.exe)?"? "[^"]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-CMP0158-OLD-build(/Debug)?/exe(\.exe)?"
|
||||
2: Working Directory: [^
|
||||
]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-CMP0158-OLD-build
|
||||
2: Test timeout computed to be: [0-9]+
|
||||
2: Command: "[^"]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-CMP0158-OLD-build(/Debug)?/exe(\.exe)?"
|
||||
2/5 Test #2: UsesEmulator [.]* +Passed +[0-9.]+ sec
|
||||
test 3
|
||||
Start 3: DoesNotUseEmulatorWithGenex
|
||||
|
||||
3: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake[/\]CrosscompilingEmulator[/\]AddTest-CMP0158-OLD-build([/\]Debug)?[/\]exe(\.exe)?"?
|
||||
3: Working Directory: [^
|
||||
]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-CMP0158-OLD-build
|
||||
3: Test timeout computed to be: [0-9]+
|
||||
3/5 Test #3: DoesNotUseEmulatorWithGenex [.]* +Passed +[0-9.]+ sec
|
||||
test 4
|
||||
Start 4: UsesEmulatorWithExecTargetFromSubdirAddedWithoutGenex
|
||||
|
||||
4: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake([/\][^/\]+)?[/\]pseudo_emulator(\.exe)?"? "[^"]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-CMP0158-OLD-build/AddTest(/Debug)?/subdir_exe_no_genex(\.exe)?"
|
||||
4: Working Directory: [^
|
||||
]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-CMP0158-OLD-build
|
||||
4: Test timeout computed to be: [0-9]+
|
||||
4: Command: "[^"]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-CMP0158-OLD-build/AddTest(/Debug)?/subdir_exe_no_genex(\.exe)?"
|
||||
4/5 Test #4: UsesEmulatorWithExecTargetFromSubdirAddedWithoutGenex [.]* +Passed +[0-9.]+ sec
|
||||
test 5
|
||||
Start 5: DoesNotUseEmulatorWithExecTargetFromSubdirAddedWithGenex
|
||||
|
||||
5: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake[/\]CrosscompilingEmulator[/\]AddTest-CMP0158-OLD-build[/\]AddTest([/\]Debug)?[/\]subdir_exe_with_genex(\.exe)?"?
|
||||
5: Working Directory: [^
|
||||
]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-CMP0158-OLD-build
|
||||
5: Test timeout computed to be: [0-9]+
|
||||
5/5 Test #5: DoesNotUseEmulatorWithExecTargetFromSubdirAddedWithGenex [.]* +Passed +[0-9.]+ sec
|
||||
@@ -1,25 +1,26 @@
|
||||
enable_language(C)
|
||||
enable_testing()
|
||||
if(CMAKE_CROSSCOMPILING)
|
||||
message(FATAL_ERROR "cross compiling")
|
||||
message(FATAL_ERROR "cross compiling")
|
||||
endif()
|
||||
|
||||
cmake_policy(SET CMP0158 OLD)
|
||||
|
||||
enable_testing()
|
||||
add_test(NAME DoesNotUseEmulator
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Hi")
|
||||
|
||||
add_executable(generated_exe simple_src_exiterror.cxx)
|
||||
add_executable(exe main.c)
|
||||
|
||||
add_test(NAME UsesEmulator
|
||||
COMMAND generated_exe)
|
||||
COMMAND exe)
|
||||
|
||||
add_test(NAME DoesNotUseEmulatorWithGenex
|
||||
COMMAND $<TARGET_FILE:generated_exe>)
|
||||
COMMAND $<TARGET_FILE:exe>)
|
||||
|
||||
add_subdirectory(AddTest)
|
||||
|
||||
add_test(NAME UsesEmulatorWithExecTargetFromSubdirAddedWithoutGenex
|
||||
COMMAND generated_exe_in_subdir_added_to_test_without_genex)
|
||||
COMMAND subdir_exe_no_genex)
|
||||
|
||||
add_test(NAME DoesNotUseEmulatorWithExecTargetFromSubdirAddedWithGenex
|
||||
COMMAND $<TARGET_FILE:generated_exe_in_subdir_added_to_test_with_genex>)
|
||||
COMMAND $<TARGET_FILE:subdir_exe_with_genex>)
|
||||
|
||||
@@ -2,31 +2,38 @@ set(testfile "${RunCMake_TEST_BINARY_DIR}/CTestTestfile.cmake")
|
||||
if(EXISTS "${testfile}")
|
||||
file(READ "${testfile}" testfile_contents)
|
||||
else()
|
||||
message(FATAL_ERROR "Could not find expected CTestTestfile.cmake.")
|
||||
set(RunCMake_TEST_FAILED "Could not find expected CTestTestfile.cmake.")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(error_details "There is a problem with generated test file: ${testfile}")
|
||||
set(error_details "There is a problem with generated test file:\n ${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}")
|
||||
set(RunCMake_TEST_FAILED "Used emulator when it should not be used. ${error_details}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
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}")
|
||||
set(RunCMake_TEST_FAILED "Did not use emulator when it should be used. ${error_details}")
|
||||
return()
|
||||
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}")
|
||||
set(RunCMake_TEST_FAILED "Used emulator when it should not be used. ${error_details}")
|
||||
return()
|
||||
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}")
|
||||
set(RunCMake_TEST_FAILED "Did not use emulator when it should be used. ${error_details}")
|
||||
return()
|
||||
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}")
|
||||
set(RunCMake_TEST_FAILED "Used emulator when it should not be used. ${error_details}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(NOT testfile_contents MATCHES "add_test[(]UsesTestLauncherAndEmulator[^\n]+pseudo_test_launcher.*pseudo_emulator[^\n]+\n")
|
||||
message(SEND_ERROR "Did not use test launcher and emulator when they should be used. ${error_details}")
|
||||
if(NOT testfile_contents MATCHES "add_test[(]UsesTestLauncherAndEmulator[^\n]+pseudo_emulator[^\n]+pseudo_emulator[^\n]+\n")
|
||||
set(RunCMake_TEST_FAILED "Did not use test launcher and emulator when they should be used. ${error_details}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
test 1
|
||||
Start 1: DoesNotUseEmulator
|
||||
|
||||
1: Test command: "?[^
|
||||
]*[/\]cmake(\.exe)?"? "-E" "echo" "Hi"
|
||||
1: Working Directory: [^
|
||||
]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-build
|
||||
1: Test timeout computed to be: [0-9]+
|
||||
1: Hi
|
||||
1/6 Test #1: DoesNotUseEmulator [.]* +Passed +[0-9.]+ sec
|
||||
test 2
|
||||
Start 2: UsesEmulator
|
||||
|
||||
2: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake([/\][^/\]+)?[/\]pseudo_emulator(\.exe)?"? "[^"]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-build(/Debug)?/exe(\.exe)?"
|
||||
2: Working Directory: [^
|
||||
]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-build
|
||||
2: Test timeout computed to be: [0-9]+
|
||||
2: Command: "[^"]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-build(/Debug)?/exe(\.exe)?"
|
||||
2/6 Test #2: UsesEmulator [.]* +Passed +[0-9.]+ sec
|
||||
test 3
|
||||
Start 3: DoesNotUseEmulatorWithGenex
|
||||
|
||||
3: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake[/\]CrosscompilingEmulator[/\]AddTest-build([/\]Debug)?[/\]exe(\.exe)?"?
|
||||
3: Working Directory: [^
|
||||
]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-build
|
||||
3: Test timeout computed to be: [0-9]+
|
||||
3/6 Test #3: DoesNotUseEmulatorWithGenex [.]* +Passed +[0-9.]+ sec
|
||||
test 4
|
||||
Start 4: UsesEmulatorWithExecTargetFromSubdirAddedWithoutGenex
|
||||
|
||||
4: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake([/\][^/\]+)?[/\]pseudo_emulator(\.exe)?"? "[^"]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-build/AddTest(/Debug)?/subdir_exe_no_genex(\.exe)?"
|
||||
4: Working Directory: [^
|
||||
]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-build
|
||||
4: Test timeout computed to be: [0-9]+
|
||||
4: Command: "[^"]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-build/AddTest(/Debug)?/subdir_exe_no_genex(\.exe)?"
|
||||
4/6 Test #4: UsesEmulatorWithExecTargetFromSubdirAddedWithoutGenex [.]* +Passed +[0-9.]+ sec
|
||||
test 5
|
||||
Start 5: DoesNotUseEmulatorWithExecTargetFromSubdirAddedWithGenex
|
||||
|
||||
5: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake[/\]CrosscompilingEmulator[/\]AddTest-build[/\]AddTest([/\]Debug)?[/\]subdir_exe_with_genex(\.exe)?"?
|
||||
5: Working Directory: [^
|
||||
]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-build
|
||||
5: Test timeout computed to be: [0-9]+
|
||||
5/6 Test #5: DoesNotUseEmulatorWithExecTargetFromSubdirAddedWithGenex [.]* +Passed +[0-9.]+ sec
|
||||
test 6
|
||||
Start 6: UsesTestLauncherAndEmulator
|
||||
|
||||
6: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake([/\][^/\]+)?[/\]pseudo_emulator(\.exe)?"? "[^"]*/Tests/RunCMake(/[^/]+)?/pseudo_emulator(\.exe)?" "[^"]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-build(/Debug)?/exe_test_launcher(\.exe)?"
|
||||
6: Working Directory: [^
|
||||
]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-build
|
||||
6: Test timeout computed to be: [0-9]+
|
||||
6: Command: "[^"]*/Tests/RunCMake(/[^/]+)?/pseudo_emulator(\.exe)?" "[^"]*/Tests/RunCMake/CrosscompilingEmulator/AddTest-build(/Debug)?/exe_test_launcher(\.exe)?"
|
||||
6/6 Test #6: UsesTestLauncherAndEmulator [.]* +Passed +[0-9.]+ sec
|
||||
@@ -1,26 +1,28 @@
|
||||
set(CMAKE_CROSSCOMPILING 1)
|
||||
enable_language(C)
|
||||
enable_testing()
|
||||
set(CMAKE_CROSSCOMPILING 1)
|
||||
|
||||
add_test(NAME DoesNotUseEmulator
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Hi")
|
||||
|
||||
add_executable(generated_exe simple_src_exiterror.cxx)
|
||||
add_executable(exe main.c)
|
||||
|
||||
add_test(NAME UsesEmulator
|
||||
COMMAND generated_exe)
|
||||
COMMAND exe)
|
||||
|
||||
add_test(NAME DoesNotUseEmulatorWithGenex
|
||||
COMMAND $<TARGET_FILE:generated_exe>)
|
||||
COMMAND $<TARGET_FILE:exe>)
|
||||
|
||||
add_subdirectory(AddTest)
|
||||
|
||||
add_test(NAME UsesEmulatorWithExecTargetFromSubdirAddedWithoutGenex
|
||||
COMMAND generated_exe_in_subdir_added_to_test_without_genex)
|
||||
COMMAND subdir_exe_no_genex)
|
||||
|
||||
add_test(NAME DoesNotUseEmulatorWithExecTargetFromSubdirAddedWithGenex
|
||||
COMMAND $<TARGET_FILE:generated_exe_in_subdir_added_to_test_with_genex>)
|
||||
COMMAND $<TARGET_FILE:subdir_exe_with_genex>)
|
||||
|
||||
add_executable(generated_exe_test_launcher simple_src_exiterror.cxx)
|
||||
set_property(TARGET generated_exe_test_launcher PROPERTY TEST_LAUNCHER "pseudo_test_launcher")
|
||||
set(CMAKE_TEST_LAUNCHER ${CMAKE_CROSSCOMPILING_EMULATOR})
|
||||
add_executable(exe_test_launcher main.c)
|
||||
|
||||
add_test(NAME UsesTestLauncherAndEmulator
|
||||
COMMAND generated_exe_test_launcher)
|
||||
COMMAND exe_test_launcher)
|
||||
|
||||
@@ -1,5 +1,2 @@
|
||||
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)
|
||||
add_executable(subdir_exe_no_genex ../main.c)
|
||||
add_executable(subdir_exe_with_genex ../main.c)
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
project(${RunCMake_TEST} CXX)
|
||||
project(${RunCMake_TEST} NONE)
|
||||
include(${RunCMake_TEST}.cmake)
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
# This tests setting the CROSSCOMPILING_EMULATOR target property from the
|
||||
# CMAKE_CROSSCOMPILING_EMULATOR variable.
|
||||
|
||||
enable_language(C)
|
||||
|
||||
# -DCMAKE_CROSSCOMPILING_EMULATOR=/path/to/pseudo_emulator is passed to this
|
||||
# test
|
||||
add_executable(target_with_emulator simple_src_exiterror.cxx)
|
||||
add_executable(target_with_emulator main.c)
|
||||
get_property(emulator TARGET target_with_emulator
|
||||
PROPERTY CROSSCOMPILING_EMULATOR)
|
||||
if(NOT "${emulator}" MATCHES "pseudo_emulator")
|
||||
@@ -20,14 +22,14 @@ if(NOT "${emulator}" MATCHES "another_emulator")
|
||||
endif()
|
||||
|
||||
unset(CMAKE_CROSSCOMPILING_EMULATOR CACHE)
|
||||
add_executable(target_without_emulator simple_src_exiterror.cxx)
|
||||
add_executable(target_without_emulator main.c)
|
||||
get_property(emulator TARGET target_without_emulator
|
||||
PROPERTY CROSSCOMPILING_EMULATOR)
|
||||
if(NOT "${emulator}" STREQUAL "")
|
||||
message(SEND_ERROR "Default CROSSCOMPILING_EMULATOR property not set to null")
|
||||
endif()
|
||||
|
||||
add_executable(target_with_empty_emulator simple_src_exiterror.cxx)
|
||||
add_executable(target_with_empty_emulator main.c)
|
||||
set_property(TARGET target_with_empty_emulator PROPERTY CROSSCOMPILING_EMULATOR "")
|
||||
|
||||
enable_testing()
|
||||
|
||||
@@ -5,9 +5,24 @@ set(RunCMake_TEST_OPTIONS
|
||||
|
||||
run_cmake(CrosscompilingEmulatorProperty)
|
||||
run_cmake(TryRun)
|
||||
run_cmake(AddTest)
|
||||
run_cmake(AddTest-CMP0158-OLD)
|
||||
run_cmake(AddTest-CMP0158-NEW)
|
||||
|
||||
function(run_AddTest case)
|
||||
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${case}-build)
|
||||
|
||||
run_cmake(${case})
|
||||
unset(RunCMake_TEST_OPTIONS)
|
||||
|
||||
set(RunCMake_TEST_NO_CLEAN 1)
|
||||
set(RunCMake_TEST_OUTPUT_MERGE 1)
|
||||
run_cmake_command(${case}-build ${CMAKE_COMMAND} --build . --config Debug)
|
||||
unset(RunCMake_TEST_OUTPUT_MERGE)
|
||||
|
||||
run_cmake_command(${case}-test ${CMAKE_CTEST_COMMAND} -C Debug -V)
|
||||
endfunction()
|
||||
|
||||
run_AddTest(AddTest)
|
||||
run_AddTest(AddTest-CMP0158-OLD)
|
||||
run_AddTest(AddTest-CMP0158-NEW)
|
||||
|
||||
function(CustomCommandGenerator_run_and_build case)
|
||||
# Use a single build tree for a few tests without cleaning.
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
enable_language(C)
|
||||
set(CMAKE_CROSSCOMPILING 1)
|
||||
|
||||
set(ENV{PSEUDO_EMULATOR_FAIL} 1)
|
||||
|
||||
try_run(run_result compile_result
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/simple_src_exiterror.cxx
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/simple_src_exiterror.c
|
||||
RUN_OUTPUT_VARIABLE run_output)
|
||||
|
||||
message(STATUS "run_output: ${run_output}")
|
||||
@@ -13,6 +16,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_exiterror.cxx
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/simple_src_exiterror.c
|
||||
RUN_OUTPUT_VARIABLE run_output)
|
||||
message(STATUS "Emulator with arguments run_output: ${run_output}")
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
int main(int argc, const char* argv[])
|
||||
{
|
||||
for (int i = 1; i < argc; ++i) {
|
||||
int i;
|
||||
for (i = 1; i < argc; ++i) {
|
||||
fprintf(stderr, "unexpected argument: '%s'\n", argv[i]);
|
||||
}
|
||||
return argc == 1 ? 0 : 1;
|
||||
4
Tests/RunCMake/CrosscompilingEmulator/main.c
Normal file
4
Tests/RunCMake/CrosscompilingEmulator/main.c
Normal file
@@ -0,0 +1,4 @@
|
||||
int main(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
int main(void)
|
||||
{
|
||||
return 13;
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
int main(int, char**)
|
||||
{
|
||||
return 13;
|
||||
}
|
||||
@@ -42,8 +42,19 @@ block()
|
||||
run_cmake_command(EmptyArgument-ctest ${CMAKE_CTEST_COMMAND} -C Debug)
|
||||
endblock()
|
||||
|
||||
set(RunCMake_TEST_OPTIONS
|
||||
"-DCMAKE_TEST_LAUNCHER=/path/to/pseudo_test_launcher")
|
||||
|
||||
set(RunCMake_TEST_OPTIONS "-DCMAKE_TEST_LAUNCHER=${PSEUDO_EMULATOR}")
|
||||
run_cmake(TestLauncherProperty)
|
||||
run_cmake(TestLauncher)
|
||||
block()
|
||||
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/TestLauncher-build)
|
||||
|
||||
run_cmake(TestLauncher)
|
||||
unset(RunCMake_TEST_OPTIONS)
|
||||
|
||||
set(RunCMake_TEST_NO_CLEAN 1)
|
||||
set(RunCMake_TEST_OUTPUT_MERGE 1)
|
||||
run_cmake_command(TestLauncher-build ${CMAKE_COMMAND} --build . --config Debug)
|
||||
unset(RunCMake_TEST_OUTPUT_MERGE)
|
||||
|
||||
run_cmake_command(TestLauncher-test ${CMAKE_CTEST_COMMAND} -C Debug -V)
|
||||
endblock()
|
||||
unset(RunCMake_TEST_OPTIONS)
|
||||
|
||||
@@ -2,27 +2,33 @@ set(testfile "${RunCMake_TEST_BINARY_DIR}/CTestTestfile.cmake")
|
||||
if(EXISTS "${testfile}")
|
||||
file(READ "${testfile}" testfile_contents)
|
||||
else()
|
||||
message(FATAL_ERROR "Could not find expected CTestTestfile.cmake.")
|
||||
set(RunCMake_TEST_FAILED "Could not find expected CTestTestfile.cmake.")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(error_details "There is a problem with generated test file: ${testfile}")
|
||||
set(error_details "There is a problem with generated test file:\n ${testfile}")
|
||||
|
||||
if(testfile_contents MATCHES "add_test[(]DoesNotUseTestLauncher [^\n]+pseudo_test_launcher[^\n]+\n")
|
||||
message(SEND_ERROR "Used test launcher when it should not be used. ${error_details}")
|
||||
if(testfile_contents MATCHES "add_test[(]DoesNotUseTestLauncher [^\n]+pseudo_emulator[^\n]+\n")
|
||||
set(RunCMake_TEST_FAILED "Used test launcher when it should not be used. ${error_details}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(NOT testfile_contents MATCHES "add_test[(]UsesTestLauncher [^\n]+pseudo_test_launcher[^\n]+\n")
|
||||
message(SEND_ERROR "Did not use test launcher when it should be used. ${error_details}")
|
||||
if(NOT testfile_contents MATCHES "add_test[(]UsesTestLauncher [^\n]+pseudo_emulator[^\n]+\n")
|
||||
set(RunCMake_TEST_FAILED "Did not use test launcher when it should be used. ${error_details}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(testfile_contents MATCHES "add_test[(]DoesNotUseTestLauncherWithGenex [^\n]+pseudo_test_launcher[^\n]+\n")
|
||||
message(SEND_ERROR "Used test launcher when it should not be used. ${error_details}")
|
||||
if(testfile_contents MATCHES "add_test[(]DoesNotUseTestLauncherWithGenex [^\n]+pseudo_emulator[^\n]+\n")
|
||||
set(RunCMake_TEST_FAILED "Used test launcher when it should not be used. ${error_details}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(NOT testfile_contents MATCHES "add_test[(]UsesTestLauncherWithExecTargetFromSubdirAddedWithoutGenex [^\n]+pseudo_test_launcher[^\n]+\n")
|
||||
message(SEND_ERROR "Did not use test launcher when it should be used. ${error_details}")
|
||||
if(NOT testfile_contents MATCHES "add_test[(]UsesTestLauncherWithExecTargetFromSubdirAddedWithoutGenex [^\n]+pseudo_emulator[^\n]+\n")
|
||||
set(RunCMake_TEST_FAILED "Did not use test launcher when it should be used. ${error_details}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(testfile_contents MATCHES "add_test[(]DoesNotUseTestLauncherWithExecTargetFromSubdirAddedWithGenex [^\n]+pseudo_test_launcher[^\n]+\n")
|
||||
message(SEND_ERROR "Used test launcher when it should not be used. ${error_details}")
|
||||
if(testfile_contents MATCHES "add_test[(]DoesNotUseTestLauncherWithExecTargetFromSubdirAddedWithGenex [^\n]+pseudo_emulator[^\n]+\n")
|
||||
set(RunCMake_TEST_FAILED "Used test launcher when it should not be used. ${error_details}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
48
Tests/RunCMake/add_test/TestLauncher-test-stdout.txt
Normal file
48
Tests/RunCMake/add_test/TestLauncher-test-stdout.txt
Normal file
@@ -0,0 +1,48 @@
|
||||
test 1
|
||||
Start 1: DoesNotUseLauncher
|
||||
+
|
||||
1: Test command: "?[^
|
||||
]*[/\]cmake(\.exe)?"? "-E" "echo" "Hi"
|
||||
1: Working Directory: [^
|
||||
]*/Tests/RunCMake/add_test/TestLauncher-build
|
||||
1: Test timeout computed to be: [0-9]+
|
||||
1: Hi
|
||||
1/5 Test #1: DoesNotUseLauncher [.]* +Passed +[0-9.]+ sec
|
||||
test 2
|
||||
Start 2: UsesTestLauncher
|
||||
+
|
||||
2: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake([/\][^/\]+)?[/\]pseudo_emulator(\.exe)?"? "[^"]*/Tests/RunCMake/add_test/TestLauncher-build(/Debug)?/exe(\.exe)?"
|
||||
2: Working Directory: [^
|
||||
]*Tests/RunCMake/add_test/TestLauncher-build
|
||||
2: Test timeout computed to be: [0-9]+
|
||||
2: Command: "[^"]*/Tests/RunCMake/add_test/TestLauncher-build(/Debug)?/exe(\.exe)?"
|
||||
2/5 Test #2: UsesTestLauncher [.]* +Passed +[0-9.]+ sec
|
||||
test 3
|
||||
Start 3: DoesNotUseTestLauncherWithGenex
|
||||
+
|
||||
3: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake[/\]add_test[/\]TestLauncher-build([/\]Debug)?[/\]exe(\.exe)?"?
|
||||
3: Working Directory: [^
|
||||
]*Tests/RunCMake/add_test/TestLauncher-build
|
||||
3: Test timeout computed to be: [0-9]+
|
||||
3/5 Test #3: DoesNotUseTestLauncherWithGenex [.]* +Passed +[0-9.]+ sec
|
||||
test 4
|
||||
Start 4: UsesTestLauncherWithExecTargetFromSubdirAddedWithoutGenex
|
||||
+
|
||||
4: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake([/\][^/\]+)?[/\]pseudo_emulator(\.exe)?"? "[^"]*/Tests/RunCMake/add_test/TestLauncher-build/TestLauncher(/Debug)?/subdir_exe_no_genex(\.exe)?"
|
||||
4: Working Directory: [^
|
||||
]*Tests/RunCMake/add_test/TestLauncher-build
|
||||
4: Test timeout computed to be: [0-9]+
|
||||
4: Command: "[^"]*/Tests/RunCMake/add_test/TestLauncher-build/TestLauncher(/Debug)?/subdir_exe_no_genex(\.exe)?"
|
||||
4/5 Test #4: UsesTestLauncherWithExecTargetFromSubdirAddedWithoutGenex [.]* +Passed +[0-9.]+ sec
|
||||
test 5
|
||||
Start 5: DoesNotUseTestLauncherWithExecTargetFromSubdirAddedWithGenex
|
||||
+
|
||||
5: Test command: "?[^
|
||||
]*[/\]Tests[/\]RunCMake[/\]add_test[/\]TestLauncher-build[/\]TestLauncher([/\]Debug)?[/\]subdir_exe_with_genex(\.exe)?"?
|
||||
5: Working Directory: [^
|
||||
]*Tests/RunCMake/add_test/TestLauncher-build
|
||||
5: Test timeout computed to be: [0-9]+
|
||||
5/5 Test #5: DoesNotUseTestLauncherWithExecTargetFromSubdirAddedWithGenex [.]* +Passed +[0-9.]+ sec
|
||||
@@ -1,22 +1,21 @@
|
||||
project(test_launcher LANGUAGES C)
|
||||
|
||||
enable_language(C)
|
||||
enable_testing()
|
||||
|
||||
add_test(NAME DoesNotUseLauncher
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Hi")
|
||||
|
||||
add_executable(generated_exe simple_src_exiterror.cxx)
|
||||
set_target_properties(generated_exe PROPERTIES LINKER_LANGUAGE C)
|
||||
add_executable(exe main.c)
|
||||
|
||||
add_test(NAME UsesTestLauncher
|
||||
COMMAND generated_exe)
|
||||
COMMAND exe)
|
||||
|
||||
add_test(NAME DoesNotUseTestLauncherWithGenex
|
||||
COMMAND $<TARGET_FILE:generated_exe>)
|
||||
COMMAND $<TARGET_FILE:exe>)
|
||||
|
||||
add_subdirectory(TestLauncher)
|
||||
|
||||
add_test(NAME UsesTestLauncherWithExecTargetFromSubdirAddedWithoutGenex
|
||||
COMMAND generated_exe_in_subdir_added_to_test_without_genex)
|
||||
COMMAND subdir_exe_no_genex)
|
||||
|
||||
add_test(NAME DoesNotUseTestLauncherWithExecTargetFromSubdirAddedWithGenex
|
||||
COMMAND $<TARGET_FILE:generated_exe_in_subdir_added_to_test_with_genex>)
|
||||
COMMAND $<TARGET_FILE:subdir_exe_with_genex>)
|
||||
|
||||
@@ -1,9 +1,2 @@
|
||||
add_executable(generated_exe_in_subdir_added_to_test_without_genex
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../simple_src_exiterror.cxx)
|
||||
set_target_properties(generated_exe_in_subdir_added_to_test_without_genex
|
||||
PROPERTIES LINKER_LANGUAGE C)
|
||||
|
||||
add_executable(generated_exe_in_subdir_added_to_test_with_genex
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../simple_src_exiterror.cxx)
|
||||
set_target_properties(generated_exe_in_subdir_added_to_test_with_genex
|
||||
PROPERTIES LINKER_LANGUAGE C)
|
||||
add_executable(subdir_exe_no_genex ../main.c)
|
||||
add_executable(subdir_exe_with_genex ../main.c)
|
||||
|
||||
@@ -2,16 +2,15 @@
|
||||
# This tests setting the TEST_LAUNCHER target property from the
|
||||
# CMAKE_TEST_LAUNCHER variable.
|
||||
|
||||
# -DCMAKE_TEST_LAUNCHER=/path/to/pseudo_test_launcher is passed to this
|
||||
enable_language(C)
|
||||
|
||||
# -DCMAKE_TEST_LAUNCHER=/path/to/pseudo_emulator is passed to this
|
||||
# test
|
||||
|
||||
project(test_launcher LANGUAGES C)
|
||||
|
||||
add_executable(target_with_test_launcher simple_src_exiterror.cxx)
|
||||
set_target_properties(target_with_test_launcher PROPERTIES LINKER_LANGUAGE C)
|
||||
add_executable(target_with_test_launcher main.c)
|
||||
get_property(launcher TARGET target_with_test_launcher
|
||||
PROPERTY TEST_LAUNCHER)
|
||||
if(NOT "${launcher}" MATCHES "pseudo_test_launcher")
|
||||
if(NOT "${launcher}" MATCHES "pseudo_emulator")
|
||||
message(SEND_ERROR "Default TEST_LAUNCHER property not set")
|
||||
endif()
|
||||
|
||||
@@ -25,16 +24,14 @@ if(NOT "${launcher}" MATCHES "another_test_launcher")
|
||||
endif()
|
||||
|
||||
unset(CMAKE_TEST_LAUNCHER CACHE)
|
||||
add_executable(target_without_test_launcher simple_src_exiterror.cxx)
|
||||
set_target_properties(target_without_test_launcher PROPERTIES LINKER_LANGUAGE C)
|
||||
add_executable(target_without_test_launcher main.c)
|
||||
get_property(launcher TARGET target_without_test_launcher
|
||||
PROPERTY TEST_LAUNCHER)
|
||||
if(NOT "${launcher}" STREQUAL "")
|
||||
message(SEND_ERROR "Default TEST_LAUNCHER property not set to null")
|
||||
endif()
|
||||
|
||||
add_executable(target_with_empty_test_launcher simple_src_exiterror.cxx)
|
||||
set_target_properties(target_with_empty_test_launcher PROPERTIES LINKER_LANGUAGE C)
|
||||
add_executable(target_with_empty_test_launcher main.c)
|
||||
set_property(TARGET target_with_empty_test_launcher PROPERTY TEST_LAUNCHER "")
|
||||
|
||||
enable_testing()
|
||||
|
||||
4
Tests/RunCMake/add_test/main.c
Normal file
4
Tests/RunCMake/add_test/main.c
Normal file
@@ -0,0 +1,4 @@
|
||||
int main(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
int main(int, char**)
|
||||
{
|
||||
return 13;
|
||||
}
|
||||
@@ -1,8 +1,14 @@
|
||||
#ifndef _CRT_SECURE_NO_WARNINGS
|
||||
# define _CRT_SECURE_NO_WARNINGS
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
int ii;
|
||||
const char* fail = getenv("PSEUDO_EMULATOR_FAIL");
|
||||
|
||||
printf("Command:");
|
||||
for (ii = 1; ii < argc; ++ii) {
|
||||
@@ -10,5 +16,9 @@ int main(int argc, char* argv[])
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
return 42;
|
||||
if (fail && *fail) {
|
||||
return 42;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user