diff options
| author | cashmere <cashmere@autistici.org> | 2026-09-04 09:05:24 +0200 |
|---|---|---|
| committer | cashmere <cashmere@autistici.org> | 2026-09-04 09:05:24 +0200 |
| commit | 4f49b16079b27d7ce633619e4cddfdf2bffbc952 (patch) | |
| tree | c296c1e7f3c3e2f6859c6d3a1b1b208779b89679 /compat/zlib/test/CMakeLists.txt | |
| download | relic-4f49b16079b27d7ce633619e4cddfdf2bffbc952.tar.gz | |
Diffstat (limited to 'compat/zlib/test/CMakeLists.txt')
| -rw-r--r-- | compat/zlib/test/CMakeLists.txt | 318 |
1 files changed, 318 insertions, 0 deletions
diff --git a/compat/zlib/test/CMakeLists.txt b/compat/zlib/test/CMakeLists.txt new file mode 100644 index 0000000..61da30d --- /dev/null +++ b/compat/zlib/test/CMakeLists.txt @@ -0,0 +1,318 @@ +function(ZLIB_findTestEnv testName) + set(testEnv "PATH=") + + if(MSVC OR MINGW) + set(separator "\\\;") + else() + set(separator ":") + endif() + + string(APPEND testEnv "$<TARGET_FILE_DIR:ZLIB::ZLIB>${separator}") + string(APPEND testEnv "$ENV{PATH}") + + set_tests_properties(${testName} PROPERTIES ENVIRONMENT "${testEnv}") +endfunction() + +if(ZLIB_BUILD_SHARED) + add_executable(zlib_example example.c) + target_link_libraries(zlib_example ZLIB::ZLIB) + target_compile_definitions(zlib_example PRIVATE ZLIB_BUILD) + add_test(NAME zlib_example COMMAND zlib_example) + + add_executable(minigzip minigzip.c) + target_compile_definitions( + minigzip PRIVATE $<$<BOOL:${HAVE___ATTR__VIS_HIDDEN}>:HAVE_HIDDEN>) + target_link_libraries(minigzip ZLIB::ZLIB) + + if(MSVC + OR MSYS + OR MINGW + OR CYGWIN) + zlib_findtestenv(zlib_example) + endif( + MSVC + OR MSYS + OR MINGW + OR CYGWIN) + + if(HAVE_OFF64_T) + add_executable(zlib_example64 example.c) + target_compile_definitions( + zlib_example64 + PRIVATE ZLIB_BUILD + $<$<BOOL:${HAVE___ATTR__VIS_HIDDEN}>:HAVE_HIDDEN>) + target_link_libraries(zlib_example64 ZLIB::ZLIB) + add_test(NAME zlib_example64 COMMAND zlib_example64) + + if(MSVC + OR MSYS + OR MINGW + OR CYGWIN) + zlib_findtestenv(zlib_example64) + endif( + MSVC + OR MSYS + OR MINGW + OR CYGWIN) + endif(HAVE_OFF64_T) +endif(ZLIB_BUILD_SHARED) + +if(ZLIB_BUILD_STATIC) + add_executable(zlib_static_example example.c) + target_link_libraries(zlib_static_example ZLIB::ZLIBSTATIC) + target_compile_definitions( + zlib_static_example + PRIVATE ZLIB_BUILD + $<$<BOOL:${HAVE___ATTR__VIS_HIDDEN}>:HAVE_HIDDEN>) + add_test(NAME zlib_static_example COMMAND zlib_static_example) + + add_executable(static_minigzip minigzip.c) + target_link_libraries(static_minigzip ZLIB::ZLIBSTATIC) + + if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL + "Clang") + set(CFLAGS_OLD ${CMAKE_C_FLAGS}) + set(CMAKE_C_FLAGS + "" + CACHE STRING "" FORCE) + + if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU") + find_program(GCOV_EXECUTABLE gcov) + endif(${CMAKE_C_COMPILER_ID} STREQUAL "GNU") + + if(${CMAKE_C_COMPILER_ID} STREQUAL "Clang") + set(llvm_names llvm_cov) + list(APPEND llvm_names llvm-cov) + + foreach(ver RANGE 11 99) + list(APPEND llvm_names llvm-cov-${ver}) + endforeach(ver RANGE 11 99) + + find_program(GCOV_EXECUTABLE NAMES ${llvm_names}) + set(llvm_option "gcov") + endif(${CMAKE_C_COMPILER_ID} STREQUAL "Clang") + + add_executable(infcover infcover.c) + target_link_libraries(infcover ZLIB::ZLIBSTATIC) + target_compile_options(infcover PRIVATE -coverage) + target_link_options(infcover PRIVATE -coverage) + target_compile_definitions( + infcover PRIVATE $<$<BOOL:${HAVE___ATTR__VIS_HIDDEN}>:HAVE_HIDDEN>) + add_test(NAME zlib_coverage COMMAND infcover) + set(INFCOVER_DIR ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/infcover.dir) + add_test( + NAME zlib_coverage-summary + COMMAND + ${GCOV_EXECUTABLE} ${llvm_option} + ${CMAKE_CURRENT_SOURCE_DIR}/infcover.c -o + ${INFCOVER_DIR}/infcover.c.gcda) + set_tests_properties(zlib_coverage-summary PROPERTIES DEPENDS + zlib-coverage) + set(CMAKE_C_FLAGS + ${CFLAGS_OLD} + CACHE STRING "" FORCE) + endif(${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} + STREQUAL "Clang") + + if(HAVE_OFF64_T) + add_executable(zlib_static_example64 example.c) + target_compile_definitions( + zlib_static_example64 + PRIVATE ZLIB_BUILD + $<$<BOOL:${HAVE___ATTR__VIS_HIDDEN}>:HAVE_HIDDEN>) + target_link_libraries(zlib_static_example64 ZLIB::ZLIBSTATIC) + add_test(NAME zlib_static_example64 COMMAND zlib_static_example64) + endif(HAVE_OFF64_T) +endif(ZLIB_BUILD_STATIC) + +add_test( + NAME zlib_install + COMMAND ${CMAKE_COMMAND} --install ${zlib_BINARY_DIR} --prefix + ${CMAKE_CURRENT_BINARY_DIR}/test_install --config $<CONFIG> + WORKING_DIRECTORY ${zlib_BINARY_DIR}) + +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) + +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) + +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_exclude_test.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_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_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=${CMAKE_CURRENT_BINARY_DIR}/test_install --fresh + -G "${CMAKE_GENERATOR}" -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_test) + +add_test( + NAME zlib_find_package_build + COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG> + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build) + +add_test( + NAME zlib_find_package_test + COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIG> + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build) + +set_tests_properties( + zlib_find_package_configure PROPERTIES FIXTURES_REQUIRED zlib_install + FIXTURES_SETUP fp_config) + +set_tests_properties( + zlib_find_package_build PROPERTIES FIXTURES_REQUIRED fp_config + FIXTURES_SETUP fp_build) + +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 +# +add_test( + NAME zlib_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=${CMAKE_CURRENT_BINARY_DIR}/test_install --fresh + -G "${CMAKE_GENERATOR}" -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_test) + +add_test( + NAME zlib_add_subdirectory_build + COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG> + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build) + +add_test( + NAME zlib_add_subdirectory_test + COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIG> + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build) + +set_tests_properties( + zlib_add_subdirectory_configure PROPERTIES FIXTURES_REQUIRED zlib_install + FIXTURES_SETUP as_config) + +set_tests_properties( + zlib_add_subdirectory_build PROPERTIES FIXTURES_REQUIRED as_config + FIXTURES_SETUP as_build) + +set_tests_properties( + zlib_add_subdirectory_test PROPERTIES FIXTURES_REQUIRED as_build + ENVIRONMENT CTEST_OUTPUT_ON_FAILURE=1) + +# +# add_subdirectory_exclude_test +# +add_test( + NAME zlib_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=${CMAKE_CURRENT_BINARY_DIR}/test_install --fresh + -G "${CMAKE_GENERATOR}" -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_test) + +add_test( + NAME zlib_add_subdirectory_exclude_build + COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG> + WORKING_DIRECTORY + ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build) + +add_test( + NAME zlib_add_subdirectory_exclude_test + COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIG> + WORKING_DIRECTORY + ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build) + +set_tests_properties( + zlib_add_subdirectory_exclude_configure + PROPERTIES FIXTURES_REQUIRED zlib_install FIXTURES_SETUP asx_config) + +set_tests_properties( + zlib_add_subdirectory_exclude_build PROPERTIES FIXTURES_REQUIRED as_config + FIXTURES_SETUP asx_build) + +set_tests_properties( + zlib_add_subdirectory_exclude_test + PROPERTIES FIXTURES_REQUIRED asx_build ENVIRONMENT + CTEST_OUTPUT_ON_FAILURE=1) |
