summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake
diff options
context:
space:
mode:
authorDomen Vrankar <domen.vrankar@gmail.com>2016-09-20 19:08:36 (GMT)
committerBrad King <brad.king@kitware.com>2016-09-20 20:05:41 (GMT)
commitcb851a7c1285537ef9e6cee174a49000e047bee9 (patch)
treefdf51271ec243648d759ada572cbf41cafc313d0 /Tests/RunCMake
parent290d48ebc7e3842dc4ddd2dfa0da1025cda00646 (diff)
downloadCMake-cb851a7c1285537ef9e6cee174a49000e047bee9.zip
CMake-cb851a7c1285537ef9e6cee174a49000e047bee9.tar.gz
CMake-cb851a7c1285537ef9e6cee174a49000e047bee9.tar.bz2
Tests: Fix RunCMake.CPack test infrastructure after logical conflict
The changes in commit d9cec8ad (CPack/RPM: Generate source rpm (SRPM) packages on demand, 2016-09-19) logically conflict with the infrastructure updates in commit 4682b42b (Tests: Add subtest support to RunCMake/CPack infrastructure, 2016-09-13). Integrate the two changes so they work together.
Diffstat (limited to 'Tests/RunCMake')
-rw-r--r--Tests/RunCMake/CPack/CPackTestHelpers.cmake87
1 files changed, 17 insertions, 70 deletions
diff --git a/Tests/RunCMake/CPack/CPackTestHelpers.cmake b/Tests/RunCMake/CPack/CPackTestHelpers.cmake
index 7c2c9c6..7e6b4b1 100644
--- a/Tests/RunCMake/CPack/CPackTestHelpers.cmake
+++ b/Tests/RunCMake/CPack/CPackTestHelpers.cmake
@@ -1,72 +1,6 @@
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)
- 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)
+function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX source)
if(TEST_TYPE IN_LIST types)
set(RunCMake_TEST_NO_CLEAN TRUE)
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}")
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_process(
- COMMAND "${CMAKE_CPACK_COMMAND}"
+ 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"
)
@@ -139,11 +82,15 @@ function(run_cpack_test_common_ TEST_NAME types build SUBTEST_SUFFIX)
endfunction()
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()
function(run_cpack_test_subtests TEST_NAME SUBTEST_SUFFIXES types build)
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()
endfunction()