1
0
Эх сурвалжийг харах

Merge topic 'cpack-rpm-tests-handle-build-id-links'

4ba065b2 CPack/RPM tests: handle build-id links

Acked-by: Kitware Robot <[email protected]>
Merge-request: !628
Brad King 8 жил өмнө
parent
commit
42b7d132a8

+ 4 - 4
Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake

@@ -205,14 +205,14 @@ if(CPackGen MATCHES "RPM")
 /usr/foo/bar/non_relocatable/depth_two
 /usr/foo/bar/non_relocatable/depth_two/symlink_from_non_relocatable_path
 /usr/foo/bar/other_relocatable
-/usr/foo/bar/other_relocatable/depth_two$")
+/usr/foo/bar/other_relocatable/depth_two(\n.*\.build-id.*)*$")
       elseif(check_file_headers_match)
         set(check_file_match_expected_summary ".*${CPACK_RPM_HEADERS_PACKAGE_SUMMARY}.*")
         set(check_file_match_expected_description ".*${CPACK_RPM_HEADERS_PACKAGE_DESCRIPTION}.*")
         set(check_file_match_expected_relocation_path "Relocations${whitespaces}:${whitespaces}${CPACK_PACKAGING_INSTALL_PREFIX}${whitespaces}${CPACK_PACKAGING_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
         set(check_file_match_expected_architecture "noarch")
         set(spec_regex "*headers*")
-        set(check_content_list "^/usr/foo/bar\n/usr/foo/bar/include\n/usr/foo/bar/include/mylib.h$")
+        set(check_content_list "^/usr/foo/bar\n/usr/foo/bar/include\n/usr/foo/bar/include/mylib.h(\n.*\.build-id.*)*$")
       elseif(check_file_applications_match)
         set(check_file_match_expected_summary ".*${CPACK_RPM_PACKAGE_SUMMARY}.*")
         set(check_file_match_expected_description ".*${CPACK_COMPONENT_APPLICATIONS_DESCRIPTION}.*")
@@ -221,7 +221,7 @@ if(CPackGen MATCHES "RPM")
         set(spec_regex "*applications*")
         set(check_content_list "^/usr/foo/bar
 /usr/foo/bar/bin
-/usr/foo/bar/bin/mylibapp$")
+/usr/foo/bar/bin/mylibapp(\n.*\.build-id.*)*$")
       elseif(check_file_Unspecified_match)
         set(check_file_match_expected_summary ".*${CPACK_RPM_PACKAGE_SUMMARY}.*")
         set(check_file_match_expected_description ".*DESCRIPTION.*")
@@ -241,7 +241,7 @@ if(CPackGen MATCHES "RPM")
 /usr/foo/bar/share/man/mylib/man3
 /usr/foo/bar/share/man/mylib/man3/mylib.1
 /usr/foo/bar/share/man/mylib/man3/mylib.1/mylib
-/usr/foo/bar/share/man/mylib/man3/mylib.1/mylib2$")
+/usr/foo/bar/share/man/mylib/man3/mylib.1/mylib2(\n.*\.build-id.*)*$")
       else()
         message(FATAL_ERROR "error: unexpected rpm package '${check_file}'")
       endif()

+ 4 - 0
Tests/RunCMake/CPack/RPM/Helpers.cmake

@@ -36,6 +36,10 @@ function(getPackageContentList FILE RESULT_VAR)
           OUTPUT_STRIP_TRAILING_WHITESPACE)
   string(REGEX REPLACE "\n" ";" package_content_ "${package_content_}")
 
+  # never versions of rpmbuild (introduced in rpm 4.13.0.1) add build_id links
+  # to packages - tests should ignore them
+  list(FILTER package_content_ EXCLUDE REGEX ".*\.build-id.*")
+
   set(${RESULT_VAR} "${package_content_}" PARENT_SCOPE)
 endfunction()
 

+ 3 - 1
Tests/RunCMake/CPack/tests/SOURCE_PACKAGE/VerifyResult.cmake

@@ -21,7 +21,9 @@ execute_process(COMMAND ${RPMBUILD_EXECUTABLE} --define "_topdir ${CMAKE_CURRENT
 set(output_error_message_
     "\n${RPMBUILD_EXECUTABLE} error: '${error_}';\nresult: '${result_}';\n${output_error_message}")
 
-set(EXPECTED_FILE_CONTENT_ "^/foo${whitespaces_}/foo/test_prog$")
+# expected file content are test_prog and optional build-id links that are
+# generated by rpmbuild (introduced in rpm 4.13.0.1)
+set(EXPECTED_FILE_CONTENT_ "^/foo${whitespaces_}/foo/test_prog(${whitespaces_}.*\.build-id.*)*$")
 
 file(GLOB_RECURSE FOUND_FILE_ RELATIVE "${CMAKE_CURRENT_BINARY_DIR}/test_rpm/RPMS" "${CMAKE_CURRENT_BINARY_DIR}/test_rpm/RPMS/*.rpm")
 list(APPEND foundFiles_ "${FOUND_FILE_}")