>> 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

Reply via email to