1b13af46ac
Use the run_cmake() function to generate the test build tree with the proper CMake generator and also to verify that it succeeds. Drop our PreTestError helper as it is no longer needed.
42 lines
1.3 KiB
CMake
42 lines
1.3 KiB
CMake
cmake_policy(SET CMP0057 NEW)
|
|
|
|
function(run_cpack_test TEST_NAME types build)
|
|
if(TEST_TYPE IN_LIST types)
|
|
set(RunCMake_TEST_NO_CLEAN TRUE)
|
|
set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/${TEST_NAME}-build")
|
|
|
|
# TODO this should be executed only once per ctest run (not per generator)
|
|
file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
|
|
file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
|
|
|
|
# execute cmake
|
|
set(RunCMake_TEST_OPTIONS "-DGENERATOR_TYPE=${TEST_TYPE}")
|
|
run_cmake(${TEST_NAME})
|
|
|
|
# execute optional build step
|
|
if(build)
|
|
run_cmake_command(${TEST_NAME}-Build "${CMAKE_COMMAND}" --build "${RunCMake_TEST_BINARY_DIR}")
|
|
endif()
|
|
|
|
# execute cpack
|
|
execute_process(
|
|
COMMAND "${CMAKE_CPACK_COMMAND}"
|
|
WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}"
|
|
OUTPUT_FILE "${RunCMake_TEST_BINARY_DIR}/test_output.txt"
|
|
ERROR_FILE "${RunCMake_TEST_BINARY_DIR}/test_error.txt"
|
|
)
|
|
|
|
# verify result
|
|
run_cmake_command(
|
|
${TEST_TYPE}/${TEST_NAME}
|
|
"${CMAKE_COMMAND}"
|
|
-DRunCMake_TEST=${TEST_NAME}
|
|
-DGENERATOR_TYPE=${TEST_TYPE}
|
|
"-Dsrc_dir=${RunCMake_SOURCE_DIR}"
|
|
"-Dbin_dir=${RunCMake_TEST_BINARY_DIR}"
|
|
"-Dconfig_file=${config_file}"
|
|
-P "${RunCMake_SOURCE_DIR}/VerifyResult.cmake"
|
|
)
|
|
endif()
|
|
endfunction()
|