From d3e5c539ed8a761137354208fe557edaa2059054 Mon Sep 17 00:00:00 2001 From: Vollstrecker Date: Wed, 24 Dec 2025 14:17:25 +0100 Subject: CMake: Add components tests for zlib. --- test/CMakeLists.txt | 53 ++++++++++++++++++++++++ test/find_package_no_components_test.cmake.in | 27 ++++++++++++ test/find_package_test.cmake.in | 3 +- test/find_package_wrong_components_test.cmake.in | 27 ++++++++++++ 4 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 test/find_package_no_components_test.cmake.in create mode 100644 test/find_package_wrong_components_test.cmake.in diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 098472eb..61da30d6 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=$ -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=$ -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 00000000..7c54386d --- /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 0f77d497..be5486d8 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 00000000..fff4601c --- /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) -- cgit v1.2.3-55-g6feb