diff options
author | Domen Vrankar <domen.vrankar@gmail.com> | 2015-07-29 21:39:11 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-08-06 13:33:51 (GMT) |
commit | 94226751cb9beb7aa1939e9395d4999e30b30600 (patch) | |
tree | c26de39f2baa6d291cd50e9f66e5d40dbd6af3f2 /Tests/RunCMake/CPack/RPM | |
parent | 105011e08fafe23cb4cfd4fcb1468187f9d81f21 (diff) | |
download | CMake-94226751cb9beb7aa1939e9395d4999e30b30600.zip CMake-94226751cb9beb7aa1939e9395d4999e30b30600.tar.gz CMake-94226751cb9beb7aa1939e9395d4999e30b30600.tar.bz2 |
Tests/RunCMake/CPack: Add dependencies tests
Add tests for RPM and DEB package test for currently supported
dependency features (requires, provides, conflicts, ...).
Diffstat (limited to 'Tests/RunCMake/CPack/RPM')
3 files changed, 80 insertions, 0 deletions
diff --git a/Tests/RunCMake/CPack/RPM/DEPENDENCIES-ExpectedFiles.cmake b/Tests/RunCMake/CPack/RPM/DEPENDENCIES-ExpectedFiles.cmake new file mode 100644 index 0000000..cf85dab --- /dev/null +++ b/Tests/RunCMake/CPack/RPM/DEPENDENCIES-ExpectedFiles.cmake @@ -0,0 +1,13 @@ +set(whitespaces_ "[\t\n\r ]*") + +set(EXPECTED_FILES_COUNT "5") +set(EXPECTED_FILE_1 "dependencies*-applications.rpm") +set(EXPECTED_FILE_CONTENT_1 "^/usr/foo${whitespaces_}/usr/foo/test_prog$") +set(EXPECTED_FILE_2 "dependencies*-applications_auto.rpm") +set(EXPECTED_FILE_CONTENT_2 "^/usr/foo_auto${whitespaces_}/usr/foo_auto/test_prog$") +set(EXPECTED_FILE_3 "dependencies*-headers.rpm") +set(EXPECTED_FILE_CONTENT_3 "^/usr/bar${whitespaces_}/usr/bar/CMakeLists.txt$") +set(EXPECTED_FILE_4 "dependencies*-libs.rpm") +set(EXPECTED_FILE_CONTENT_4 "^/usr/bas${whitespaces_}/usr/bas/libtest_lib.so$") +set(EXPECTED_FILE_5 "dependencies*-libs_auto.rpm") +set(EXPECTED_FILE_CONTENT_5 "^/usr/bas_auto${whitespaces_}/usr/bas_auto/libtest_lib.so$") diff --git a/Tests/RunCMake/CPack/RPM/DEPENDENCIES-VerifyResult.cmake b/Tests/RunCMake/CPack/RPM/DEPENDENCIES-VerifyResult.cmake new file mode 100644 index 0000000..fec8889 --- /dev/null +++ b/Tests/RunCMake/CPack/RPM/DEPENDENCIES-VerifyResult.cmake @@ -0,0 +1,45 @@ +function(checkDependencies_ FILE TYPE COMPARE_LIST) + set(whitespaces_ "[\t\n\r ]*") + + execute_process(COMMAND ${RPM_EXECUTABLE} -qp --${TYPE} ${FILE} + WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}" + OUTPUT_VARIABLE FILE_DEPENDENCIES_ + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + + string(REPLACE "\n" ";" FILE_DEPENDENCIES_LIST_ "${FILE_DEPENDENCIES_}") + + foreach(COMPARE_REGEX_ IN LISTS COMPARE_LIST) + unset(FOUND_) + + foreach(COMPARE_ IN LISTS FILE_DEPENDENCIES_LIST_) + if(COMPARE_ MATCHES "${COMPARE_REGEX_}") + set(FOUND_ true) + break() + endif() + endforeach() + + if(NOT FOUND_) + message(FATAL_ERROR "Missing dependencies in '${FILE}'; check type: '${TYPE}'; file info: '${FILE_DEPENDENCIES_}'; missing: '${COMPARE_REGEX_}'") + endif() + endforeach() +endfunction() + +# TODO add tests for what should not be present in lists +checkDependencies_("${FOUND_FILE_1}" "requires" "depend-application;depend-application-b") +checkDependencies_("${FOUND_FILE_2}" "requires" "depend-application;depend-application-b;libtest_lib\\.so.*") +checkDependencies_("${FOUND_FILE_3}" "requires" "depend-headers") +checkDependencies_("${FOUND_FILE_4}" "requires" "depend-default;depend-default-b") +checkDependencies_("${FOUND_FILE_5}" "requires" "depend-default;depend-default-b") + +checkDependencies_("${FOUND_FILE_1}" "conflicts" "conflict-application;conflict-application-b") +checkDependencies_("${FOUND_FILE_2}" "conflicts" "conflict-application;conflict-application-b") +checkDependencies_("${FOUND_FILE_3}" "conflicts" "conflict-headers") +checkDependencies_("${FOUND_FILE_4}" "conflicts" "conflict-default;conflict-default-b") +checkDependencies_("${FOUND_FILE_5}" "conflicts" "conflict-default;conflict-default-b") + +checkDependencies_("${FOUND_FILE_1}" "provides" "provided-default;provided-default-b") +checkDependencies_("${FOUND_FILE_2}" "provides" "provided-default;provided-default-b") +checkDependencies_("${FOUND_FILE_3}" "provides" "provided-default;provided-default-b") +checkDependencies_("${FOUND_FILE_4}" "provides" "provided-lib") +checkDependencies_("${FOUND_FILE_5}" "provides" "provided-lib_auto;provided-lib_auto-b") diff --git a/Tests/RunCMake/CPack/RPM/DEPENDENCIES-specifics.cmake b/Tests/RunCMake/CPack/RPM/DEPENDENCIES-specifics.cmake new file mode 100644 index 0000000..2cdfece --- /dev/null +++ b/Tests/RunCMake/CPack/RPM/DEPENDENCIES-specifics.cmake @@ -0,0 +1,22 @@ +set(CPACK_RPM_COMPONENT_INSTALL "ON") + +# FIXME auto autoprov is not tested at the moment as Ubuntu 15.04 rpmbuild +# does not use them correctly: https://bugs.launchpad.net/rpm/+bug/1475755 +set(CPACK_RPM_PACKAGE_AUTOREQ "no") +set(CPACK_RPM_PACKAGE_AUTOPROV "no") +set(CPACK_RPM_applications_auto_PACKAGE_AUTOREQPROV "yes") +set(CPACK_RPM_libs_auto_PACKAGE_AUTOREQPROV "yes") + +set(CPACK_RPM_PACKAGE_REQUIRES "depend-default, depend-default-b") +set(CPACK_RPM_applications_PACKAGE_REQUIRES "depend-application, depend-application-b") +set(CPACK_RPM_applications_auto_PACKAGE_REQUIRES "depend-application, depend-application-b") +set(CPACK_RPM_headers_PACKAGE_REQUIRES "depend-headers") + +set(CPACK_RPM_PACKAGE_CONFLICTS "conflict-default, conflict-default-b") +set(CPACK_RPM_applications_PACKAGE_CONFLICTS "conflict-application, conflict-application-b") +set(CPACK_RPM_applications_auto_PACKAGE_CONFLICTS "conflict-application, conflict-application-b") +set(CPACK_RPM_headers_PACKAGE_CONFLICTS "conflict-headers") + +set(CPACK_RPM_PACKAGE_PROVIDES "provided-default, provided-default-b") +set(CPACK_RPM_libs_PACKAGE_PROVIDES "provided-lib") +set(CPACK_RPM_libs_auto_PACKAGE_PROVIDES "provided-lib_auto, provided-lib_auto-b") |