mirror of
https://github.com/coredns/coredns.git
synced 2025-10-27 08:14:18 -04:00
34 lines
935 B
Makefile
34 lines
935 B
Makefile
|
|
# Makefile for fuzzing
|
||
|
|
#
|
||
|
|
# Use go-fuzz and needs the tools installed. For each fuzz.go in a plugin's directory
|
||
|
|
# you can start the fuzzing with: make -f Makefile.fuzz <plugin>
|
||
|
|
# e.g.
|
||
|
|
#
|
||
|
|
# make -f Makefile.fuzz proxy
|
||
|
|
#
|
||
|
|
# Each plugin that wants to join the fuzzing fray only needs to add a fuzz.go that calls
|
||
|
|
# the plugins's ServeDNS and used the plugin/pkg/fuzz for the Do function.
|
||
|
|
#
|
||
|
|
# Installing go-fuzz
|
||
|
|
#$ go get github.com/dvyukov/go-fuzz/go-fuzz
|
||
|
|
#$ go get github.com/dvyukov/go-fuzz/go-fuzz-build
|
||
|
|
|
||
|
|
REPO:="github.com/coredns/coredns/plugin"
|
||
|
|
|
||
|
|
FUZZ:=$(dir $(wildcard plugin/*/fuzz.go)) # plugin/cache/
|
||
|
|
PLUGINS:=$(foreach f,$(FUZZ),$(subst plugin, ,$(f:/=))) # > /cache
|
||
|
|
PLUGINS:=$(foreach f,$(PLUGINS),$(subst /, ,$(f))) # > cache
|
||
|
|
|
||
|
|
.PHONY: echo
|
||
|
|
echo:
|
||
|
|
@echo fuzz targets: $(PLUGINS)
|
||
|
|
|
||
|
|
.PHONY: $(PLUGINS)
|
||
|
|
$(PLUGINS): echo
|
||
|
|
go-fuzz-build $(REPO)/$(@)
|
||
|
|
go-fuzz -bin=./$(@)-fuzz.zip -workdir=fuzz/$(@)
|
||
|
|
|
||
|
|
.PHONY: clean
|
||
|
|
clean:
|
||
|
|
rm *-fuzz.zip
|