mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-09 09:54:25 +09:00
cmake: Build ssh_server_fuzzer if enabled
Fixes T67 Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
@@ -14,7 +14,8 @@ option(WITH_TESTING "Build with unit tests" OFF)
|
|||||||
option(WITH_CLIENT_TESTING "Build with client tests; requires a running sshd" OFF)
|
option(WITH_CLIENT_TESTING "Build with client tests; requires a running sshd" OFF)
|
||||||
option(WITH_BENCHMARKS "Build benchmarks tools" OFF)
|
option(WITH_BENCHMARKS "Build benchmarks tools" OFF)
|
||||||
option(WITH_EXAMPLES "Build examples" ON)
|
option(WITH_EXAMPLES "Build examples" ON)
|
||||||
option(WITH_NACL "Build with libnacl (curve25519" ON)
|
option(WITH_NACL "Build with libnacl (curve25519)" ON)
|
||||||
|
option(FUZZ_TESTING "Build with fuzzer for the server" OFF)
|
||||||
if (WITH_ZLIB)
|
if (WITH_ZLIB)
|
||||||
set(WITH_LIBZ ON)
|
set(WITH_LIBZ ON)
|
||||||
else (WITH_ZLIB)
|
else (WITH_ZLIB)
|
||||||
@@ -31,4 +32,4 @@ endif (WITH_TESTING)
|
|||||||
|
|
||||||
if (WITH_NACL)
|
if (WITH_NACL)
|
||||||
set(WITH_NACL ON)
|
set(WITH_NACL ON)
|
||||||
endif (WITH_NACL)
|
endif (WITH_NACL)
|
||||||
|
|||||||
32
cmake/Modules/FindClangFuzzer.cmake
Normal file
32
cmake/Modules/FindClangFuzzer.cmake
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# - Try to find Fuzzer
|
||||||
|
# Once done this will define
|
||||||
|
#
|
||||||
|
# CLANG_FUZZER_FOUND - system has Fuzzer
|
||||||
|
# CLANG_FUZZER_LIBRARY - Link these to use Fuzzer
|
||||||
|
#
|
||||||
|
#=============================================================================
|
||||||
|
# Copyright (c) 2018 Andreas Schneider <asn@cryptomilk.org>
|
||||||
|
#
|
||||||
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
|
#=============================================================================
|
||||||
|
#
|
||||||
|
|
||||||
|
find_package(Clang REQUIRED CONFIG)
|
||||||
|
|
||||||
|
find_library(CLANG_FUZZER_LIBRARY
|
||||||
|
NAMES
|
||||||
|
Fuzzer
|
||||||
|
HINTS
|
||||||
|
${LLVM_LIBRARY_DIR}/clang/${LLVM_PACKAGE_VERSION}/lib
|
||||||
|
)
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(Fuzzer DEFAULT_MSG CLANG_FUZZER_LIBRARY)
|
||||||
|
|
||||||
|
# show the CLANG_FUZZER_LIBRARY variables only in the advanced view
|
||||||
|
mark_as_advanced(CLANG_FUZZER_LIBRARY)
|
||||||
@@ -138,3 +138,7 @@ endif (WITH_BENCHMARKS)
|
|||||||
if (WITH_SERVER)
|
if (WITH_SERVER)
|
||||||
add_subdirectory(pkd)
|
add_subdirectory(pkd)
|
||||||
endif (WITH_SERVER)
|
endif (WITH_SERVER)
|
||||||
|
|
||||||
|
if (FUZZ_TESTING)
|
||||||
|
add_subdirectory(fuzz)
|
||||||
|
endif()
|
||||||
|
|||||||
9
tests/fuzz/CMakeLists.txt
Normal file
9
tests/fuzz/CMakeLists.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
project(fuzzing CXX)
|
||||||
|
|
||||||
|
find_package(ClangFuzzer)
|
||||||
|
|
||||||
|
add_executable(ssh_server_fuzzer ssh_server_fuzzer.cpp)
|
||||||
|
target_link_libraries(ssh_server_fuzzer
|
||||||
|
${CLANG_FUZZER_LIBRARY}
|
||||||
|
${LIBSSH_THREADS_STATIC_LIBRARY}
|
||||||
|
${LIBSSH_THREADS_LINK_LIBRARIES})
|
||||||
Reference in New Issue
Block a user