mirror of
				https://github.com/coredns/coredns.git
				synced 2025-11-03 18:53:13 -05: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
							 |