Merge topic 'test-RunCPack'

3b8f32c60a Tests: Add RunCMake.CPack_{DEB,RPM} cases using RunCPack infrastructure
76249af81e Tests: Comment where RunCPack keeps sample projects for `RunCMake.CPack_*`
422d624764 Tests: Add option to enable CPack RPM generator tests explicitly
73aa35427b Tests: Add option to enable CPack DEB generator tests explicitly

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11512
This commit is contained in:
Brad King
2025-12-17 18:27:48 +00:00
committed by Kitware Robot
16 changed files with 98 additions and 14 deletions

View File

@@ -157,24 +157,38 @@ if(BUILD_TESTING)
# Look for git to use for tests.
find_program(GIT_EXECUTABLE NAMES git)
# Look for rpmbuild to use for tests.
# The tool does not work with spaces in the path.
if(NOT CMAKE_CURRENT_BINARY_DIR MATCHES " ")
find_program(RPMBUILD_EXECUTABLE NAMES rpmbuild)
else()
set(RPMBUILD_EXECUTABLE "RPMBUILD_EXECUTABLE-NOTFOUND")
if(NOT DEFINED CMake_TEST_CPACK_RPM)
# Look for rpmbuild to use for tests.
# The tool does not work with spaces in the path.
if(NOT CMAKE_CURRENT_BINARY_DIR MATCHES " ")
find_program(RPMBUILD_EXECUTABLE NAMES rpmbuild)
else()
set(RPMBUILD_EXECUTABLE "RPMBUILD_EXECUTABLE-NOTFOUND")
endif()
if(RPMBUILD_EXECUTABLE)
set(CMake_TEST_CPACK_RPM 1)
else()
set(CMake_TEST_CPACK_RPM 0)
endif()
endif()
if(RPMBUILD_EXECUTABLE)
if(CMake_TEST_CPACK_RPM)
set(CPACK_BINARY_RPM ON)
else()
set(CPACK_BINARY_RPM OFF)
endif()
# Look for dpkg to use for tests.
find_program(DPKG_EXECUTABLE NAMES dpkg)
if(NOT DEFINED CMake_TEST_CPACK_DEB)
# Look for dpkg to use for tests.
find_program(DPKG_EXECUTABLE NAMES dpkg)
if(DPKG_EXECUTABLE)
set(CMake_TEST_CPACK_DEB 1)
else()
set(CMake_TEST_CPACK_DEB 0)
endif()
endif()
if(DPKG_EXECUTABLE)
if(CMake_TEST_CPACK_DEB)
set(CPACK_BINARY_DEB ON)
else()
set(CPACK_BINARY_DEB OFF)
@@ -1205,7 +1219,7 @@ if(BUILD_TESTING)
endforeach()
# debian specific
if(DPKG_EXECUTABLE)
if(CMake_TEST_CPACK_DEB)
unset(CPackRun_CPackDEBConfiguration_ALL_CONFIGS)
set(DEB_TEST_NAMES "CPackComponentsDEB")
set(DEB_CONFIGURATIONS_TO_TEST "components-lintian-dpkgdeb-checks"

View File

@@ -1321,6 +1321,14 @@ if(CMake_TEST_CPACK_APPIMAGE)
)
endif()
if(CMake_TEST_CPACK_DEB)
add_RunCMake_test(CPack_DEB)
endif()
if(CMake_TEST_CPACK_RPM)
add_RunCMake_test(CPack_RPM)
endif()
if(CMake_TEST_CPACK_WIX3 OR CMake_TEST_CPACK_WIX4)
add_RunCMake_test(CPack_WIX
-DCMake_TEST_CPACK_WIX3=${CMake_TEST_CPACK_WIX3}

View File

@@ -1,4 +1,4 @@
include(RunCPack)
include(RunCPack) # Uses sample projects from `../RunCPack/*`
set(RunCPack_GENERATORS AppImage)

View File

@@ -0,0 +1,8 @@
CPack: Create package using DEB
CPack: Install projects(
CPack: - Run preinstall target for: Basic)?
CPack: - Install project: Basic \[Release\]
CPack: Create package
-- CPACK_DEBIAN_PACKAGE_DEPENDS not set, the package will have no dependencies\.
CPack: - package: [^
]*/Tests/RunCMake/CPack_DEB/Basic-build/Basic-1\.2\.3-[A-Za-z]+\.deb generated\.

View File

@@ -0,0 +1,14 @@
-- Basic-1\.2\.3-[A-Za-z]+\.deb
-- dpkg-deb --info(
[^
]+)*
Maintainer: somebody@cmake\.org(
[^
]+)*
-- dpkg-deb --contents
d[rwx-]+ root/root 0 [0-9-]+ [0-9:]+ \./usr/
d[rwx-]+ root/root 0 [0-9-]+ [0-9:]+ \./usr/share/
d[rwx-]+ root/root 0 [0-9-]+ [0-9:]+ \./usr/share/doc/
d[rwx-]+ root/root 0 [0-9-]+ [0-9:]+ \./usr/share/doc/basic/
-[rwx-]+ root/root 0 [0-9-]+ [0-9:]+ \./usr/share/doc/basic/basic\.txt
--

View File

@@ -0,0 +1,7 @@
include(RunCPack)
set(RunCPack_GENERATORS DEB)
set(RunCPack_GLOB *.deb)
set(RunCPack_VERIFY ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_LIST_DIR}/verify.cmake --)
run_cpack(Basic)

View File

@@ -0,0 +1,4 @@
message(STATUS "dpkg-deb --info")
execute_process(COMMAND dpkg-deb --info ${CMAKE_ARGV4})
message(STATUS "dpkg-deb --contents")
execute_process(COMMAND dpkg-deb --contents ${CMAKE_ARGV4})

View File

@@ -1,4 +1,4 @@
include(RunCPack)
include(RunCPack) # Uses sample projects from `../RunCPack/*`
set(env_PATH "$ENV{PATH}")

View File

@@ -0,0 +1,2 @@
CPackRPM: Will use GENERATED spec file: [^
]*/Tests/RunCMake/CPack_RPM/Basic-build/_CPack_Packages/[A-Za-z]+/RPM/SPECS/basic\.spec

View File

@@ -0,0 +1,7 @@
CPack: Create package using RPM
CPack: Install projects(
CPack: - Run preinstall target for: Basic)?
CPack: - Install project: Basic \[Release\]
CPack: Create package
CPack: - package: [^
]*/Tests/RunCMake/CPack_RPM/Basic-build/Basic-1\.2\.3-[A-Za-z]+\.rpm generated\.

View File

@@ -0,0 +1,2 @@
^(error: can't create transaction lock[^
]*)?$

View File

@@ -0,0 +1,4 @@
-- Basic-1\.2\.3-[A-Za-z]+\.rpm
/usr/share/doc/basic
/usr/share/doc/basic/basic\.txt
--

View File

@@ -0,0 +1,7 @@
include(RunCPack)
set(RunCPack_GENERATORS RPM)
set(RunCPack_GLOB *.rpm)
set(RunCPack_VERIFY rpm -qlp)
run_cpack(Basic)

View File

@@ -1,4 +1,4 @@
include(RunCPack)
include(RunCPack) # Uses sample projects from `../RunCPack/*`
set(env_PATH "$ENV{PATH}")

View File

@@ -0,0 +1,7 @@
cmake_minimum_required(VERSION 4.2)
project(Basic LANGUAGES NONE VERSION "1.2.3")
install(FILES basic.txt DESTINATION share/doc/basic)
set(CPACK_PACKAGE_CONTACT "somebody@cmake.org")
include(CPack)

View File