Просмотр исходного кода

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 3 лет назад
Родитель
Сommit
1dcffc655d
2 измененных файлов с 12 добавлено и 6 удалено
  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 \