aboutsummaryrefslogtreecommitdiff
path: root/Makefile.fuzz
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.fuzz')
-rw-r--r--Makefile.fuzz13
1 files changed, 13 insertions, 0 deletions
diff --git a/Makefile.fuzz b/Makefile.fuzz
index 666f4c93d..b2340c420 100644
--- a/Makefile.fuzz
+++ b/Makefile.fuzz
@@ -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