From: Ilya Leoshkevich Date: Thu, 18 Mar 2021 13:08:20 +0000 (+0100) Subject: Add a CMake macro for simple test executables X-Git-Tag: 2.0.2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b2baa8217c31e869c0ba53bbb458cd3ef040d00;p=thirdparty%2Fzlib-ng.git Add a CMake macro for simple test executables 6 tests use the same pattern: build a binary linked with zlib-ng and run it. At the moment this requires 5 near-identical lines of CMake code, leading to proliferation of copy-paste. Introduce a macro to get rid of it. --- diff --git a/CMakeLists.txt b/CMakeLists.txt index e365c03d9..7b43268ba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1019,19 +1019,15 @@ if(ZLIB_ENABLE_TESTS) endif() endmacro() - add_executable(adler32_test test/adler32_test.c) - configure_test_executable(adler32_test) - target_link_libraries(adler32_test zlib) - - set(ADLER32TEST_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $) - add_test(NAME adler32_test COMMAND ${ADLER32TEST_COMMAND}) - - add_executable(example test/example.c) - configure_test_executable(example) - target_link_libraries(example zlib) + macro(add_simple_test_executable target) + add_executable(${target} test/${target}.c) + configure_test_executable(${target}) + target_link_libraries(${target} zlib) + add_test(NAME ${target} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $) + endmacro() - set(EXAMPLE_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $) - add_test(NAME example COMMAND ${EXAMPLE_COMMAND}) + add_simple_test_executable(adler32_test) + add_simple_test_executable(example) set(MINIGZIP_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $) add_executable(minigzip test/minigzip.c) @@ -1064,9 +1060,8 @@ if(ZLIB_ENABLE_TESTS) configure_test_executable(switchlevels) target_link_libraries(switchlevels zlib) - add_executable(infcover test/infcover.c inftrees.c) - configure_test_executable(infcover) - target_link_libraries(infcover zlib) + add_simple_test_executable(infcover) + target_sources(infcover PRIVATE inftrees.c) add_executable(makefixed tools/makefixed.c inftrees.c) target_include_directories(makefixed PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) @@ -1201,15 +1196,9 @@ if(ZLIB_ENABLE_TESTS) include(cmake/test-tools.cmake) if(NOT WIN32 AND ZLIB_COMPAT) - add_executable(CVE-2003-0107 test/CVE-2003-0107.c) - target_link_libraries(CVE-2003-0107 zlib) - set(CVE20030107_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $) - add_test(NAME CVE-2003-0107 COMMAND ${CVE20030107_COMMAND}) + add_simple_test_executable(CVE-2003-0107) endif() - set(INFCOVER_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $) - add_test(NAME infcover COMMAND ${INFCOVER_COMMAND}) - add_test(NAME GH-361 COMMAND ${CMAKE_COMMAND} "-DTARGET=${MINIGZIP_COMMAND}" @@ -1270,17 +1259,8 @@ if(ZLIB_ENABLE_TESTS) -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/test/GH-751/test.txt -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/test-compress.cmake) - add_executable(deflate_quick_bi_valid test/deflate_quick_bi_valid.c) - configure_test_executable(deflate_quick_bi_valid) - target_link_libraries(deflate_quick_bi_valid zlib) - set(DEFLATE_QUICK_BI_VALID_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $) - add_test(NAME deflate_quick_bi_valid COMMAND ${DEFLATE_QUICK_BI_VALID_COMMAND}) - - add_executable(deflate_quick_block_open test/deflate_quick_block_open.c) - configure_test_executable(deflate_quick_block_open) - target_link_libraries(deflate_quick_block_open zlib) - set(DEFLATE_QUICK_BLOCK_OPEN_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $) - add_test(NAME deflate_quick_block_open COMMAND ${DEFLATE_QUICK_BLOCK_OPEN_COMMAND}) + add_simple_test_executable(deflate_quick_bi_valid) + add_simple_test_executable(deflate_quick_block_open) endif() FEATURE_SUMMARY(WHAT ALL INCLUDE_QUIET_PACKAGES)