[Lldb-commits] [lldb] 40aace5 - [lldb/Fuzzer] Have fuzzers write artifacts to specific directory

Chelsea Cassanova via lldb-commits lldb-commits at lists.llvm.org
Thu Jun 23 13:55:29 PDT 2022


Author: Chelsea Cassanova
Date: 2022-06-23T16:55:23-04:00
New Revision: 40aace59cc58ca438060cf4dfd97ba01ff4f0ebc

URL: https://github.com/llvm/llvm-project/commit/40aace59cc58ca438060cf4dfd97ba01ff4f0ebc
DIFF: https://github.com/llvm/llvm-project/commit/40aace59cc58ca438060cf4dfd97ba01ff4f0ebc.diff

LOG: [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

Added: 
    

Modified: 
    lldb/tools/lldb-fuzzer/lldb-commandinterpreter-fuzzer/CMakeLists.txt
    lldb/tools/lldb-fuzzer/lldb-target-fuzzer/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/lldb/tools/lldb-fuzzer/lldb-commandinterpreter-fuzzer/CMakeLists.txt b/lldb/tools/lldb-fuzzer/lldb-commandinterpreter-fuzzer/CMakeLists.txt
index 5bfae5b574e95..7eb85ba916709 100644
--- a/lldb/tools/lldb-fuzzer/lldb-commandinterpreter-fuzzer/CMakeLists.txt
+++ b/lldb/tools/lldb-fuzzer/lldb-commandinterpreter-fuzzer/CMakeLists.txt
@@ -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()

diff  --git a/lldb/tools/lldb-fuzzer/lldb-target-fuzzer/CMakeLists.txt b/lldb/tools/lldb-fuzzer/lldb-target-fuzzer/CMakeLists.txt
index 06df06c07d927..6876945c08da6 100644
--- a/lldb/tools/lldb-fuzzer/lldb-target-fuzzer/CMakeLists.txt
+++ b/lldb/tools/lldb-fuzzer/lldb-target-fuzzer/CMakeLists.txt
@@ -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()


        


More information about the lldb-commits mailing list