Drop Windows support from libFuzzer tests.

Differential Revision: https://reviews.llvm.org/D36205

llvm-svn: 310076
This commit is contained in:
George Karpenkov 2017-08-04 17:43:28 +00:00
parent 8ecdd7be15
commit a5de052362
9 changed files with 5 additions and 55 deletions

View File

@ -1,26 +1,5 @@
if(MSVC)
# For tests use the CRT specified for release build
# (asan doesn't support MDd and MTd)
if ("${LLVM_USE_CRT_RELEASE}" STREQUAL "")
set(CRT_FLAG " /MD ")
else()
set(CRT_FLAG " /${LLVM_USE_CRT_RELEASE} ")
endif()
# In order to use the sanitizers in Windows, we need to link against many
# runtime libraries which will depend on the target being created
# (executable or dll) and the c runtime library used (MT/MD).
# By default, cmake uses link.exe for linking, which fails because we don't
# specify the appropiate dependencies.
# As we don't want to consider all of that possible situations which depends
# on the implementation of the compiler-rt, the simplest option is to change
# the rules for linking executables and shared libraries, using the compiler
# instead of link.exe. Clang will consider the sanitizer flags, and
# automatically provide the required libraries to the linker.
set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> <FLAGS> ${CMAKE_CXX_FLAGS} ${CRT_FLAG} <OBJECTS> -o <TARGET> <LINK_LIBRARIES> /link <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS>")
set(CMAKE_CXX_CREATE_SHARED_LIBRARY "<CMAKE_CXX_COMPILER> ${CMAKE_CXX_FLAGS} ${CRT_FLAG} /LD <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG> <TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES> /link <LINK_FLAGS>")
endif()
if(APPLE OR MSVC)
if(APPLE)
# LeakSanitizer is not supported on OSX and Windows right now
set(HAS_LSAN 0)
message(WARNING "LeakSanitizer is not supported."
@ -62,20 +41,11 @@ include_directories(..)
# Note this is done after declaring all tests so we can inform lit if any tests
# need to be disabled.
###############################################################################
set(LIBFUZZER_POSIX 1)
if (MSVC)
set(LIBFUZZER_POSIX 0)
endif()
# Use just-built Clang to compile/link tests on all platforms, except for
# Windows where we need to use clang-cl instead.
if(NOT MSVC)
set(LIBFUZZER_TEST_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang)
set(LIBFUZZER_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++)
else()
set(LIBFUZZER_TEST_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang.exe)
set(LIBFUZZER_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++.exe)
endif()
set(LIBFUZZER_TEST_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang)
set(LIBFUZZER_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++)
# LIT-based libFuzzer tests.
configure_lit_site_cfg(
@ -91,12 +61,6 @@ configure_lit_site_cfg(
add_lit_testsuite(check-fuzzer "Running Fuzzer tests"
${CMAKE_CURRENT_BINARY_DIR}
DEPENDS LLVMFuzzer-Unittest
)
DEPENDS LLVMFuzzer-Unittest)
# Don't add dependencies on Windows. The linker step would fail on Windows,
# since cmake will use link.exe for linking and won't include compiler-rt libs.
if(NOT MSVC)
add_dependencies(check-fuzzer LLVMFuzzer asan clang llvm-symbolizer FileCheck sancov not)
endif()
add_dependencies(check-fuzzer LLVMFuzzer asan clang llvm-symbolizer FileCheck sancov not)

View File

@ -1,5 +1,3 @@
REQUIRES: posix
RUN: %no_fuzzer_cpp_compiler -fno-sanitize-coverage=edge,trace-cmp,indirect-calls,8bit-counters,trace-pc-guard %S/AFLDriverTest.cpp %S/../afl/afl_driver.cpp -o %t-AFLDriverTest
; Test that not specifying an extra stats file isn't broken.

View File

@ -1,5 +1,3 @@
REQUIRES: posix
RUN: %no_fuzzer_cpp_compiler -fno-sanitize-coverage=edge,trace-cmp,indirect-calls,8bit-counters,trace-pc-guard %S/AFLDriverTest.cpp %S/../afl/afl_driver.cpp -o %t-AFLDriverTest
; Test that not specifying a stderr file isn't broken.

View File

@ -1,4 +1,3 @@
REQUIRES: posix
# Run EquivalenceATest against itself with a small timeout
# to stress the signal handling and ensure that shmem doesn't mind
# the signals.

View File

@ -1,4 +1,3 @@
REQUIRES: posix
RUN: %cpp_compiler %S/EquivalenceATest.cpp -o %t-LLVMFuzzer-EquivalenceATest
RUN: %cpp_compiler %S/EquivalenceBTest.cpp -o %t-LLVMFuzzer-EquivalenceBTest

View File

@ -43,9 +43,6 @@ if sys.platform.startswith('win') or sys.platform.startswith('cygwin'):
if sys.platform.startswith('darwin'):
config.available_features.add('darwin')
if config.is_posix:
config.available_features.add('posix')
if sys.platform.startswith('linux'):
# Note the value of ``sys.platform`` is not consistent
# between python 2 and 3, hence the use of ``.startswith()``.

View File

@ -1,7 +1,6 @@
config.test_exec_root = "@CMAKE_CURRENT_BINARY_DIR@"
config.llvm_tools_dir = "@LLVM_TOOLS_DIR@"
config.has_lsan = True if @HAS_LSAN@ == 1 else False
config.is_posix = @LIBFUZZER_POSIX@
config.cpp_compiler = "@LIBFUZZER_TEST_CXX_COMPILER@"
config.c_compiler = "@LIBFUZZER_TEST_COMPILER@"
config.osx_sysroot = "@CMAKE_OSX_SYSROOT@"

View File

@ -1,5 +1,3 @@
REQUIRES: posix
RUN: %cpp_compiler %S/FullCoverageSetTest.cpp -o %t-LLVMFuzzer-FullCoverageSetTest
RUN: rm -rf %tmp/T1 %tmp/T2

View File

@ -1,5 +1,3 @@
REQUIRES: posix
RUN: %cpp_compiler %S/SimpleTest.cpp -o %t-LLVMFuzzer-SimpleTest
RUN: ulimit -s 1000
RUN: not %t-LLVMFuzzer-SimpleTest