summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/CPack/RPM/DEPENDENCIES-VerifyResult.cmake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-08-06 13:38:33 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2015-08-06 13:38:33 (GMT)
commit22590805bffe74c3b4998152556561a2c2b6d177 (patch)
tree9dae885888fe7afef8079c371ae39eed3e495802 /Tests/RunCMake/CPack/RPM/DEPENDENCIES-VerifyResult.cmake
parent91c1b13d6e369190d6c8293d27cda1f6fba160d3 (diff)
parent94226751cb9beb7aa1939e9395d4999e30b30600 (diff)
downloadCMake-22590805bffe74c3b4998152556561a2c2b6d177.zip
CMake-22590805bffe74c3b4998152556561a2c2b6d177.tar.gz
CMake-22590805bffe74c3b4998152556561a2c2b6d177.tar.bz2
Merge topic 'cpack-rpm-documentation-fixes'
94226751 Tests/RunCMake/CPack: Add dependencies tests 105011e0 Tests/RunCMake/CPack: Bump verify result cmake version d882d477 Tests/RunCMake/CPack/DEB: Add getPackageInfo helper function 145735b7 Tests/RunCMake/CPack: Enable CXX language in tests e26f53a8 CPack/RPM: missing PACKAGE_CONFLICTS documentation 64aacb24 CPack/RPM: undocumented variables
Diffstat (limited to 'Tests/RunCMake/CPack/RPM/DEPENDENCIES-VerifyResult.cmake')
-rw-r--r--Tests/RunCMake/CPack/RPM/DEPENDENCIES-VerifyResult.cmake45
1 files changed, 45 insertions, 0 deletions
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")