]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Move fuzzer cmake into fuzz directory.
authorNathan Moinvaziri <nathan@nathanm.com>
Sat, 2 Apr 2022 22:31:22 +0000 (15:31 -0700)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Mon, 4 Apr 2022 07:25:28 +0000 (09:25 +0200)
CMakeLists.txt
test/fuzz/CMakeLists.txt [new file with mode: 0644]

index 13850528d6383be4cefd15234663cf15c83c43b9..6c8d867946d76c043527c45488c1d0e760c505fe 100644 (file)
@@ -1252,33 +1252,7 @@ if(ZLIB_ENABLE_TESTS)
         -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)
diff --git a/test/fuzz/CMakeLists.txt b/test/fuzz/CMakeLists.txt
new file mode 100644 (file)
index 0000000..c21f9c1
--- /dev/null
@@ -0,0 +1,44 @@
+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()