aboutsummaryrefslogtreecommitdiff
path: root/projects/lldb-eval
diff options
context:
space:
mode:
authorTonko SabolĨec <tsabolcec@google.com>2021-07-08 19:23:07 +0200
committerGitHub <noreply@github.com>2021-07-08 18:23:07 +0100
commit3b5f88cbf17bbf6fc91408b1f5ae844ca243fc74 (patch)
tree8558ebce26b592094033a1fc3a86426aef52614f /projects/lldb-eval
parenta2562cfa203e5b571b9145a710ceb9bf6d0e2cb6 (diff)
downloadoss-fuzz-3b5f88cbf17bbf6fc91408b1f5ae844ca243fc74.tar.gz
Add lldb vs lldb-eval fuzz target (#6013)
Diffstat (limited to 'projects/lldb-eval')
-rw-r--r--projects/lldb-eval/build.sh39
1 files changed, 26 insertions, 13 deletions
diff --git a/projects/lldb-eval/build.sh b/projects/lldb-eval/build.sh
index 95195c9e5..f21af7d60 100644
--- a/projects/lldb-eval/build.sh
+++ b/projects/lldb-eval/build.sh
@@ -54,25 +54,38 @@ then
CXXFLAGS="$CXXFLAGS -fno-sanitize=function,vptr"
fi
+# Undefine NDEBUG to enable asserts.
+export BAZEL_EXTRA_BUILD_FLAGS="--copt=-UNDEBUG"
+
# Run the build!
bazel_build_fuzz_tests
# OSS-Fuzz rule doesn't build data dependencies
bazel build //testdata:fuzzer_binary_gen
-# OSS-Fuzz rule doesn't package runfiles yet:
-# https://github.com/bazelbuild/rules_fuzzing/issues/100
-mkdir -p $OUT/lldb_eval_libfuzzer_test.runfiles
-# fuzzer_binary
-mkdir -p $OUT/lldb_eval_libfuzzer_test.runfiles/lldb_eval/testdata
-cp $SRC/lldb-eval/bazel-bin/testdata/fuzzer_binary $OUT/lldb_eval_libfuzzer_test.runfiles/lldb_eval/testdata/
-cp $SRC/lldb-eval/testdata/fuzzer_binary.cc $OUT/lldb_eval_libfuzzer_test.runfiles/lldb_eval/testdata/
-# lldb-server
-mkdir -p $OUT/lldb_eval_libfuzzer_test.runfiles/llvm_project/bin
-cp $SRC/llvm/bin/lldb-server $OUT/lldb_eval_libfuzzer_test.runfiles/llvm_project/bin/lldb-server
-
# OSS-Fuzz rule doesn't handle dynamic dependencies
-# Copy liblldb.so and path RPATH of the fuzz target
+# Copy liblldb.so
mkdir -p $OUT/lib
cp $SRC/llvm/lib/liblldb.so* $OUT/lib
-patchelf --set-rpath '$ORIGIN/lib' $OUT/lldb_eval_libfuzzer_test
+
+# List of targets to fuzz.
+TARGETS=(
+ lldb_eval_libfuzzer_test
+ lldb_vs_lldb_eval_libfuzzer_test
+)
+
+# Preparation of each target.
+for target in ${TARGETS[@]}; do
+ # OSS-Fuzz rule doesn't package runfiles yet:
+ # https://github.com/bazelbuild/rules_fuzzing/issues/100
+ mkdir -p $OUT/$target.runfiles
+ # fuzzer_binary
+ mkdir -p $OUT/$target.runfiles/lldb_eval/testdata
+ cp $SRC/lldb-eval/bazel-bin/testdata/fuzzer_binary $OUT/$target.runfiles/lldb_eval/testdata/
+ cp $SRC/lldb-eval/testdata/fuzzer_binary.cc $OUT/$target.runfiles/lldb_eval/testdata/
+ # lldb-server
+ mkdir -p $OUT/$target.runfiles/llvm_project/bin
+ cp $SRC/llvm/bin/lldb-server $OUT/$target.runfiles/llvm_project/bin/lldb-server
+ # Patch RPATH of the fuzz target
+ patchelf --set-rpath '$ORIGIN/lib' $OUT/$target
+done