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:
Brad King 2012-01-11 17:04:04 -05:00
parent bbed901178
commit 9a20abf04a
3 changed files with 22 additions and 0 deletions

View File

@ -47,6 +47,7 @@ IF(BUILD_TESTING)
ENDIF() ENDIF()
ADD_SUBDIRECTORY(CMakeLib) ADD_SUBDIRECTORY(CMakeLib)
ADD_SUBDIRECTORY(CMakeOnly)
ADD_SUBDIRECTORY(FindPackageModeMakefileTest) ADD_SUBDIRECTORY(FindPackageModeMakefileTest)

View File

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

View File

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