Add Continuous Fuzzing Integration to Fuzzit (#3093)

This feature introduce continuous fuzzing with the following
features:

* Ruzzing: fuzz-targets are run continuously on master
( the fuzzers are updated every time new code is pushed to master)
* Regresion: In addition to unit-tests travis runs all fuzz
targets through the generated corpus to catch bugs early  on
in the CI process before merge.
This commit is contained in:
Yevgeny Pats
2019-08-18 11:40:59 +03:00
committed by Miek Gieben
parent bbc78abf6f
commit c33fc9e3b0
4 changed files with 46 additions and 5 deletions

View File

@@ -14,6 +14,7 @@
#$ go get github.com/dvyukov/go-fuzz/go-fuzz-build
REPO:="github.com/coredns/coredns"
# set LIBFUZZER=YES to build libfuzzer compatible targets
FUZZ:=$(dir $(wildcard plugin/*/fuzz.go)) # plugin/cache/
PLUGINS:=$(foreach f,$(FUZZ),$(subst plugin, ,$(f:/=))) # > /cache
@@ -25,13 +26,25 @@ echo:
.PHONY: $(PLUGINS)
$(PLUGINS): echo
ifeq ($(LIBFUZZER), YES)
go-fuzz-build -tags fuzz -libfuzzer -o $(@).a ./plugin/$(@)
clang -fsanitize=fuzzer $(@).a -o $(@)
else
go-fuzz-build -tags fuzz $(REPO)/plugin/$(@)
go-fuzz -bin=./$(@)-fuzz.zip -workdir=fuzz/$(@)
endif
.PHONY: corefile
corefile:
ifeq ($(LIBFUZZER), YES)
go-fuzz-build -tags fuzz -libfuzzer -o $(@).a ./test
clang -fsanitize=fuzzer $(@).a -o $(@)
else
go-fuzz-build -tags fuzz $(REPO)/test
go-fuzz -bin=./test-fuzz.zip -workdir=fuzz/$(@)
endif
.PHONY: clean