diff options
author | Ilya Leoshkevich <iii@linux.ibm.com> | 2021-03-18 14:08:20 +0100 |
---|---|---|
committer | Hans Kristian Rosbach <hk-github@circlestorm.org> | 2021-03-18 22:51:03 +0100 |
commit | 9b2baa8217c31e869c0ba53bbb458cd3ef040d00 (patch) | |
tree | db0eb8f554afb0f8d22a37eff71c93f6418d9d7c | |
parent | 9f7b4b1e10b94b4048ccfef0e7e67b11c9245b92 (diff) |
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.
-rw-r--r-- | CMakeLists.txt | 46 |
1 files changed, 13 insertions, 33 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index e365c03..7b43268 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} $<TARGET_FILE:adler32_test>) - 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} $<TARGET_FILE:${target}>) + endmacro() - set(EXAMPLE_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:example>) - add_test(NAME example COMMAND ${EXAMPLE_COMMAND}) + add_simple_test_executable(adler32_test) + add_simple_test_executable(example) set(MINIGZIP_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:minigzip>) 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} $<TARGET_FILE:CVE-2003-0107>) - add_test(NAME CVE-2003-0107 COMMAND ${CVE20030107_COMMAND}) + add_simple_test_executable(CVE-2003-0107) endif() - set(INFCOVER_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:infcover>) - 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} $<TARGET_FILE:deflate_quick_bi_valid>) - 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} $<TARGET_FILE:deflate_quick_block_open>) - 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) |