summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Fuzzer/test/CMakeLists.txt149
-rw-r--r--llvm/lib/Fuzzer/test/dfsan/CMakeLists.txt17
-rw-r--r--llvm/lib/Fuzzer/test/trace-bb/CMakeLists.txt13
-rw-r--r--llvm/lib/Fuzzer/test/trace-pc/CMakeLists.txt14
-rw-r--r--llvm/lib/Fuzzer/test/ubsan/CMakeLists.txt13
-rw-r--r--llvm/lib/Fuzzer/test/uninstrumented/CMakeLists.txt13
6 files changed, 104 insertions, 115 deletions
diff --git a/llvm/lib/Fuzzer/test/CMakeLists.txt b/llvm/lib/Fuzzer/test/CMakeLists.txt
index 5ff11b0669e..a6702d059d8 100644
--- a/llvm/lib/Fuzzer/test/CMakeLists.txt
+++ b/llvm/lib/Fuzzer/test/CMakeLists.txt
@@ -27,13 +27,39 @@ endforeach()
# Enable the coverage instrumentation (it is disabled for the Fuzzer lib).
set(CMAKE_CXX_FLAGS "${LIBFUZZER_FLAGS_BASE} -fsanitize-coverage=edge,indirect-calls")
-set(DFSanTests
- MemcmpTest
- SimpleCmpTest
- StrcmpTest
- StrncmpTest
- SwitchTest
- )
+# add_libfuzzer_test(<name>
+# SOURCES source0.cpp [source1.cpp ...]
+# )
+#
+# Declares a LibFuzzer test executable with target name LLVMFuzzer-<name>.
+#
+# One or more source files to be compiled into the binary must be declared
+# after the SOURCES keyword.
+function(add_libfuzzer_test name)
+ set(multi_arg_options "SOURCES")
+ cmake_parse_arguments(
+ "add_libfuzzer_test" "" "" "${multi_arg_options}" ${ARGN})
+ if ("${add_libfuzzer_test_SOURCES}" STREQUAL "")
+ message(FATAL_ERROR "Source files must be specified")
+ endif()
+ add_executable(LLVMFuzzer-${name}
+ ${add_libfuzzer_test_SOURCES}
+ )
+ target_link_libraries(LLVMFuzzer-${name} LLVMFuzzer)
+ # Place binary where llvm-lit expects to find it
+ set_target_properties(LLVMFuzzer-${name}
+ PROPERTIES RUNTIME_OUTPUT_DIRECTORY
+ "${CMAKE_BINARY_DIR}/lib/Fuzzer/test"
+ )
+ set(TestBinaries ${TestBinaries} LLVMFuzzer-${name} PARENT_SCOPE)
+endfunction()
+
+# Variable to keep track of all test targets
+set(TestBinaries)
+
+###############################################################################
+# Basic tests
+###############################################################################
set(Tests
AccumulateAllocationsTest
@@ -67,107 +93,60 @@ set(Tests
TimeoutTest
)
-set(CustomMainTests
- )
-
-set(UninstrumentedTests
- UninstrumentedTest
- )
-
-set(TraceBBTests
- SimpleTest
- )
-
-set(TracePCTests
- FourIndependentBranchesTest
- FullCoverageSetTest
- )
-
-set(UbsanTests
- SignedIntOverflowTest
- )
-
-set(TestBinaries)
-
foreach(Test ${Tests})
- add_executable(LLVMFuzzer-${Test}
- ${Test}.cpp
- )
- target_link_libraries(LLVMFuzzer-${Test}
- LLVMFuzzer
- )
- set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test})
-endforeach()
-
-foreach(Test ${CustomMainTests})
- add_executable(LLVMFuzzer-${Test}
- ${Test}.cpp
- )
- target_link_libraries(LLVMFuzzer-${Test}
- LLVMFuzzerNoMain
- )
- set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test})
+ add_libfuzzer_test(${Test} SOURCES ${Test}.cpp)
endforeach()
-
-configure_lit_site_cfg(
- ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
- ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
- )
-
-configure_lit_site_cfg(
- ${CMAKE_CURRENT_SOURCE_DIR}/unit/lit.site.cfg.in
- ${CMAKE_CURRENT_BINARY_DIR}/unit/lit.site.cfg
- )
-
-include_directories(..)
-include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include)
+###############################################################################
+# Unit tests
+###############################################################################
add_executable(LLVMFuzzer-Unittest
FuzzerUnittest.cpp
FuzzerFnAdapterUnittest.cpp
- $<TARGET_OBJECTS:LLVMFuzzerNoMainObjects>
)
target_link_libraries(LLVMFuzzer-Unittest
gtest
gtest_main
+ LLVMFuzzerNoMain
+ )
+
+target_include_directories(LLVMFuzzer-Unittest PRIVATE
+ "${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include"
)
set(TestBinaries ${TestBinaries} LLVMFuzzer-Unittest)
+set_target_properties(LLVMFuzzer-Unittest
+ PROPERTIES RUNTIME_OUTPUT_DIRECTORY
+ "${CMAKE_CURRENT_BINARY_DIR}"
+)
+###############################################################################
+# Additional tests
+###############################################################################
+include_directories(..)
add_subdirectory(dfsan)
-
-foreach(Test ${DFSanTests})
- set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test}-DFSan)
-endforeach()
-
add_subdirectory(uninstrumented)
-
-foreach(Test ${UninstrumentedTests})
- set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test}-Uninstrumented)
-endforeach()
-
add_subdirectory(ubsan)
-
-foreach(Test ${UbsanTests})
- set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test}-Ubsan)
-endforeach()
-
add_subdirectory(trace-bb)
-
-foreach(Test ${TraceBBTests})
- set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test}-TraceBB)
-endforeach()
-
add_subdirectory(trace-pc)
-foreach(Test ${TracePCTests})
- set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test}-TracePC)
-endforeach()
+###############################################################################
+# Configure lit to run the tests
+#
+# Note this is done after declaring all tests so we can inform lit if any tests
+# need to be disabled.
+###############################################################################
-set_target_properties(${TestBinaries}
- PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+configure_lit_site_cfg(
+ ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
+ ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
+ )
+
+configure_lit_site_cfg(
+ ${CMAKE_CURRENT_SOURCE_DIR}/unit/lit.site.cfg.in
+ ${CMAKE_CURRENT_BINARY_DIR}/unit/lit.site.cfg
)
add_lit_testsuite(check-fuzzer "Running Fuzzer tests"
diff --git a/llvm/lib/Fuzzer/test/dfsan/CMakeLists.txt b/llvm/lib/Fuzzer/test/dfsan/CMakeLists.txt
index 362a4566711..2a4dc18bfee 100644
--- a/llvm/lib/Fuzzer/test/dfsan/CMakeLists.txt
+++ b/llvm/lib/Fuzzer/test/dfsan/CMakeLists.txt
@@ -3,12 +3,17 @@
set(CMAKE_CXX_FLAGS
"${LIBFUZZER_FLAGS_BASE} -fno-sanitize=all -fsanitize=dataflow")
+set(DFSanTests
+ MemcmpTest
+ SimpleCmpTest
+ StrcmpTest
+ StrncmpTest
+ SwitchTest
+ )
+
foreach(Test ${DFSanTests})
- add_executable(LLVMFuzzer-${Test}-DFSan
- ../${Test}.cpp
- )
- target_link_libraries(LLVMFuzzer-${Test}-DFSan
- LLVMFuzzer
- )
+ add_libfuzzer_test(${Test}-DFSan SOURCES ../${Test}.cpp)
endforeach()
+# Propagate value into parent directory
+set(TestBinaries ${TestBinaries} PARENT_SCOPE)
diff --git a/llvm/lib/Fuzzer/test/trace-bb/CMakeLists.txt b/llvm/lib/Fuzzer/test/trace-bb/CMakeLists.txt
index 915ae365734..fd168c4515b 100644
--- a/llvm/lib/Fuzzer/test/trace-bb/CMakeLists.txt
+++ b/llvm/lib/Fuzzer/test/trace-bb/CMakeLists.txt
@@ -3,12 +3,13 @@
set(CMAKE_CXX_FLAGS
"${LIBFUZZER_FLAGS_BASE} -fsanitize-coverage=edge,trace-bb")
+set(TraceBBTests
+ SimpleTest
+ )
+
foreach(Test ${TraceBBTests})
- add_executable(LLVMFuzzer-${Test}-TraceBB
- ../${Test}.cpp
- )
- target_link_libraries(LLVMFuzzer-${Test}-TraceBB
- LLVMFuzzer
- )
+ add_libfuzzer_test(${Test}-TraceBB SOURCES ../${Test}.cpp)
endforeach()
+# Propagate value into parent directory
+set(TestBinaries ${TestBinaries} PARENT_SCOPE)
diff --git a/llvm/lib/Fuzzer/test/trace-pc/CMakeLists.txt b/llvm/lib/Fuzzer/test/trace-pc/CMakeLists.txt
index 94bd5f66877..cf18278ac64 100644
--- a/llvm/lib/Fuzzer/test/trace-pc/CMakeLists.txt
+++ b/llvm/lib/Fuzzer/test/trace-pc/CMakeLists.txt
@@ -3,12 +3,14 @@
set(CMAKE_CXX_FLAGS
"${LIBFUZZER_FLAGS_BASE} -fno-sanitize-coverage=8bit-counters -fsanitize-coverage=trace-pc")
+set(TracePCTests
+ FourIndependentBranchesTest
+ FullCoverageSetTest
+ )
+
foreach(Test ${TracePCTests})
- add_executable(LLVMFuzzer-${Test}-TracePC
- ../${Test}.cpp
- )
- target_link_libraries(LLVMFuzzer-${Test}-TracePC
- LLVMFuzzer
- )
+ add_libfuzzer_test(${Test}-TracePC SOURCES ../${Test}.cpp)
endforeach()
+# Propagate value into parent directory
+set(TestBinaries ${TestBinaries} PARENT_SCOPE)
diff --git a/llvm/lib/Fuzzer/test/ubsan/CMakeLists.txt b/llvm/lib/Fuzzer/test/ubsan/CMakeLists.txt
index b7d0f500a75..7a9eacdbe7d 100644
--- a/llvm/lib/Fuzzer/test/ubsan/CMakeLists.txt
+++ b/llvm/lib/Fuzzer/test/ubsan/CMakeLists.txt
@@ -3,12 +3,13 @@
set(CMAKE_CXX_FLAGS
"${LIBFUZZER_FLAGS_BASE} -fsanitize=undefined -fno-sanitize-recover=all")
+set(UbsanTests
+ SignedIntOverflowTest
+ )
+
foreach(Test ${UbsanTests})
- add_executable(LLVMFuzzer-${Test}-Ubsan
- ../${Test}.cpp
- )
- target_link_libraries(LLVMFuzzer-${Test}-Ubsan
- LLVMFuzzer
- )
+ add_libfuzzer_test(${Test}-Ubsan SOURCES ../${Test}.cpp)
endforeach()
+# Propagate value into parent directory
+set(TestBinaries ${TestBinaries} PARENT_SCOPE)
diff --git a/llvm/lib/Fuzzer/test/uninstrumented/CMakeLists.txt b/llvm/lib/Fuzzer/test/uninstrumented/CMakeLists.txt
index b4d7e4a2a65..35c96481af3 100644
--- a/llvm/lib/Fuzzer/test/uninstrumented/CMakeLists.txt
+++ b/llvm/lib/Fuzzer/test/uninstrumented/CMakeLists.txt
@@ -3,12 +3,13 @@
set(CMAKE_CXX_FLAGS
"${LIBFUZZER_FLAGS_BASE} -fno-sanitize=all -fno-sanitize-coverage=edge,trace-cmp,indirect-calls,8bit-counters")
+set(UninstrumentedTests
+ UninstrumentedTest
+ )
+
foreach(Test ${UninstrumentedTests})
- add_executable(LLVMFuzzer-${Test}-Uninstrumented
- ../${Test}.cpp
- )
- target_link_libraries(LLVMFuzzer-${Test}-Uninstrumented
- LLVMFuzzer
- )
+ add_libfuzzer_test(${Test}-Uninstrumented SOURCES ../${Test}.cpp)
endforeach()
+# Propagate value into parent directory
+set(TestBinaries ${TestBinaries} PARENT_SCOPE)
OpenPOWER on IntegriCloud