Commit 883c24b for zlib
commit 883c24b6a25c3e6eeebf02cc19a3e8537ac5614f
Author: Vollstrecker <werner@vollstreckernet.de>
Date: Sat Jan 3 11:02:41 2026 +0100
CMake: Add integration tests.
diff --git a/contrib/ada/CMakeLists.txt b/contrib/ada/CMakeLists.txt
index 85b9444..8922200 100644
--- a/contrib/ada/CMakeLists.txt
+++ b/contrib/ada/CMakeLists.txt
@@ -211,7 +211,7 @@ if(ZLIB_ADA_BUILD_STATIC)
endif(ZLIB_ADA_BUILD_STATIC)
if(ZLIB_ADA_BUILD_TESTING)
- add_test(NAME zlib_Ada_cleanup COMMAND ${CMAKE_COMMAND} -E rm ${CMAKE_CURRENT_BINARY_DIR}/testzlib.in
+ add_test(NAME zlib_ada_cleanup COMMAND ${CMAKE_COMMAND} -E rm ${CMAKE_CURRENT_BINARY_DIR}/testzlib.in
${CMAKE_CURRENT_BINARY_DIR}/testzlib.out ${CMAKE_CURRENT_BINARY_DIR}/testzlib.zlb)
- set_tests_properties(zlib_Ada_cleanup PROPERTIES FIXTURES_CLEANUP ada_cleanup)
+ set_tests_properties(zlib_ada_cleanup PROPERTIES FIXTURES_CLEANUP zlib_ada_cleanup)
endif(ZLIB_ADA_BUILD_TESTING)
diff --git a/contrib/blast/CMakeLists.txt b/contrib/blast/CMakeLists.txt
index a94b362..6f3ba38 100644
--- a/contrib/blast/CMakeLists.txt
+++ b/contrib/blast/CMakeLists.txt
@@ -104,6 +104,10 @@ if(ZLIB_BLAST_BUILD_STATIC)
endif(ZLIB_BLAST_BUILD_TESTING)
endif(ZLIB_BLAST_BUILD_STATIC)
+if(ZLIB_BLAST_BUILD_TESTING)
+ add_subdirectory(test)
+endif(ZLIB_BLAST_BUILD_TESTING)
+
if(ZLIB_BLAST_INSTALL)
if(ZLIB_BLAST_BUILD_SHARED)
install(
diff --git a/contrib/blast/blastConfig.cmake.in b/contrib/blast/blastConfig.cmake.in
new file mode 100644
index 0000000..5909ac4
--- /dev/null
+++ b/contrib/blast/blastConfig.cmake.in
@@ -0,0 +1,18 @@
+@PACKAGE_INIT@
+
+set(_blast_supported_components "shared" "static")
+
+if(blast_FIND_COMPONENTS)
+ foreach(_comp ${blast_FIND_COMPONENTS})
+ if(NOT _comp IN_LIST _blast_supported_components)
+ set(blast_FOUND False)
+ set(blast_NOT_FOUND_MESSAGE "Unsupported component: ${_comp}")
+ endif(NOT _comp IN_LIST _blast_supported_components)
+
+ include("${CMAKE_CURRENT_LIST_DIR}/blast-${_comp}.cmake")
+ endforeach(_comp ${blast_FIND_COMPONENTS})
+else(blast_FIND_COMPONENTS)
+ foreach(_component_config IN LISTS _blast_supported_components)
+ include("${CMAKE_CURRENT_LIST_DIR}/blast-${_component_config}.cmake")
+ endforeach(_component_config IN LISTS _blast_supported_components)
+endif(blast_FIND_COMPONENTS)
diff --git a/contrib/blast/test/CMakeLists.txt b/contrib/blast/test/CMakeLists.txt
new file mode 100644
index 0000000..d319b82
--- /dev/null
+++ b/contrib/blast/test/CMakeLists.txt
@@ -0,0 +1,193 @@
+# if we are built from with zlib, use this path's)
+if(DEFINED ZLIB_BUILD_SHARED)
+ set(WORK_DIR ${zlib_BINARY_DIR})
+ set(inst_setup zlib_blast_install)
+else(DEFINED ZLIB_BUILD_SHARED)
+ set(WORK_DIR ${blast_BINARY_DIR})
+ set(inst_setup zlib_blast_install)
+ set(ZLIB_ARG "-DZLIB_DIR=${ZLIB_DIR}")
+
+ add_test(
+ NAME zlib_blast_install
+ COMMAND ${CMAKE_COMMAND} --install ${blast_BINARY_DIR} --prefix
+ ${CMAKE_CURRENT_BINARY_DIR}/test_install --config $<CONFIG>
+ WORKING_DIRECTORY ${blast_BINARY_DIR})
+
+ set_tests_properties(zlib_blast_install
+ PROPERTIES
+ FIXTURES_SETUP zlib_blast_install)
+endif(DEFINED ZLIB_BUILD_SHARED)
+
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test)
+
+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}/add_subdirectory_test.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test/CMakeLists.txt @ONLY)
+
+configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_exclude_test.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_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)
+
+# CMAKE_GENERATOR_PLATFORM doesn't work in the if
+set(GENERATOR ${CMAKE_GENERATOR_PLATFORM})
+
+if(GENERATOR)
+ set(PLATFORM "-A ${GENERATOR}")
+endif(GENERATOR)
+
+#
+# findpackage_test
+#
+add_test(
+ NAME zlib_blast_find_package_configure
+ COMMAND
+ ${CMAKE_COMMAND} ${PLATFORM}
+ -B${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build
+ -DCMAKE_BUILD_TYPE=$<CONFIG>
+ -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+ -DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
+ --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
+
+add_test(
+ NAME zlib_blast_find_package_build
+ COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build)
+
+set_tests_properties(
+ zlib_blast_find_package_configure
+ PROPERTIES
+ FIXTURES_REQUIRED ${inst_setup}
+ FIXTURES_SETUP blast_fp_config)
+
+set_tests_properties(zlib_blast_find_package_build
+ PROPERTIES
+ FIXTURES_REQUIRED blast_fp_config)
+
+#
+# add_subdirectory_test
+#
+add_test(
+ NAME zlib_blast_add_subdirectory_configure
+ COMMAND
+ ${CMAKE_COMMAND} ${PLATFORM}
+ -B${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build
+ -DCMAKE_BUILD_TYPE=$<CONFIG>
+ -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+ -DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
+ --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test)
+
+add_test(
+ NAME zlib_blast_add_subdirectory_build
+ COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build)
+
+set_tests_properties(
+ zlib_blast_add_subdirectory_configure
+ PROPERTIES
+ FIXTURES_REQUIRED ${inst_setup}
+ FIXTURES_SETUP blast_as_config)
+
+set_tests_properties(zlib_blast_add_subdirectory_build
+ PROPERTIES
+ FIXTURES_REQUIRED blast_as_config)
+
+#
+# add_subdirectory_exclude_test
+#
+add_test(
+ NAME zlib_blast_add_subdirectory_exclude_configure
+ COMMAND
+ ${CMAKE_COMMAND} ${PLATFORM}
+ -B${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build
+ -DCMAKE_BUILD_TYPE=$<CONFIG>
+ -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+ -DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
+ --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test)
+
+add_test(
+ NAME zlib_blast_add_subdirectory_exclude_build
+ COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
+ WORKING_DIRECTORY
+ ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build)
+
+set_tests_properties(zlib_blast_add_subdirectory_exclude_configure
+ PROPERTIES
+ FIXTURES_REQUIRED ${inst_setup}
+ FIXTURES_SETUP blast_asx_config)
+
+set_tests_properties(zlib_blast_add_subdirectory_exclude_build
+ PROPERTIES
+ FIXTURES_REQUIRED blast_asx_config)
+
+#
+# findpackage_no_components_test
+#
+add_test(
+ NAME zlib_blast_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=${WORK_DIR}/test/test_install ${ZLIB_ARG}
+ --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test)
+
+set_tests_properties(
+ zlib_blast_find_package_no_components_configure
+ PROPERTIES
+ FIXTURES_REQUIRED ${inst_setup})
+
+if(NOT ZLIB_BLAST_BUILD_SHARED OR NOT ZLIB_BLAST_BUILD_STATIC)
+ set_tests_properties(zlib_blast_find_package_no_components_configure
+ PROPERTIES
+ WILL_FAIL TRUE)
+endif(NOT ZLIB_BLAST_BUILD_SHARED OR NOT ZLIB_BLAST_BUILD_STATIC)
+
+#
+# findpackage_no_components_test
+#
+add_test(
+ NAME zlib_blast_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=${WORK_DIR}/test/test_install ${ZLIB_ARG}
+ --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test)
+
+set_tests_properties(zlib_blast_find_package_wrong_components_configure
+ PROPERTIES
+ FIXTURES_REQUIRED ${inst_setup}
+ WILL_FAIL TRUE)
+
diff --git a/contrib/blast/test/add_subdirectory_exclude_test.cmake.in b/contrib/blast/test/add_subdirectory_exclude_test.cmake.in
new file mode 100644
index 0000000..fd6b487
--- /dev/null
+++ b/contrib/blast/test/add_subdirectory_exclude_test.cmake.in
@@ -0,0 +1,27 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ blast_find_package
+ LANGUAGES C
+ VERSION @blast_VERSION@)
+
+option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
+option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
+option(ZLIB_BLAST_BUILD_TESTING "" @ZLIB_BLAST_BUILD_TESTING@)
+
+add_subdirectory(@blast_SOURCE_DIR@
+ ${CMAKE_CURRENT_BINARY_DIR}/blast
+ EXCLUDE_FROM_ALL)
+
+set(BLAST_SRCS
+ @blast_SOURCE_DIR@/blast-test.c)
+
+if(ZLIB_BLAST_BUILD_SHARED)
+ add_executable(test_example ${BLAST_SRCS})
+ target_link_libraries(test_example BLAST::BLAST)
+endif(ZLIB_BLAST_BUILD_SHARED)
+
+if(ZLIB_BLAST_BUILD_STATIC)
+ add_executable(test_example_static ${BLAST_SRCS})
+ target_link_libraries(test_example_static BLAST::BLASTSTATIC)
+endif(ZLIB_BLAST_BUILD_STATIC)
diff --git a/contrib/blast/test/add_subdirectory_test.cmake.in b/contrib/blast/test/add_subdirectory_test.cmake.in
new file mode 100644
index 0000000..8b9370f
--- /dev/null
+++ b/contrib/blast/test/add_subdirectory_test.cmake.in
@@ -0,0 +1,25 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ blast_find_package
+ LANGUAGES C
+ VERSION @blast_VERSION@)
+
+option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
+option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
+option(ZLIB_BLAST_BUILD_TESTING "" @ZLIB_BLAST_BUILD_TESTING@)
+
+add_subdirectory(@blast_SOURCE_DIR@ ${CMAKE_CURRENT_BINARY_DIR}/blast)
+
+set(BLAST_SRCS
+ @blast_SOURCE_DIR@/blast-test.c)
+
+if(ZLIB_BLAST_BUILD_SHARED)
+ add_executable(test_example ${BLAST_SRCS})
+ target_link_libraries(test_example BLAST::BLAST)
+endif(ZLIB_BLAST_BUILD_SHARED)
+
+if(ZLIB_BLAST_BUILD_STATIC)
+ add_executable(test_example_static ${BLAST_SRCS})
+ target_link_libraries(test_example_static BLAST::BLASTSTATIC)
+endif(ZLIB_BLAST_BUILD_STATIC)
diff --git a/contrib/blast/test/find_package_no_components_test.cmake.in b/contrib/blast/test/find_package_no_components_test.cmake.in
new file mode 100644
index 0000000..f7054ff
--- /dev/null
+++ b/contrib/blast/test/find_package_no_components_test.cmake.in
@@ -0,0 +1,24 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ blast_find_package
+ LANGUAGES C
+ VERSION @blast_VERSION@)
+
+option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
+option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
+
+find_package(blast REQUIRED CONFIG)
+
+set(BLAST_SRCS
+ @blast_SOURCE_DIR@/blast-test.c)
+
+if(ZLIB_BLAST_BUILD_SHARED)
+ add_executable(test_example ${BLAST_SRCS})
+ target_link_libraries(test_example BLAST::BLAST)
+endif(ZLIB_BLAST_BUILD_SHARED)
+
+if(ZLIB_BLAST_BUILD_STATIC)
+ add_executable(test_example_static ${BLAST_SRCS})
+ target_link_libraries(test_example_static BLAST::BLASTSTATIC)
+endif(ZLIB_BLAST_BUILD_STATIC)
diff --git a/contrib/blast/test/find_package_test.cmake.in b/contrib/blast/test/find_package_test.cmake.in
new file mode 100644
index 0000000..c80e50b
--- /dev/null
+++ b/contrib/blast/test/find_package_test.cmake.in
@@ -0,0 +1,24 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ blast_find_package
+ LANGUAGES C
+ VERSION @blast_VERSION@)
+
+option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
+option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
+
+set(BLAST_SRCS
+ @blast_SOURCE_DIR@/blast-test.c)
+
+if(ZLIB_BLAST_BUILD_SHARED)
+ find_package(blast REQUIRED COMPONENTS shared CONFIG)
+ add_executable(test_example ${BLAST_SRCS})
+ target_link_libraries(test_example BLAST::BLAST)
+endif(ZLIB_BLAST_BUILD_SHARED)
+
+if(ZLIB_BLAST_BUILD_STATIC)
+ find_package(blast REQUIRED COMPONENTS static CONFIG)
+ add_executable(test_example_static ${BLAST_SRCS})
+ target_link_libraries(test_example_static BLAST::BLASTSTATIC)
+endif(ZLIB_BLAST_BUILD_STATIC)
diff --git a/contrib/blast/test/find_package_wrong_components_test.cmake.in b/contrib/blast/test/find_package_wrong_components_test.cmake.in
new file mode 100644
index 0000000..608f408
--- /dev/null
+++ b/contrib/blast/test/find_package_wrong_components_test.cmake.in
@@ -0,0 +1,24 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ blast_find_package
+ LANGUAGES C
+ VERSION @blast_VERSION@)
+
+option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
+option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
+
+find_package(blast REQUIRED COMPONENTS wrong CONFIG)
+
+set(BLAST_SRCS
+ @blast_SOURCE_DIR@/blast-test.c)
+
+if(ZLIB_BLAST_BUILD_SHARED)
+ add_executable(test_example ${BLAST_SRCS})
+ target_link_libraries(test_example BLAST::BLAST)
+endif(ZLIB_BLAST_BUILD_SHARED)
+
+if(ZLIB_BLAST_BUILD_STATIC)
+ add_executable(test_example_static ${BLAST_SRCS})
+ target_link_libraries(test_example_static BLAST::BLASTSTATIC)
+endif(ZLIB_BLAST_BUILD_STATIC)
diff --git a/contrib/iostream3/CMakeLists.txt b/contrib/iostream3/CMakeLists.txt
index 9c47c1c..33e5b71 100644
--- a/contrib/iostream3/CMakeLists.txt
+++ b/contrib/iostream3/CMakeLists.txt
@@ -111,6 +111,8 @@ if(ZLIB_IOSTREAM3_BUILD_TESTING)
set_tests_properties(zlib_iostream3_cleanup
PROPERTIES
FIXTURES_CLEANUP zlib_iostream3_cleanup)
+
+ add_subdirectory(test)
endif(ZLIB_IOSTREAM3_BUILD_TESTING)
if(ZLIB_IOSTREAM3_INSTALL)
diff --git a/contrib/iostream3/iostream3Config.cmake.in b/contrib/iostream3/iostream3Config.cmake.in
new file mode 100644
index 0000000..a3db5e8
--- /dev/null
+++ b/contrib/iostream3/iostream3Config.cmake.in
@@ -0,0 +1,23 @@
+@PACKAGE_INIT@
+
+set(_iostreamv3_supported_components "shared" "static")
+include(CMakeFindDependencyMacro)
+
+if(iostreamv3_FIND_COMPONENTS)
+ find_dependency(ZLIB CONFIG COMPONENTS ${iostreamv3_FIND_COMPONENTS})
+
+ foreach(_comp ${iostreamv3_FIND_COMPONENTS})
+ if(NOT _comp IN_LIST _iostreamv3_supported_components)
+ set(iostreamv3_FOUND False)
+ set(iostreamv3_NOT_FOUND_MESSAGE "Unsupported component: ${_comp}")
+ endif(NOT _comp IN_LIST _iostreamv3_supported_components)
+
+ include("${CMAKE_CURRENT_LIST_DIR}/iostreamv3-${_comp}.cmake")
+ endforeach(_comp ${iostreamv3_FIND_COMPONENTS})
+else(iostream3_FIND_COMPONENTS)
+ find_dependency(ZLIB CONFIG)
+
+ foreach(_component_config IN LISTS _iostreamv3_supported_components)
+ include("${CMAKE_CURRENT_LIST_DIR}/iostreamv3-${_component_config}.cmake")
+ endforeach(_component_config IN LISTS _iostreamv3_supported_components)
+endif(iostreamv3_FIND_COMPONENTS)
diff --git a/contrib/iostream3/test/CMakeLists.txt b/contrib/iostream3/test/CMakeLists.txt
new file mode 100644
index 0000000..f8b2b51
--- /dev/null
+++ b/contrib/iostream3/test/CMakeLists.txt
@@ -0,0 +1,191 @@
+# if we are built from with zlib, use this path's)
+if(DEFINED ZLIB_BUILD_SHARED)
+ set(WORK_DIR ${zlib_BINARY_DIR})
+ set(inst_setup zlib_iostream3_install)
+else(DEFINED ZLIB_BUILD_SHARED)
+ set(WORK_DIR ${iostreamV3_BINARY_DIR})
+ set(inst_setup zlib_iostream3_install)
+ set(ZLIB_ARG "-DZLIB_DIR=${ZLIB_DIR}")
+
+ add_test(
+ NAME zlib_iostream3_install
+ COMMAND ${CMAKE_COMMAND} --install ${minizip_BINARY_DIR} --prefix
+ ${CMAKE_CURRENT_BINARY_DIR}/test_install --config $<CONFIG>
+ WORKING_DIRECTORY ${iostreamV3_BINARY_DIR})
+
+ set_tests_properties(zlib_iostream3_install
+ PROPERTIES
+ FIXTURES_SETUP zlib_iostream3_install)
+endif(DEFINED ZLIB_BUILD_SHARED)
+
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test)
+
+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}/add_subdirectory_test.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test/CMakeLists.txt @ONLY)
+
+configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_exclude_test.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_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)
+
+# CMAKE_GENERATOR_PLATFORM doesn't work in the if
+set(GENERATOR ${CMAKE_GENERATOR_PLATFORM})
+
+if(GENERATOR)
+ set(PLATFORM "-A ${GENERATOR}")
+endif(GENERATOR)
+
+#
+# findpackage_test
+#
+add_test(
+ NAME zlib_iostream3_find_package_configure
+ COMMAND
+ ${CMAKE_COMMAND}
+ ${PLATFORM}
+ -B${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build
+ -DCMAKE_BUILD_TYPE=$<CONFIG>
+ -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+ -DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
+ --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
+
+add_test(
+ NAME zlib_iostream3_find_package_build
+ COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build)
+
+set_tests_properties(zlib_iostream3_find_package_configure
+ PROPERTIES
+ FIXTURES_REQUIRED ${inst_setup}
+ FIXTURES_SETUP iostream3_fp_config)
+
+set_tests_properties(zlib_iostream3_find_package_build
+ PROPERTIES
+ FIXTURES_REQUIRED iostream3_fp_config)
+
+#
+# add_subdirectory_test
+#
+add_test(
+ NAME zlib_iostream3_add_subdirectory_configure
+ COMMAND
+ ${CMAKE_COMMAND}
+ ${PLATFORM}
+ -B${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build
+ -DCMAKE_BUILD_TYPE=$<CONFIG>
+ -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+ -DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install
+ ${ZLIB_ARG}
+ --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test)
+
+add_test(
+ NAME zlib_iostream3_add_subdirectory_build
+ COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build)
+
+set_tests_properties(zlib_iostream3_add_subdirectory_configure
+ PROPERTIES
+ FIXTURES_REQUIRED ${inst_setup}
+ FIXTURES_SETUP iostream3as_config)
+
+set_tests_properties(zlib_iostream3_add_subdirectory_build
+ PROPERTIES
+ FIXTURES_REQUIRED iostream3_as_config)
+
+#
+# add_subdirectory_exclude_test
+#
+add_test(
+ NAME zlib_iostream3_add_subdirectory_exclude_configure
+ COMMAND
+ ${CMAKE_COMMAND} ${PLATFORM}
+ -B${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build
+ -DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+ -DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
+ --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test)
+
+add_test(
+ NAME zlib_iostream3_add_subdirectory_exclude_build
+ COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
+ WORKING_DIRECTORY
+ ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build)
+
+set_tests_properties(zlib_iostream3_add_subdirectory_exclude_configure
+ PROPERTIES
+ FIXTURES_REQUIRED ${inst_setup}
+ FIXTURES_SETUP iostream3_asx_config)
+
+set_tests_properties(zlib_iostream3_add_subdirectory_exclude_build
+ PROPERTIES
+ FIXTURES_REQUIRED iostream3_asx_config)
+
+#
+# findpackage_no_components_test
+#
+add_test(
+ NAME zlib_iostream3_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=${WORK_DIR}/test/test_install ${ZLIB_ARG}
+ --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test)
+
+set_tests_properties(zlib_iostream3_find_package_no_components_configure
+ PROPERTIES
+ FIXTURES_REQUIRED ${inst_setup})
+
+if(NOT ZLIB_IOSTREAM3_BUILD_SHARED OR NOT ZLIB_IOSTREAM3_BUILD_STATIC)
+ set_tests_properties(zlib_iostream3_find_package_no_components_configure
+ PROPERTIES
+ WILL_FAIL TRUE)
+endif(NOT ZLIB_IOSTREAM3_BUILD_SHARED OR NOT ZLIB_IOSTREAM3_BUILD_STATIC)
+
+#
+# findpackage_no_components_test
+#
+add_test(
+ NAME zlib_iostream3_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=${WORK_DIR}/test/test_install ${ZLIB_ARG}
+ --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test)
+
+set_tests_properties(zlib_iostream3_find_package_wrong_components_configure
+ PROPERTIES
+ FIXTURES_REQUIRED ${inst_setup}
+ WILL_FAIL TRUE)
diff --git a/contrib/iostream3/test/add_subdirectory_exclude_test.cmake.in b/contrib/iostream3/test/add_subdirectory_exclude_test.cmake.in
new file mode 100644
index 0000000..efc9cd8
--- /dev/null
+++ b/contrib/iostream3/test/add_subdirectory_exclude_test.cmake.in
@@ -0,0 +1,27 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ iostream_add_subdirectory_exclude
+ LANGUAGES CXX
+ VERSION @iostreamV3_VERSION@)
+
+option(ZLIB_IOSTREAM3_BUILD_SHARED "" @ZLIB_IOSTREAM3_BUILD_SHARED@)
+option(ZLIB_IOSTREAM3_BUILD_STATIC "" @ZLIB_IOSTREAM3_BUILD_STATIC@)
+option(ZLIB_IOSTREAM3_BUILD_TESTING "" OFF)
+
+add_subdirectory(@iostreamV3_SOURCE_DIR@
+ ${CMAKE_CURRENT_BINARY_DIR}/iostream3
+ EXCLUDE_FROM_ALL)
+
+set(IOSTREAM_SRCS
+ @iostreamV3_SOURCE_DIR@/test.cc)
+
+if(ZLIB_IOSTREAM3_BUILD_SHARED)
+ add_executable(test_example ${IOSTREAM_SRCS})
+ target_link_libraries(test_example IOSTREAMV3::IOSTREAMV3)
+endif(ZLIB_IOSTREAM3_BUILD_SHARED)
+
+if(ZLIB_IOSTREAM3_BUILD_STATIC)
+ add_executable(test_example_static ${IOSTREAM_SRCS})
+ target_link_libraries(test_example_static IOSTREAMV3::IOSTREAMV3STATIC)
+endif(ZLIB_IOSTREAM3_BUILD_STATIC)
diff --git a/contrib/iostream3/test/add_subdirectory_test.cmake.in b/contrib/iostream3/test/add_subdirectory_test.cmake.in
new file mode 100644
index 0000000..5eed2cc
--- /dev/null
+++ b/contrib/iostream3/test/add_subdirectory_test.cmake.in
@@ -0,0 +1,25 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ iostream_add_subdirectory
+ LANGUAGES CXX
+ VERSION @iostreamV3_VERSION@)
+
+option(ZLIB_IOSTREAM3_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
+option(ZLIB_IOSTREAM3_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
+option(ZLIB_IOSTREAM3_BUILD_TESTING "" OFF)
+
+add_subdirectory(@iostreamV3_SOURCE_DIR@ ${CMAKE_CURRENT_BINARY_DIR}/iostream3)
+
+set(IOSTREAM_SRCS
+ @iostreamV3_SOURCE_DIR@/test.cc)
+
+if(ZLIB_IOSTREAM3_BUILD_SHARED)
+ add_executable(test_example ${IOSTREAM_SRCS})
+ target_link_libraries(test_example IOSTREAMV3::IOSTREAMV3)
+endif(ZLIB_IOSTREAM3_BUILD_SHARED)
+
+if(ZLIB_IOSTREAM3_BUILD_STATIC)
+ add_executable(test_example_static ${IOSTREAM_SRCS})
+ target_link_libraries(test_example_static IOSTREAMV3::IOSTREAMV3STATIC)
+endif(ZLIB_IOSTREAM3_BUILD_STATIC)
diff --git a/contrib/iostream3/test/find_package_no_components_test.cmake.in b/contrib/iostream3/test/find_package_no_components_test.cmake.in
new file mode 100644
index 0000000..4daf76e
--- /dev/null
+++ b/contrib/iostream3/test/find_package_no_components_test.cmake.in
@@ -0,0 +1,24 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ iostream_find_package_no_components
+ LANGUAGES CXX
+ VERSION @iostreamV3_VERSION@)
+
+option(ZLIB_IOSTREAM3_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
+option(ZLIB_IOSTREAM3_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
+
+find_package(iostreamv3 REQUIRED CONFIG)
+
+set(IOSTREAM_SRCS
+ @iostreamV3_SOURCE_DIR@/test.cc)
+
+if(ZLIB_IOSTREAM3_BUILD_SHARED)
+ add_executable(test_example ${IOSTREAM_SRCS})
+ target_link_libraries(test_example IOSTREAMV3::IOSTREAMV3)
+endif(ZLIB_IOSTREAM3_BUILD_SHARED)
+
+if(ZLIB_IOSTREAM3_BUILD_STATIC)
+ add_executable(test_example_static ${IOSTREAM_SRCS})
+ target_link_libraries(test_example_static IOSTREAMV3::IOSTREAMV3STATIC)
+endif(ZLIB_IOSTREAM3_BUILD_STATIC)
diff --git a/contrib/iostream3/test/find_package_test.cmake.in b/contrib/iostream3/test/find_package_test.cmake.in
new file mode 100644
index 0000000..08abe56
--- /dev/null
+++ b/contrib/iostream3/test/find_package_test.cmake.in
@@ -0,0 +1,24 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ iostream_find_package
+ LANGUAGES CXX
+ VERSION @iostreamV3_VERSION@)
+
+option(ZLIB_IOSTREAM_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
+option(ZLIB_IOSTREAM_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
+
+set(IOSTREAM_SRCS
+ @iostreamV3_SOURCE_DIR@/test.cc)
+
+if(ZLIB_IOSTREAM_BUILD_SHARED)
+ find_package(iostreamv3 REQUIRED COMPONENTS shared CONFIG)
+ add_executable(test_example ${IOSTREAM_SRCS})
+ target_link_libraries(test_example IOSTREAMV3::IOSTREAMV3)
+endif(ZLIB_IOSTREAM_BUILD_SHARED)
+
+if(ZLIB_IOSTREAM_BUILD_STATIC)
+ find_package(iostreamv3 REQUIRED COMPONENTS static CONFIG)
+ add_executable(test_example_static ${IOSTREAM_SRCS})
+ target_link_libraries(test_example_static IOSTREAMV3::IOSTREAMV3STATIC)
+endif(ZLIB_IOSTREAM_BUILD_STATIC)
diff --git a/contrib/iostream3/test/find_package_wrong_components_test.cmake.in b/contrib/iostream3/test/find_package_wrong_components_test.cmake.in
new file mode 100644
index 0000000..83435a8
--- /dev/null
+++ b/contrib/iostream3/test/find_package_wrong_components_test.cmake.in
@@ -0,0 +1,24 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ iostream_find_package
+ LANGUAGES CXX
+ VERSION @iostreamV3_VERSION@)
+
+option(ZLIB_IOSTREAM_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
+option(ZLIB_IOSTREAM_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
+
+find_package(iostreamv3 REQUIRED COMPONENTS wrongCONFIG)
+
+set(IOSTREAM_SRCS
+ @iostreamV3_SOURCE_DIR@/test.cc)
+
+if(ZLIB_IOSTREAM_BUILD_SHARED)
+ add_executable(test_example ${IOSTREAM_SRCS})
+ target_link_libraries(test_example IOSTREAMV3::IOSTREAMV3)
+endif(ZLIB_IOSTREAM_BUILD_SHARED)
+
+if(ZLIB_IOSTREAM_BUILD_STATIC)
+ add_executable(test_example_static ${PUFF_SRCS})
+ target_link_libraries(test_example_static IOSTREAMV3::IOSTREAMV3STATIC)
+endif(ZLIB_IOSTREAM_BUILD_STATIC)
diff --git a/contrib/puff/CMakeLists.txt b/contrib/puff/CMakeLists.txt
index ca95830..72a4c6d 100644
--- a/contrib/puff/CMakeLists.txt
+++ b/contrib/puff/CMakeLists.txt
@@ -59,6 +59,8 @@ if(ZLIB_PUFF_BUILD_TESTING)
endif(${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
endif(${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR
${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
+
+ add_subdirectory(test)
endif(ZLIB_PUFF_BUILD_TESTING)
if(ZLIB_PUFF_BUILD_SHARED)
diff --git a/contrib/puff/puffConfig.cmake.in b/contrib/puff/puffConfig.cmake.in
new file mode 100644
index 0000000..227f988
--- /dev/null
+++ b/contrib/puff/puffConfig.cmake.in
@@ -0,0 +1,18 @@
+@PACKAGE_INIT@
+
+set(_puff_supported_components "shared" "static")
+
+if(puff_FIND_COMPONENTS)
+ foreach(_comp ${puff_FIND_COMPONENTS})
+ if(NOT _comp IN_LIST _puff_supported_components)
+ set(puff_FOUND False)
+ set(puff_NOT_FOUND_MESSAGE "Unsupported component: ${_comp}")
+ endif(NOT _comp IN_LIST _puff_supported_components)
+
+ include("${CMAKE_CURRENT_LIST_DIR}/puff-${_comp}.cmake")
+ endforeach(_comp ${puff_FIND_COMPONENTS})
+else(puff_FIND_COMPONENTS)
+ foreach(_component_config IN LISTS _puff_supported_components)
+ include("${CMAKE_CURRENT_LIST_DIR}/puff-${_component_config}.cmake")
+ endforeach(_component_config IN LISTS _puff_supported_components)
+endif(puff_FIND_COMPONENTS)
diff --git a/contrib/puff/test/CMakeLists.txt b/contrib/puff/test/CMakeLists.txt
new file mode 100644
index 0000000..1ed39de
--- /dev/null
+++ b/contrib/puff/test/CMakeLists.txt
@@ -0,0 +1,191 @@
+# if we are built from with zlib, use this path's)
+if(DEFINED ZLIB_BUILD_SHARED)
+ set(WORK_DIR ${zlib_BINARY_DIR})
+ set(inst_setup zlib_puff_install)
+else(DEFINED ZLIB_BUILD_SHARED)
+ set(WORK_DIR ${puff_BINARY_DIR})
+ set(inst_setup zlib_puff_install)
+ set(ZLIB_ARG "-DZLIB_DIR=${ZLIB_DIR}")
+
+ add_test(
+ NAME zlib_puff_install
+ COMMAND ${CMAKE_COMMAND} --install ${puff_BINARY_DIR} --prefix
+ ${CMAKE_CURRENT_BINARY_DIR}/test_install --config $<CONFIG>
+ WORKING_DIRECTORY ${puff_BINARY_DIR})
+
+ set_tests_properties(zlib_puff_install
+ PROPERTIES
+ FIXTURES_SETUP zlib_puff_install)
+endif(DEFINED ZLIB_BUILD_SHARED)
+
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test)
+
+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}/add_subdirectory_test.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test/CMakeLists.txt @ONLY)
+
+configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_exclude_test.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_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)
+
+# CMAKE_GENERATOR_PLATFORM doesn't work in the if
+set(GENERATOR ${CMAKE_GENERATOR_PLATFORM})
+
+if(GENERATOR)
+ set(PLATFORM "-A ${GENERATOR}")
+endif(GENERATOR)
+
+#
+# findpackage_test
+#
+add_test(
+ NAME zlib_puff_find_package_configure
+ COMMAND
+ ${CMAKE_COMMAND}
+ ${PLATFORM}
+ -B${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build
+ -DCMAKE_BUILD_TYPE=$<CONFIG>
+ -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+ -DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install
+ ${ZLIB_ARG}
+ --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
+
+add_test(
+ NAME zlib_puff_find_package_build
+ COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build)
+
+set_tests_properties(zlib_puff_find_package_configure
+ PROPERTIES
+ FIXTURES_REQUIRED ${inst_setup}
+ FIXTURES_SETUP puff_fp_config)
+
+set_tests_properties(zlib_puff_find_package_build
+ PROPERTIES
+ FIXTURES_REQUIRED puff_fp_config)
+
+#
+# add_subdirectory_test
+#
+add_test(
+ NAME zlib_puff_add_subdirectory_configure
+ COMMAND
+ ${CMAKE_COMMAND} ${PLATFORM}
+ -B${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build
+ -DCMAKE_BUILD_TYPE=$<CONFIG>
+ -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+ -DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
+ --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test)
+
+add_test(
+ NAME zlib_puff_add_subdirectory_build
+ COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build)
+
+set_tests_properties(zlib_puff_add_subdirectory_configure
+ PROPERTIES
+ FIXTURES_REQUIRED ${inst_setup}
+ FIXTURES_SETUP puiff_as_config)
+
+set_tests_properties(zlib_puff_add_subdirectory_build
+ PROPERTIES
+ FIXTURES_REQUIRED puff_as_config)
+
+#
+# add_subdirectory_exclude_test
+#
+add_test(
+ NAME zlib_puff_add_subdirectory_exclude_configure
+ COMMAND
+ ${CMAKE_COMMAND} ${PLATFORM}
+ -B${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build
+ -DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+ -DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
+ --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test)
+
+add_test(
+ NAME zlib_puff_add_subdirectory_exclude_build
+ COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
+ WORKING_DIRECTORY
+ ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build)
+
+set_tests_properties(zlib_puff_add_subdirectory_exclude_configure
+ PROPERTIES
+ FIXTURES_REQUIRED ${inst_setup}
+ FIXTURES_SETUP puff_asx_config)
+
+set_tests_properties(zlib_puff_add_subdirectory_exclude_build
+ PROPERTIES
+ FIXTURES_REQUIRED puff_asx_config)
+
+#
+# findpackage_no_components_test
+#
+add_test(
+ NAME zlib_puff_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=${WORK_DIR}/test/test_install ${ZLIB_ARG}
+ --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test)
+
+set_tests_properties(
+ zlib_puff_find_package_no_components_configure
+ PROPERTIES
+ FIXTURES_REQUIRED ${inst_setup})
+
+if(NOT ZLIB_PUFF_BUILD_SHARED OR NOT ZLIB_PUFF_BUILD_STATIC)
+ set_tests_properties(zlib_puff_find_package_no_components_configure
+ PROPERTIES
+ WILL_FAIL TRUE)
+endif(NOT ZLIB_PUFF_BUILD_SHARED OR NOT ZLIB_PUFF_BUILD_STATIC)
+
+#
+# findpackage_no_components_test
+#
+add_test(
+ NAME zlib_puff_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=${WORK_DIR}/test/test_install ${ZLIB_ARG}
+ --fresh
+ -G "${CMAKE_GENERATOR}"
+ -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test)
+
+set_tests_properties(zlib_puff_find_package_wrong_components_configure
+ PROPERTIES
+ FIXTURES_REQUIRED ${inst_setup}
+ WILL_FAIL TRUE)
diff --git a/contrib/puff/test/add_subdirectory_exclude_test.cmake.in b/contrib/puff/test/add_subdirectory_exclude_test.cmake.in
new file mode 100644
index 0000000..0e24c01
--- /dev/null
+++ b/contrib/puff/test/add_subdirectory_exclude_test.cmake.in
@@ -0,0 +1,26 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ zlib_puff_add_subdirectory_exclude_from_all
+ LANGUAGES C
+ VERSION @puff_VERSION@)
+
+option(ZLIB_PUFF_BUILD_TESTING "" OFF)
+option(ZLIB_PUFF_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
+option(ZLIB_PUFF_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
+
+add_subdirectory(@puff_SOURCE_DIR@ ${CMAKE_CURRENT_BINARY_DIR}/puff
+ EXCLUDE_FROM_ALL)
+
+set(PUFF_SRCS
+ @puff_SOURCE_DIR@/pufftest.c)
+
+if(ZLIB_PUFF_BUILD_SHARED)
+ add_executable(test_example ${PUFF_SRCS})
+ target_link_libraries(test_example PUFF::PUFF)
+endif(ZLIB_PUFF_BUILD_SHARED)
+
+if(ZLIB_PUFF_BUILD_STATIC)
+ add_executable(test_example_static ${PUFF_SRCS})
+ target_link_libraries(test_example_static PUFF::PUFFSTATIC)
+endif(ZLIB_PUFF_BUILD_STATIC)
diff --git a/contrib/puff/test/add_subdirectory_test.cmake.in b/contrib/puff/test/add_subdirectory_test.cmake.in
new file mode 100644
index 0000000..8e7e47b
--- /dev/null
+++ b/contrib/puff/test/add_subdirectory_test.cmake.in
@@ -0,0 +1,25 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ zlib_puff_add_subdirectory
+ LANGUAGES C
+ VERSION @puff_VERSION@)
+
+option(ZLIB_PUFF_BUILD_TESTING "" OFF)
+option(ZLIB_PUFF_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
+option(ZLIB_PUFF_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
+
+add_subdirectory(@puff_SOURCE_DIR@ ${CMAKE_CURRENT_BINARY_DIR}/puff)
+
+set(PUFF_SRCS
+ @puff_SOURCE_DIR@/pufftest.c)
+
+if(ZLIB_PUFF_BUILD_SHARED)
+ add_executable(test_example ${PUFF_SRCS})
+ target_link_libraries(test_example PUFF::PUFF)
+endif(ZLIB_PUFF_BUILD_SHARED)
+
+if(ZLIB_PUFF_BUILD_STATIC)
+ add_executable(test_example_static ${PUFF_SRCS})
+ target_link_libraries(test_example_static PUFF::PUFFSTATIC)
+endif(ZLIB_PUFF_BUILD_STATIC)
diff --git a/contrib/puff/test/find_package_no_components_test.cmake.in b/contrib/puff/test/find_package_no_components_test.cmake.in
new file mode 100644
index 0000000..2040bfd
--- /dev/null
+++ b/contrib/puff/test/find_package_no_components_test.cmake.in
@@ -0,0 +1,24 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ puff_find_package
+ LANGUAGES C
+ VERSION @puff_VERSION@)
+
+option(ZLIB_PUFF_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
+option(ZLIB_PUFF_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
+
+find_package(puff REQUIRED CONFIG)
+
+set(PUFF_SRCS
+ @puff_SOURCE_DIR@/pufftest.c)
+
+if(ZLIB_PUFF_BUILD_SHARED)
+ add_executable(test_example ${PUFF_SRCS})
+ target_link_libraries(test_example PUFF::PUFF)
+endif(ZLIB_PUFF_BUILD_SHARED)
+
+if(ZLIB_PUFF_BUILD_STATIC)
+ add_executable(test_example_static ${PUFF_SRCS})
+ target_link_libraries(test_example_static PUFF::PUFFSTATIC)
+endif(ZLIB_PUFF_BUILD_STATIC)
diff --git a/contrib/puff/test/find_package_test.cmake.in b/contrib/puff/test/find_package_test.cmake.in
new file mode 100644
index 0000000..e8a0cef
--- /dev/null
+++ b/contrib/puff/test/find_package_test.cmake.in
@@ -0,0 +1,24 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ puff_find_package
+ LANGUAGES C
+ VERSION @puff_VERSION@)
+
+option(ZLIB_PUFF_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
+option(ZLIB_PUFF_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
+
+set(PUFF_SRCS
+ @puff_SOURCE_DIR@/pufftest.c)
+
+if(ZLIB_PUFF_BUILD_SHARED)
+ find_package(puff REQUIRED COMPONENTS shared CONFIG)
+ add_executable(test_example ${PUFF_SRCS})
+ target_link_libraries(test_example PUFF::PUFF)
+endif(ZLIB_PUFF_BUILD_SHARED)
+
+if(ZLIB_PUFF_BUILD_STATIC)
+ find_package(puff REQUIRED COMPONENTS static CONFIG)
+ add_executable(test_example_static ${PUFF_SRCS})
+ target_link_libraries(test_example_static PUFF::PUFFSTATIC)
+endif(ZLIB_PUFF_BUILD_STATIC)
diff --git a/contrib/puff/test/find_package_wrong_components_test.cmake.in b/contrib/puff/test/find_package_wrong_components_test.cmake.in
new file mode 100644
index 0000000..a5cd497
--- /dev/null
+++ b/contrib/puff/test/find_package_wrong_components_test.cmake.in
@@ -0,0 +1,24 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ puff_find_package
+ LANGUAGES C
+ VERSION @puff_VERSION@)
+
+option(ZLIB_PUFF_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
+option(ZLIB_PUFF_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
+
+find_package(puff REQUIRED COMPONENTS wrong CONFIG)
+
+set(PUFF_SRCS
+ @puff_SOURCE_DIR@/pufftest.c)
+
+if(ZLIB_PUFF_BUILD_SHARED)
+ add_executable(test_example ${PUFF_SRCS})
+ target_link_libraries(test_example PUFF::PUFF)
+endif(ZLIB_PUFF_BUILD_SHARED)
+
+if(ZLIB_PUFF_BUILD_STATIC)
+ add_executable(test_example_static ${PUFF_SRCS})
+ target_link_libraries(test_example_static PUFF::PUFFSTATIC)
+endif(ZLIB_PUFF_BUILD_STATIC)