Commit d3e5c53 for zlib

commit d3e5c539ed8a761137354208fe557edaa2059054
Author: Vollstrecker <werner@vollstreckernet.de>
Date:   Wed Dec 24 14:17:25 2025 +0100

    CMake: Add components tests for zlib.

diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 098472e..61da30d 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -134,6 +134,8 @@ add_test(
 set_tests_properties(zlib_install PROPERTIES FIXTURES_SETUP zlib_install)

 file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/find_package_no_components_test)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/find_package_wrong_components_test)
 file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test)
 file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test)

@@ -141,6 +143,14 @@ configure_file(
     ${CMAKE_CURRENT_SOURCE_DIR}/find_package_test.cmake.in
     ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test/CMakeLists.txt @ONLY)

+configure_file(
+    ${CMAKE_CURRENT_SOURCE_DIR}/find_package_no_components_test.cmake.in
+    ${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test/CMakeLists.txt @ONLY)
+
+configure_file(
+    ${CMAKE_CURRENT_SOURCE_DIR}/find_package_wrong_components_test.cmake.in
+    ${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test/CMakeLists.txt @ONLY)
+
 configure_file(
     ${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_test.cmake.in
     ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test/CMakeLists.txt @ONLY)
@@ -191,6 +201,49 @@ set_tests_properties(
     zlib_find_package_test PROPERTIES FIXTURES_REQUIRED fp_build ENVIRONMENT
                                       CTEST_OUTPUT_ON_FAILURE=1)

+#
+# findpackage_no_components_test
+#
+add_test(
+    NAME zlib_find_package_no_components_configure
+    COMMAND
+        ${CMAKE_COMMAND} ${PLATFORM}
+        -B${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test_build
+        -DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+        -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+        -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/test_install --fresh
+        -G "${CMAKE_GENERATOR}"
+        -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test)
+
+set_tests_properties(
+    zlib_find_package_no_components_configure
+        PROPERTIES FIXTURES_REQUIRED zlib_install)
+
+if(NOT ZLIB_BUILD_SHARED OR NOT ZLIB_BUILD_STATIC)
+    set_tests_properties(
+        zlib_find_package_no_components_configure
+            PROPERTIES WILL_FAIL TRUE)
+endif(NOT ZLIB_BUILD_SHARED OR NOT ZLIB_BUILD_STATIC)
+
+#
+# findpackage_no_component_test
+#
+add_test(
+    NAME zlib_find_package_wrong_components_configure
+    COMMAND
+        ${CMAKE_COMMAND} ${PLATFORM}
+        -B${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test_build
+        -DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+        -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+        -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/test_install --fresh
+        -G "${CMAKE_GENERATOR}"
+        -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test)
+
+set_tests_properties(
+    zlib_find_package_wrong_components_configure
+        PROPERTIES FIXTURES_REQUIRED zlib_install
+                   WILL_FAIL TRUE)
+
 #
 # add_subdirectory_test
 #
diff --git a/test/find_package_no_components_test.cmake.in b/test/find_package_no_components_test.cmake.in
new file mode 100644
index 0000000..7c54386
--- /dev/null
+++ b/test/find_package_no_components_test.cmake.in
@@ -0,0 +1,27 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+    zlib_find_package_test
+    LANGUAGES C
+    VERSION @zlib_VERSION@)
+
+enable_testing()
+option(ZLIB_BUILD_SHARED "" @ZLIB_BUILD_SHARED@)
+option(ZLIB_BUILD_STATIC "" @ZLIB_BUILD_STATIC@)
+
+find_package(ZLIB @zlib_VERSION@ CONFIG REQUIRED)
+
+if(ZLIB_BUILD_SHARED)
+    add_executable(test_example @zlib_SOURCE_DIR@/test/example.c)
+    target_link_libraries(test_example ZLIB::ZLIB)
+
+    if(NOT ${CMAKE_SHARED_LIBRARY_SUFFIX} STREQUAL ".dll")
+        add_test(NAME zlib_test_example_shared COMMAND test_example)
+    endif(NOT ${CMAKE_SHARED_LIBRARY_SUFFIX} STREQUAL ".dll")
+endif(ZLIB_BUILD_SHARED)
+
+if(ZLIB_BUILD_STATIC)
+    add_executable(test_example_static @zlib_SOURCE_DIR@/test/example.c)
+    target_link_libraries(test_example_static ZLIB::ZLIBSTATIC)
+    add_test(NAME zlib_test_example_static COMMAND test_example_static)
+endif(ZLIB_BUILD_STATIC)
diff --git a/test/find_package_test.cmake.in b/test/find_package_test.cmake.in
index 0f77d49..be5486d 100644
--- a/test/find_package_test.cmake.in
+++ b/test/find_package_test.cmake.in
@@ -6,11 +6,11 @@ project(
     VERSION @zlib_VERSION@)

 enable_testing()
-find_package(ZLIB @zlib_VERSION@ CONFIG REQUIRED)
 option(ZLIB_BUILD_SHARED "" @ZLIB_BUILD_SHARED@)
 option(ZLIB_BUILD_STATIC "" @ZLIB_BUILD_STATIC@)

 if(ZLIB_BUILD_SHARED)
+    find_package(ZLIB @zlib_VERSION@ CONFIG COMPONENTS shared REQUIRED)
     add_executable(test_example @zlib_SOURCE_DIR@/test/example.c)
     target_link_libraries(test_example ZLIB::ZLIB)

@@ -20,6 +20,7 @@ if(ZLIB_BUILD_SHARED)
 endif(ZLIB_BUILD_SHARED)

 if(ZLIB_BUILD_STATIC)
+    find_package(ZLIB @zlib_VERSION@ CONFIG COMPONENTS static REQUIRED)
     add_executable(test_example_static @zlib_SOURCE_DIR@/test/example.c)
     target_link_libraries(test_example_static ZLIB::ZLIBSTATIC)
     add_test(NAME zlib_test_example_static COMMAND test_example_static)
diff --git a/test/find_package_wrong_components_test.cmake.in b/test/find_package_wrong_components_test.cmake.in
new file mode 100644
index 0000000..fff4601
--- /dev/null
+++ b/test/find_package_wrong_components_test.cmake.in
@@ -0,0 +1,27 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+    zlib_find_package_test
+    LANGUAGES C
+    VERSION @zlib_VERSION@)
+
+enable_testing()
+option(ZLIB_BUILD_SHARED "" @ZLIB_BUILD_SHARED@)
+option(ZLIB_BUILD_STATIC "" @ZLIB_BUILD_STATIC@)
+
+find_package(ZLIB @zlib_VERSION@ CONFIG COMPONENTS wrong REQUIRED)
+
+if(ZLIB_BUILD_SHARED)
+    add_executable(test_example @zlib_SOURCE_DIR@/test/example.c)
+    target_link_libraries(test_example ZLIB::ZLIB)
+
+    if(NOT ${CMAKE_SHARED_LIBRARY_SUFFIX} STREQUAL ".dll")
+        add_test(NAME zlib_test_example_shared COMMAND test_example)
+    endif(NOT ${CMAKE_SHARED_LIBRARY_SUFFIX} STREQUAL ".dll")
+endif(ZLIB_BUILD_SHARED)
+
+if(ZLIB_BUILD_STATIC)
+    add_executable(test_example_static @zlib_SOURCE_DIR@/test/example.c)
+    target_link_libraries(test_example_static ZLIB::ZLIBSTATIC)
+    add_test(NAME zlib_test_example_static COMMAND test_example_static)
+endif(ZLIB_BUILD_STATIC)