diff options
author | Deniz Bahadir <deniz@code.bahadir.email> | 2024-05-01 17:20:32 (GMT) |
---|---|---|
committer | Deniz Bahadir <deniz@code.bahadir.email> | 2024-05-01 17:20:32 (GMT) |
commit | d7e2fede0351f4438548ea135ebf3058cb46ebda (patch) | |
tree | 4326bbfd13ffe73a2d6c8e6d94063f573367f447 | |
parent | a1af593291efecb5204eb7aa745468dc2a1bf1a7 (diff) | |
download | CMake-d7e2fede0351f4438548ea135ebf3058cb46ebda.zip CMake-d7e2fede0351f4438548ea135ebf3058cb46ebda.tar.gz CMake-d7e2fede0351f4438548ea135ebf3058cb46ebda.tar.bz2 |
CPack: Add tests for component containing problematic characters
5 files changed, 81 insertions, 0 deletions
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 005bd17..192675e 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -1047,6 +1047,7 @@ set(cpack_tests DEB.DEB_PACKAGE_VERSION_BACK_COMPATIBILITY DEB.DEB_DESCRIPTION DEB.PROJECT_META + DEB.COMPONENT_WITH_SPECIAL_CHARS RPM.AUTO_SUFFIXES RPM.CUSTOM_BINARY_SPEC_FILE @@ -1069,6 +1070,7 @@ set(cpack_tests RPM.SYMLINKS RPM.USER_FILELIST RPM.PROJECT_META + RPM.COMPONENT_WITH_SPECIAL_CHARS 7Z TBZ2 diff --git a/Tests/RunCMake/CPack/DEB/packaging_GROUP_default.cmake b/Tests/RunCMake/CPack/DEB/packaging_GROUP_default.cmake new file mode 100644 index 0000000..8821ab9 --- /dev/null +++ b/Tests/RunCMake/CPack/DEB/packaging_GROUP_default.cmake @@ -0,0 +1 @@ +set(CPACK_PACKAGE_CONTACT "someone") diff --git a/Tests/RunCMake/CPack/RunCMakeTest.cmake b/Tests/RunCMake/CPack/RunCMakeTest.cmake index 258f6a6..5d32404 100644 --- a/Tests/RunCMake/CPack/RunCMakeTest.cmake +++ b/Tests/RunCMake/CPack/RunCMakeTest.cmake @@ -71,3 +71,5 @@ run_cpack_test_subtests( run_cpack_test(PROJECT_META "RPM.PROJECT_META;DEB.PROJECT_META" false "MONOLITHIC;COMPONENT") run_cpack_test_package_target(PRE_POST_SCRIPTS "ZIP" false "MONOLITHIC;COMPONENT") run_cpack_test_subtests(DUPLICATE_FILE "success;conflict_file;conflict_symlink" "TGZ" false "COMPONENT;GROUP") +run_cpack_test(COMPONENT_WITH_SPECIAL_CHARS "RPM.COMPONENT_WITH_SPECIAL_CHARS;DEB.COMPONENT_WITH_SPECIAL_CHARS;7Z;TBZ2;TGZ;TXZ;TZ;ZIP;STGZ" false "MONOLITHIC;COMPONENT;GROUP") +run_cpack_test_package_target(COMPONENT_WITH_SPECIAL_CHARS "RPM.COMPONENT_WITH_SPECIAL_CHARS;DEB.COMPONENT_WITH_SPECIAL_CHARS;7Z;TBZ2;TGZ;TXZ;TZ;ZIP;STGZ" false "MONOLITHIC;COMPONENT;GROUP") diff --git a/Tests/RunCMake/CPack/tests/COMPONENT_WITH_SPECIAL_CHARS/ExpectedFiles.cmake b/Tests/RunCMake/CPack/tests/COMPONENT_WITH_SPECIAL_CHARS/ExpectedFiles.cmake new file mode 100644 index 0000000..0eb250d --- /dev/null +++ b/Tests/RunCMake/CPack/tests/COMPONENT_WITH_SPECIAL_CHARS/ExpectedFiles.cmake @@ -0,0 +1,42 @@ +if(PACKAGING_TYPE STREQUAL "MONOLITHIC") + set(EXPECTED_FILES_COUNT "1") + set(EXPECTED_FILE_CONTENT_1_LIST + "/foo1" + "/foo1/CMakeLists.txt" + "/foo2" + "/foo2/CMakeLists.txt" + "/foo3" + "/foo3/CMakeLists.txt" + ) +elseif(PACKAGING_TYPE STREQUAL "COMPONENT") + set(EXPECTED_FILES_COUNT "3") + set(EXPECTED_FILE_1 "*-comp1.test1.*") + set(EXPECTED_FILE_CONTENT_1_LIST + "/foo1" + "/foo1/CMakeLists.txt" + ) + set(EXPECTED_FILE_2 "*-component2.*") + set(EXPECTED_FILE_CONTENT_2_LIST + "/foo2" + "/foo2/CMakeLists.txt" + ) + set(EXPECTED_FILE_3 "*-component3.*") + set(EXPECTED_FILE_CONTENT_3_LIST + "/foo3" + "/foo3/CMakeLists.txt" + ) +elseif(PACKAGING_TYPE STREQUAL "GROUP") + set(EXPECTED_FILES_COUNT "2") + set(EXPECTED_FILE_1 "*-group1.*") + set(EXPECTED_FILE_CONTENT_1_LIST + "/foo1" + "/foo1/CMakeLists.txt" + "/foo2" + "/foo2/CMakeLists.txt" + ) + set(EXPECTED_FILE_2 "*-group2.*") + set(EXPECTED_FILE_CONTENT_2_LIST + "/foo3" + "/foo3/CMakeLists.txt" + ) +endif() diff --git a/Tests/RunCMake/CPack/tests/COMPONENT_WITH_SPECIAL_CHARS/test.cmake b/Tests/RunCMake/CPack/tests/COMPONENT_WITH_SPECIAL_CHARS/test.cmake new file mode 100644 index 0000000..b905cc3 --- /dev/null +++ b/Tests/RunCMake/CPack/tests/COMPONENT_WITH_SPECIAL_CHARS/test.cmake @@ -0,0 +1,34 @@ +install(FILES CMakeLists.txt DESTINATION foo1 COMPONENT comp1.test1) +install(FILES CMakeLists.txt DESTINATION foo2 COMPONENT comp2::test2) +install(FILES CMakeLists.txt DESTINATION foo3 COMPONENT comp3/test3) + +if(PACKAGING_TYPE STREQUAL "COMPONENT") + foreach(gen IN ITEMS ARCHIVE DEBIAN RPM) + set(CPACK_${gen}_COMP2::TEST2_FILE_NAME "component_with_special_chars-0.1.1-${CMAKE_SYSTEM_NAME}-component2") + set(CPACK_${gen}_COMP3/TEST3_FILE_NAME "component_with_special_chars-0.1.1-${CMAKE_SYSTEM_NAME}-component3") + endforeach() +elseif(PACKAGING_TYPE STREQUAL "GROUP") + set(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP) + foreach(gen IN ITEMS ARCHIVE DEB RPM) + set(CPACK_${gen}_COMPONENT_INSTALL ON) + endforeach() + include(CPackComponent) + + cpack_add_component_group(group1 DISPLAY_NAME "Group 1") + cpack_add_component_group(group2 DISPLAY_NAME "Group 2") + cpack_add_component(comp1.test1 + DISPLAY_NAME "Group 1" + DESCRIPTION "Component for Group 1" + GROUP group1 + ) + cpack_add_component(comp2::test2 + DISPLAY_NAME "Group 1" + DESCRIPTION "Component for Group 1" + GROUP group1 + ) + cpack_add_component(comp3/test3 + DISPLAY_NAME "Group 2" + DESCRIPTION "Component for Group 2" + GROUP group2 + ) +endif() |