[lldb/Fuzzer] Have fuzzers write artifacts to specific directory

This makes the LLDB fuzzers write their fuzzer artifacts to
their own directory in the build directory. It also adds an artifact
prefix to the target fuzzer to make it easier to tell which fuzzer
wrote the artifact.

Differential revision: https://reviews.llvm.org/D128450
This commit is contained in:
Chelsea Cassanova 2022-06-23 11:38:18 -04:00
parent a1f20da315
commit 40aace59cc
2 changed files with 17 additions and 8 deletions

View File

@ -14,15 +14,19 @@ if(TARGET lldb-commandinterpreter-fuzzer)
liblldb
)
# This will create a directory specifically for the fuzzer's artifacts, go to that
# directory and run the fuzzer from there. When the fuzzer exits the input
# artifact that caused it to exit will be written to a directory within the
# build directory
# A directory in the build directory is created to hold the fuzzer's
# artifacts as a pre-build command for the command interpreter's executable
# target. When the fuzzer exits the input artifact that caused it to exit
# will be written to this directory.
add_custom_command(TARGET lldb-commandinterpreter-fuzzer PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/fuzzer-artifacts/commandinterpreter-artifacts
)
add_custom_target(fuzz-lldb-commandinterpreter
COMMENT "Running the LLDB command interpreter fuzzer..."
COMMAND mkdir -p ${CMAKE_BINARY_DIR}/fuzzer-artifacts/commandinterpreter-artifacts &&
cd ${CMAKE_BINARY_DIR}/fuzzer-artifacts/commandinterpreter-artifacts
&& $<TARGET_FILE:lldb-commandinterpreter-fuzzer> -dict=${CMAKE_CURRENT_SOURCE_DIR}/inputdictionary.txt -only_ascii=1 -artifact_prefix=commandinterpreter-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/fuzzer-artifacts/commandinterpreter-artifacts
COMMAND $<TARGET_FILE:lldb-commandinterpreter-fuzzer> -dict=${CMAKE_CURRENT_SOURCE_DIR}/inputdictionary.txt -only_ascii=1 -artifact_prefix=commandinterpreter-
USES_TERMINAL
)
endif()

View File

@ -15,9 +15,14 @@ if(TARGET lldb-target-fuzzer)
lldbFuzzerUtils
)
add_custom_command(TARGET lldb-target-fuzzer PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/fuzzer-artifacts/target-artifacts
)
add_custom_target(fuzz-lldb-target
COMMENT "Running the LLDB target fuzzer..."
COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} && $<TARGET_FILE:lldb-target-fuzzer>
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/fuzzer-artifacts/target-artifacts
COMMAND $<TARGET_FILE:lldb-target-fuzzer> -artifact_prefix=target-
USES_TERMINAL
)
endif()