-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-compare.cmake)
if(WITH_FUZZERS)
- if(CMAKE_C_COMPILER_ID MATCHES "Clang")
- enable_language(CXX)
-
- if(DEFINED ENV{LIB_FUZZING_ENGINE})
- set(FUZZING_ENGINE $ENV{LIB_FUZZING_ENGINE})
- set(FUZZING_ENGINE_FOUND ON)
- else()
- find_library(FUZZING_ENGINE "FuzzingEngine")
- endif()
- endif()
-
- set(FUZZERS checksum compress example_small example_large example_flush example_dict minigzip)
- file(GLOB ALL_SRC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*")
- foreach(FUZZER ${FUZZERS})
- set(FUZZER_SRCS test/fuzz/fuzzer_${FUZZER}.c)
- if(NOT FUZZING_ENGINE_FOUND)
- list(APPEND FUZZER_SRCS test/fuzz/standalone_fuzz_target_runner.c)
- endif()
- add_executable(fuzzer_${FUZZER} ${FUZZER_SRCS})
- configure_test_executable(fuzzer_${FUZZER})
- target_link_libraries(fuzzer_${FUZZER} zlib)
- if(FUZZING_ENGINE_FOUND)
- target_link_libraries(fuzzer_${FUZZER} ${FUZZING_ENGINE})
- endif()
- set(FUZZER_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:fuzzer_${FUZZER}> ${ALL_SRC_FILES})
- add_test(NAME fuzzer_${FUZZER} COMMAND ${FUZZER_COMMAND})
- endforeach()
+ add_subdirectory(test/fuzz)
endif()
macro(test_minigzip name path)
--- /dev/null
+cmake_minimum_required(VERSION 3.5.1)
+
+if(CMAKE_C_COMPILER_ID MATCHES "Clang")
+ enable_language(CXX)
+
+ if(DEFINED ENV{LIB_FUZZING_ENGINE})
+ set(FUZZING_ENGINE $ENV{LIB_FUZZING_ENGINE})
+ set(FUZZING_ENGINE_FOUND ON)
+ else()
+ find_library(FUZZING_ENGINE "FuzzingEngine")
+ endif()
+endif()
+
+set(FUZZERS
+ fuzzer_checksum
+ fuzzer_compress
+ fuzzer_example_small
+ fuzzer_example_large
+ fuzzer_example_flush
+ fuzzer_example_dict
+ )
+
+if(WITH_GZFILEOP)
+ list(APPEND FUZZERS fuzzer_minigzip)
+endif()
+
+foreach(FUZZER ${FUZZERS})
+ add_executable(${FUZZER} ${FUZZER}.c)
+
+ if(NOT FUZZING_ENGINE_FOUND)
+ target_sources(${FUZZER} PRIVATE standalone_fuzz_target_runner.c)
+ endif()
+
+ target_link_libraries(${FUZZER} zlibstatic)
+ if(FUZZING_ENGINE_FOUND)
+ target_link_libraries(${FUZZER} ${FUZZING_ENGINE})
+ endif()
+
+ if(ZLIB_ENABLE_TESTS)
+ file(GLOB FUZZER_TEST_FILES ${CMAKE_SOURCE_DIR}/*)
+ set(FUZZER_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:${FUZZER}> ${FUZZER_TEST_FILES})
+ add_test(NAME ${FUZZER} COMMAND ${FUZZER_COMMAND})
+ endif()
+endforeach()