File: CMakeLists.txt

package info (click to toggle)
libyang 4.3.4-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 10,788 kB
  • sloc: ansic: 127,487; xml: 671; sh: 442; tcl: 318; makefile: 19
file content (28 lines) | stat: -rw-r--r-- 1,553 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
if(ENABLE_FUZZ_TARGETS)
    set(fuzz_targets lys_parse_mem lyd_parse_mem_xml lyd_parse_mem_json yang_parse_module)

    if(FUZZER STREQUAL "AFL")
        foreach(target_name IN LISTS fuzz_targets)
            add_executable(${target_name}_fuzz_harness ${target_name}.c main.c)
            target_link_libraries(${target_name}_fuzz_harness yang)
        endforeach()
    elseif()
        foreach(target_name IN LISTS fuzz_targets)
            add_executable(${target_name}_fuzz_harness ${target_name}.c)
            set_source_files_properties(${target_name}.c PROPERTIES COMPILE_FLAGS "-fsanitize=fuzzer")
            target_link_libraries(${target_name}_fuzz_harness yang "-fsanitize=fuzzer")
        endforeach()
    endif()
endif()

if(ENABLE_TESTS)
    add_executable(fuzz_regression_test fuzz_regression_test.c)
    set(fuzz_regression_tests lys_parse_mem lyd_parse_mem_xml lyd_parse_mem_json)
    foreach(target_name IN LISTS fuzz_regression_tests)
        file(COPY ${CMAKE_SOURCE_DIR}/tests/fuzz/corpus/${target_name} DESTINATION ${CMAKE_BINARY_DIR}/tests/fuzz/)
        add_executable(regress_fuzz_${target_name} ${target_name}.c main.c)
        set_target_properties(regress_fuzz_${target_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/tests/fuzz/${target_name}")
        target_link_libraries(regress_fuzz_${target_name} yang)
        add_test(NAME regress_fuzz_${target_name} COMMAND fuzz_regression_test regress_fuzz_${target_name} . WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tests/fuzz/${target_name})
    endforeach()
endif()