Explorar o código

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 %!s(int64=3) %!d(string=hai) anos
pai
achega
1dcffc655d
Modificáronse 2 ficheiros con 12 adicións e 6 borrados
  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
     - name: Build Fuzzer
       run: |
       run: |
+        export CC=clang
+        export CXX=clang++
         fuzz_harness=$(ls -d test/fuzz/device/*/)
         fuzz_harness=$(ls -d test/fuzz/device/*/)
         for h in $fuzz_harness
         for h in $fuzz_harness
         do
         do

+ 10 - 6
test/fuzz/make.mk

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