1
1

cmake: Build ssh_server_fuzzer if enabled

Fixes T67

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Этот коммит содержится в:
Andreas Schneider 2018-02-04 11:49:13 +01:00
родитель d84b0926f0
Коммит 25ff1214a4
4 изменённых файлов: 48 добавлений и 2 удалений

Просмотреть файл

@ -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_BENCHMARKS "Build benchmarks tools" OFF)
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)
set(WITH_LIBZ ON)
else (WITH_ZLIB)

32
cmake/Modules/FindClangFuzzer.cmake Обычный файл
Просмотреть файл

@ -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)
add_subdirectory(pkd)
endif (WITH_SERVER)
if (FUZZ_TESTING)
add_subdirectory(fuzz)
endif()

9
tests/fuzz/CMakeLists.txt Обычный файл
Просмотреть файл

@ -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})