Add infrastructure for CMake-only tests
Some tests only need to run CMake to configure and generate a build tree, but not actually perform the build. Add a new "Tests/CMakeOnly" directory dedicated for this purpose. Add a helper script to drive each test by creating a fresh build tree and running CMake on it. Add macro "add_CMakeOnly_test" to help create tests using the script.
This commit is contained in:
parent
bbed901178
commit
9a20abf04a
|
@ -47,6 +47,7 @@ IF(BUILD_TESTING)
|
|||
ENDIF()
|
||||
|
||||
ADD_SUBDIRECTORY(CMakeLib)
|
||||
ADD_SUBDIRECTORY(CMakeOnly)
|
||||
|
||||
ADD_SUBDIRECTORY(FindPackageModeMakefileTest)
|
||||
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Test.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Test.cmake @ONLY)
|
||||
|
||||
macro(add_CMakeOnly_test test)
|
||||
add_test(CMakeOnly.${test} ${CMAKE_CMAKE_COMMAND}
|
||||
-DTEST=${test}
|
||||
-P ${CMAKE_CURRENT_BINARY_DIR}/Test.cmake
|
||||
)
|
||||
endmacro()
|
|
@ -0,0 +1,12 @@
|
|||
set(source_dir "@CMAKE_CURRENT_SOURCE_DIR@/${TEST}")
|
||||
set(binary_dir "@CMAKE_CURRENT_BINARY_DIR@/${TEST}-build")
|
||||
file(REMOVE_RECURSE "${binary_dir}")
|
||||
file(MAKE_DIRECTORY "${binary_dir}")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} "${source_dir}" -G "@CMAKE_TEST_GENERATOR@"
|
||||
WORKING_DIRECTORY "${binary_dir}"
|
||||
RESULT_VARIABLE result
|
||||
)
|
||||
if(result)
|
||||
message(FATAL_ERROR "CMake failed to configure ${TEST}")
|
||||
endif()
|
Loading…
Reference in New Issue