Merge topic 'runcmake-cpack-test-framework-fix'
cb851a7c
Tests: Fix RunCMake.CPack test infrastructure after logical conflict
This commit is contained in:
commit
68f7a476e7
|
@ -1,72 +1,6 @@
|
||||||
cmake_policy(SET CMP0057 NEW)
|
cmake_policy(SET CMP0057 NEW)
|
||||||
function(run_cpack_test_common_for_merge_ TEST_NAME types build source)
|
|
||||||
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)
|
function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX source)
|
||||||
file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
|
|
||||||
file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
|
|
||||||
|
|
||||||
if(EXISTS "${RunCMake_SOURCE_DIR}/${TEST_TYPE}/${TEST_NAME}-Prerequirements.cmake")
|
|
||||||
include("${RunCMake_SOURCE_DIR}/${TEST_TYPE}/${TEST_NAME}-Prerequirements.cmake")
|
|
||||||
|
|
||||||
set(FOUND_PREREQUIREMENTS false)
|
|
||||||
get_test_prerequirements("FOUND_PREREQUIREMENTS"
|
|
||||||
"${TEST_CONFIG_DIR}/${type}_config.cmake")
|
|
||||||
|
|
||||||
# skip the test if prerequirements are not met
|
|
||||||
if(NOT FOUND_PREREQUIREMENTS)
|
|
||||||
message(STATUS "${TEST_NAME} - SKIPPED")
|
|
||||||
return()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# 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()
|
|
||||||
|
|
||||||
if(source)
|
|
||||||
set(pack_params_ -G ${TEST_TYPE} --config ./CPackSourceConfig.cmake)
|
|
||||||
FILE(APPEND ${RunCMake_TEST_BINARY_DIR}/CPackSourceConfig.cmake
|
|
||||||
"\nset(CPACK_RPM_SOURCE_PKG_BUILD_PARAMS \"-DRunCMake_TEST:STRING=${TEST_NAME}\")")
|
|
||||||
else()
|
|
||||||
unset(pack_params_)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# execute cpack
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${CMAKE_CPACK_COMMAND} ${pack_params_}
|
|
||||||
WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}"
|
|
||||||
RESULT_VARIABLE "result_"
|
|
||||||
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}
|
|
||||||
-DPACKAGING_RESULT=${result_}
|
|
||||||
"-Dsrc_dir=${RunCMake_SOURCE_DIR}"
|
|
||||||
"-Dbin_dir=${RunCMake_TEST_BINARY_DIR}"
|
|
||||||
"-Dconfig_file=${config_file}"
|
|
||||||
-P "${RunCMake_SOURCE_DIR}/VerifyResult.cmake"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endfunction()
|
|
||||||
function(run_cpack_source_test TEST_NAME types)
|
|
||||||
run_cpack_test_common_for_merge_("${TEST_NAME}" "${types}" false true)
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX)
|
|
||||||
if(TEST_TYPE IN_LIST types)
|
if(TEST_TYPE IN_LIST types)
|
||||||
set(RunCMake_TEST_NO_CLEAN TRUE)
|
set(RunCMake_TEST_NO_CLEAN TRUE)
|
||||||
set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/${TEST_NAME}-build")
|
set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/${TEST_NAME}-build")
|
||||||
|
@ -106,10 +40,19 @@ function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX)
|
||||||
run_cmake_command(${full_test_name_}-Build "${CMAKE_COMMAND}" --build "${RunCMake_TEST_BINARY_DIR}")
|
run_cmake_command(${full_test_name_}-Build "${CMAKE_COMMAND}" --build "${RunCMake_TEST_BINARY_DIR}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(source)
|
||||||
|
set(pack_params_ -G ${TEST_TYPE} --config ./CPackSourceConfig.cmake)
|
||||||
|
FILE(APPEND ${RunCMake_TEST_BINARY_DIR}/CPackSourceConfig.cmake
|
||||||
|
"\nset(CPACK_RPM_SOURCE_PKG_BUILD_PARAMS \"-DRunCMake_TEST:STRING=${full_test_name_}\ -DRunCMake_TEST_FILE_PREFIX:STRING=${TEST_NAME}\")")
|
||||||
|
else()
|
||||||
|
unset(pack_params_)
|
||||||
|
endif()
|
||||||
|
|
||||||
# execute cpack
|
# execute cpack
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND "${CMAKE_CPACK_COMMAND}"
|
COMMAND ${CMAKE_CPACK_COMMAND} ${pack_params_}
|
||||||
WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}"
|
WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}"
|
||||||
|
RESULT_VARIABLE "result_"
|
||||||
OUTPUT_FILE "${RunCMake_TEST_BINARY_DIR}/test_output.txt"
|
OUTPUT_FILE "${RunCMake_TEST_BINARY_DIR}/test_output.txt"
|
||||||
ERROR_FILE "${RunCMake_TEST_BINARY_DIR}/test_error.txt"
|
ERROR_FILE "${RunCMake_TEST_BINARY_DIR}/test_error.txt"
|
||||||
)
|
)
|
||||||
|
@ -139,11 +82,15 @@ function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function(run_cpack_test TEST_NAME types build)
|
function(run_cpack_test TEST_NAME types build)
|
||||||
run_cpack_test_common_("${TEST_NAME}" "${types}" "${build}" "")
|
run_cpack_test_common_("${TEST_NAME}" "${types}" "${build}" "" false)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(run_cpack_source_test TEST_NAME types build)
|
||||||
|
run_cpack_test_common_("${TEST_NAME}" "${types}" "${build}" "" true)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function(run_cpack_test_subtests TEST_NAME SUBTEST_SUFFIXES types build)
|
function(run_cpack_test_subtests TEST_NAME SUBTEST_SUFFIXES types build)
|
||||||
foreach(suffix_ IN LISTS SUBTEST_SUFFIXES)
|
foreach(suffix_ IN LISTS SUBTEST_SUFFIXES)
|
||||||
run_cpack_test_common_("${TEST_NAME}" "${types}" "${build}" "${suffix_}")
|
run_cpack_test_common_("${TEST_NAME}" "${types}" "${build}" "${suffix_}" false)
|
||||||
endforeach()
|
endforeach()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
Loading…
Reference in New Issue