Parcourir la source

fix(fuzz): Make sanitizer flags optional

Currently OSS fuzz expects to have complete control over the
sanitizer flags. As we currently have these set it's causing
problems with the OSS fuzz build. Instead we should use the
provided variables from the OSS fuzz build environment. For
local testing we'll create a set a well defined defaults.
Nathaniel Brough il y a 3 ans
Parent
commit
1dcffc655d
2 fichiers modifiés avec 12 ajouts et 6 suppressions
  1. 2 0
      .github/workflows/pre-commit.yml
  2. 10 6
      test/fuzz/make.mk

+ 2 - 0
.github/workflows/pre-commit.yml

@@ -38,6 +38,8 @@ jobs:
 
     - name: Build Fuzzer
       run: |
+        export CC=clang
+        export CXX=clang++
         fuzz_harness=$(ls -d test/fuzz/device/*/)
         for h in $fuzz_harness
         do

+ 10 - 6
test/fuzz/make.mk

@@ -16,9 +16,9 @@ __check_defined = \
 
 #-------------- Fuzz harness compiler  ------------
 
-CC = clang
-CXX = clang++
-GDB = gdb
+CC ?= clang
+CXX ?= clang++
+GDB ?= gdb
 OBJCOPY = objcopy
 SIZE = size
 MKDIR = mkdir
@@ -34,6 +34,13 @@ else
   PYTHON = python3
 endif
 
+#-------------- Fuzz harness flags ------------
+COVERAGE_FLAGS ?= -fsanitize-coverage=trace-pc-guard
+SANITIZER_FLAGS ?= -fsanitize=fuzzer \
+                   -fsanitize=address
+
+CFLAGS += $(COVERAGE_FLAGS) $(SANITIZER_FLAGS)
+
 #-------------- Source files and compiler flags --------------
 
 
@@ -42,9 +49,6 @@ INC += $(TOP)/test
 # Compiler Flags
 CFLAGS += \
   -ggdb \
-  -fsanitize=fuzzer \
-  -fsanitize=address \
-  -fsanitize=undefined \
   -fdata-sections \
   -ffunction-sections \
   -fno-strict-aliasing \