summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDeniz Bahadir <deniz@code.bahadir.email>2024-05-01 17:20:32 (GMT)
committerDeniz Bahadir <deniz@code.bahadir.email>2024-05-01 17:20:32 (GMT)
commitd7e2fede0351f4438548ea135ebf3058cb46ebda (patch)
tree4326bbfd13ffe73a2d6c8e6d94063f573367f447
parenta1af593291efecb5204eb7aa745468dc2a1bf1a7 (diff)
downloadCMake-d7e2fede0351f4438548ea135ebf3058cb46ebda.zip
CMake-d7e2fede0351f4438548ea135ebf3058cb46ebda.tar.gz
CMake-d7e2fede0351f4438548ea135ebf3058cb46ebda.tar.bz2
CPack: Add tests for component containing problematic characters
-rw-r--r--Tests/RunCMake/CMakeLists.txt2
-rw-r--r--Tests/RunCMake/CPack/DEB/packaging_GROUP_default.cmake1
-rw-r--r--Tests/RunCMake/CPack/RunCMakeTest.cmake2
-rw-r--r--Tests/RunCMake/CPack/tests/COMPONENT_WITH_SPECIAL_CHARS/ExpectedFiles.cmake42
-rw-r--r--Tests/RunCMake/CPack/tests/COMPONENT_WITH_SPECIAL_CHARS/test.cmake34
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()