>> Most of the RunCMake tests are for negative tests, but mostly for >> running "cmake". IIUC you need tests that run "cpack", right? >> For that you can use run_cmake_command. See use in the >> RunCMake.CTestMemcheck test to run "ctest": >> >> Tests/RunCMake/CTestMemcheck/RunCMakeTest.cmake >> >> See also Tests/RunCMake/CommandLine/RunCMakeTest.cmake for other >> uses to try the non-generator signatures of "cmake". > > The topic as of commit 36f93b60 has Tests/CPackRPM/RunCPack.cmake > which should be refactored to use RunCMake infrastructure, perhaps > in a new Tests/RunCMake/CPackRPM test. Please extend the topic > to move the test over.
Attached is the patch for this. Please apply it. I'm unable to apply it myself as git push to stage is reporting conflicts and git pull from stage is reporting not a repository error... Thanks, Domen
From 5368d2e2aa880f42fd1e3593c4ea7f14855bb60e Mon Sep 17 00:00:00 2001 From: Domen Vrankar <domen.vran...@gmail.com> Date: Wed, 28 Jan 2015 23:48:57 +0100 Subject: [PATCH] fixup! cpack rpm multiple path relocation prefixes CPackRPM test was refactored to use RunCMake infrastructure. --- Tests/CMakeLists.txt | 9 --------- Tests/CPackRPM/CMakeLists.txt | 14 -------------- Tests/CPackRPM/RunCPack.cmake | 21 --------------------- Tests/RunCMake/CMakeLists.txt | 4 ++++ Tests/RunCMake/CPackRPM/CMakeLists.txt | 7 +++++++ ...PackRPM_PARTIALLY_RELOCATABLE_WARNING-stderr.txt | 1 + .../CPackRPM_PARTIALLY_RELOCATABLE_WARNING.cmake | 7 +++++++ Tests/RunCMake/CPackRPM/RunCMakeTest.cmake | 17 +++++++++++++++++ 8 files changed, 36 insertions(+), 44 deletions(-) delete mode 100644 Tests/CPackRPM/CMakeLists.txt delete mode 100644 Tests/CPackRPM/RunCPack.cmake create mode 100644 Tests/RunCMake/CPackRPM/CMakeLists.txt create mode 100644 Tests/RunCMake/CPackRPM/CPackRPM_PARTIALLY_RELOCATABLE_WARNING-stderr.txt create mode 100644 Tests/RunCMake/CPackRPM/CPackRPM_PARTIALLY_RELOCATABLE_WARNING.cmake create mode 100644 Tests/RunCMake/CPackRPM/RunCMakeTest.cmake diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 007f735..dea30e4 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -832,15 +832,6 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release # Do not try to build RPM if (NOT RPMBUILD) set(CPACK_BINARY_RPM OFF) - else() - add_test(CPack-RPM ${CMAKE_CMAKE_COMMAND} - -D dir=${CMake_BINARY_DIR}/Tests/CPackRPM - -D CMake_SOURCE_DIR=${CMake_SOURCE_DIR} - -D CMAKE_CMAKE_COMMAND=${CMAKE_CMAKE_COMMAND} - -P ${CMake_SOURCE_DIR}/Tests/CPackRPM/RunCPack.cmake - ) - list(APPEND TEST_BUILD_DIRS - "${CMake_BINARY_DIR}/Tests/CPackRPM") endif() find_program(NSIS_MAKENSIS_EXECUTABLE NAMES makensis diff --git a/Tests/CPackRPM/CMakeLists.txt b/Tests/CPackRPM/CMakeLists.txt deleted file mode 100644 index 968f6d6..0000000 --- a/Tests/CPackRPM/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -cmake_minimum_required(VERSION 3.1 FATAL_ERROR) - -project(CPackRPM) - -install(FILES CMakeLists.txt DESTINATION /not_relocatable COMPONENT static) -install(FILES CMakeLists.txt DESTINATION relocatable COMPONENT relocatable) - -set(CPACK_PACKAGE_RELOCATABLE TRUE) -set(CPACK_GENERATOR "RPM") -set(CPACK_PACKAGING_INSTALL_PREFIX "/opt") - -set(CPACK_RPM_COMPONENT_INSTALL ON) - -include(CPack) diff --git a/Tests/CPackRPM/RunCPack.cmake b/Tests/CPackRPM/RunCPack.cmake deleted file mode 100644 index 8bef611..0000000 --- a/Tests/CPackRPM/RunCPack.cmake +++ /dev/null @@ -1,21 +0,0 @@ -cmake_minimum_required(VERSION 3.1 FATAL_ERROR) - -file(MAKE_DIRECTORY "${dir}") - -# run cmake -execute_process( - COMMAND "${CMAKE_CMAKE_COMMAND}" "${CMake_SOURCE_DIR}/Tests/CPackRPM" - WORKING_DIRECTORY "${dir}" - OUTPUT_QUIET) - -# package RPM -execute_process( - COMMAND make package - WORKING_DIRECTORY "${dir}" - ERROR_VARIABLE stderr - OUTPUT_QUIET) - -# test for partial relocation warning -if(NOT "${stderr}" MATCHES "CPackRPM:Warning: Path /not_relocatable/CMakeLists.txt is not on one of the.*relocatable paths! Package will be partially relocatable.") - message(FATAL_ERROR "CPack/RPM missing partially relocatable warning; stderr output: '${stderr}'") -endif() diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index b5e41d9..15a24de 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -173,3 +173,7 @@ add_RunCMake_test(CommandLine) add_RunCMake_test(install) add_RunCMake_test(CPackInstallProperties) add_RunCMake_test(ExternalProject) + +if(RPMBUILD) + add_RunCMake_test(CPackRPM) +endif() diff --git a/Tests/RunCMake/CPackRPM/CMakeLists.txt b/Tests/RunCMake/CPackRPM/CMakeLists.txt new file mode 100644 index 0000000..b7d170b --- /dev/null +++ b/Tests/RunCMake/CPackRPM/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.1 FATAL_ERROR) + +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake) + +set(CPACK_GENERATOR "RPM") +include(CPack) diff --git a/Tests/RunCMake/CPackRPM/CPackRPM_PARTIALLY_RELOCATABLE_WARNING-stderr.txt b/Tests/RunCMake/CPackRPM/CPackRPM_PARTIALLY_RELOCATABLE_WARNING-stderr.txt new file mode 100644 index 0000000..3b63d5b --- /dev/null +++ b/Tests/RunCMake/CPackRPM/CPackRPM_PARTIALLY_RELOCATABLE_WARNING-stderr.txt @@ -0,0 +1 @@ +CPackRPM:Warning: Path /not_relocatable/CMakeLists.txt is not on one of the.*relocatable paths! Package will be partially relocatable. diff --git a/Tests/RunCMake/CPackRPM/CPackRPM_PARTIALLY_RELOCATABLE_WARNING.cmake b/Tests/RunCMake/CPackRPM/CPackRPM_PARTIALLY_RELOCATABLE_WARNING.cmake new file mode 100644 index 0000000..3ace6a8 --- /dev/null +++ b/Tests/RunCMake/CPackRPM/CPackRPM_PARTIALLY_RELOCATABLE_WARNING.cmake @@ -0,0 +1,7 @@ +install(FILES CMakeLists.txt DESTINATION /not_relocatable COMPONENT static) +install(FILES CMakeLists.txt DESTINATION relocatable COMPONENT relocatable) + +set(CPACK_PACKAGE_RELOCATABLE TRUE) +set(CPACK_PACKAGING_INSTALL_PREFIX "/opt") + +set(CPACK_RPM_COMPONENT_INSTALL ON) diff --git a/Tests/RunCMake/CPackRPM/RunCMakeTest.cmake b/Tests/RunCMake/CPackRPM/RunCMakeTest.cmake new file mode 100644 index 0000000..1935e32 --- /dev/null +++ b/Tests/RunCMake/CPackRPM/RunCMakeTest.cmake @@ -0,0 +1,17 @@ +include(RunCMake) + +function(run_cpack_rpm_test TEST_NAME) + set(RunCMake_TEST_NO_CLEAN TRUE) + set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/${TEST_NAME}-build") + file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") + file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") + execute_process( + COMMAND "${CMAKE_COMMAND}" -D RunCMake_TEST=${TEST_NAME} "${RunCMake_SOURCE_DIR}" + WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}" + OUTPUT_QUIET + ERROR_QUIET + ) + run_cmake_command(${TEST_NAME} ${CMAKE_CPACK_COMMAND}) +endfunction() + +run_cpack_rpm_test(CPackRPM_PARTIALLY_RELOCATABLE_WARNING) -- 2.1.0
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers