aboutsummaryrefslogtreecommitdiff
path: root/Makefile.fuzz
blob: 5f4c1be2cde1171e3b3c632399ed1fbb0eee8b24 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Makefile for fuzzing
#
# With https://app.fuzzit.dev/ we are continuously fuzzing CoreDNS.
#
# 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 forward
#
# Each plugin that wants to join the fuzzing fray only needs to add a fuzz.go that calls
# the plugin's ServeDNS and used the plugin/pkg/fuzz for the Do function.
#
# Installing go-fuzz is very tricky because it does not support Go modules, see the `Makefile`
# for the current trickery. The following may do the trick:
#
# GO111MODULE=off go get github.com/dvyukov/go-fuzz/go-fuzz-build

REPO:="github.com/coredns/coredns"
FUZZIT:=v2.4.35
# set LIBFUZZER=YES to build libfuzzer compatible targets

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 $(PLUGINS) corefile

all: $(PLUGINS) corefile

.PHONY: $(PLUGINS)
$(PLUGINS): echo
ifeq ($(LIBFUZZER), YES)
	go-fuzz-build -libfuzzer -o $(@).a ./plugin/$(@)
	clang -fsanitize=fuzzer $(@).a -o $(@)
else
	go-fuzz-build $(REPO)/plugin/$(@)
	go-fuzz -bin=./$(@)-fuzz.zip -workdir=fuzz/$(@)
endif

.PHONY: corefile
corefile:
ifeq ($(LIBFUZZER), YES)
	go-fuzz-build -libfuzzer -o $(@).a ./test
	clang -fsanitize=fuzzer $(@).a -o $(@)
else
	go-fuzz-build $(REPO)/test
	go-fuzz -bin=./test-fuzz.zip -workdir=fuzz/$(@)
endif

fuzzit:
	wget --quiet -O fuzzit https://github.com/fuzzitdev/fuzzit/releases/download/$(FUZZIT)/fuzzit_Linux_x86_64 && chmod +x fuzzit

.PHONY: clean
clean:
	rm *-fuzz.zip
/select> Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/docs (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2023-09-13Fix mock exampleGravatar Colin McDonnell 1-1/+1
2023-09-13fix(BunFile.slice) fix slice when length is greater than the size (#5186)Gravatar Ciro Spaciari 2-3/+15
2023-09-13fix(doc): Add "compilerOptions" to bun-types README.md (#5325)Gravatar Patrick Klitzke 1-3/+5
2023-09-13fix(node:dns): fix the crash. (#5200)Gravatar Ai Hoshino 3-15/+66
2023-09-13fix(console.log) fix printing long custom format (#5164)Gravatar Ciro Spaciari 4-2/+38
2023-09-13feat(nodejs): implement `os.availableParallelism` (#5109)Gravatar WingLim 3-3/+10
2023-09-13Make --watch instant (#5236)Gravatar Jarred Sumner 7-56/+190
2023-09-13fix(runtime): require cache should not include unevaluated ESM modules. (#5233)Gravatar dave caruso 6-8/+40
2023-09-13Fixed api & cli docs typo. (#5262)Gravatar James Gordo 3-4/+4
2023-09-13chore(docs): include missing links to Node.js APIs (#5281)Gravatar Steven 1-2/+2
2023-09-13docs(guide): fix expect assertion example in guide for `spyOn` (#5294)Gravatar wing 1-1/+1
2023-09-13add uninstall instructions (#5311)Gravatar Andrew Brown 1-0/+24
2023-09-13docs: update lockfile diff instructions (#5275)Gravatar Guilherme J. Tramontina 1-3/+7
2023-09-13fix(node/fetch): Make data URL fetch consistent with node (#5126)Gravatar David Hewitt 2-7/+37
2023-09-13avoid inserting extraneous"accept-encoding" header (#5057)Gravatar iidebyo 2-1/+22
2023-09-13docs(runtime): fix plugins loader extensions typo (#5250)Gravatar Zong 1-1/+1
2023-09-13chore: make comment grammatically correct (#5140)Gravatar Gareth Jones 1-1/+1
2023-09-13Add informative message on 'bun create react' (#5248)Gravatar Colin McDonnell 1-0/+22
2023-09-13docs(runtime): fix jsx FragmentFactory output example (#5243)Gravatar Zong 1-1/+1
2023-09-13file.exists() needs to be awaited to get the value (#5061)Gravatar amt8u 1-1/+1
2023-09-13Update discordjs.md (#5227)Gravatar Antonin CLAUZIER 1-1/+1
2023-09-13decode regex if needed (#5167)Gravatar Dylan Conway 5-126/+167
2023-09-13Correct the configuration file names. (#5234)Gravatar Nathan Hammond 2-2/+2
2023-09-12Update tsconfig.json for bun initGravatar Colin McDonnell 1-1/+1
2023-09-12js/node/stream.js: call write() callback when encoding is not provided (#4841)Gravatar cfal 2-3/+7
2023-09-12docs: Made bun-types install as dev dependency in example (#5120)Gravatar Gordon Goldbach 1-1/+1
2023-09-12Various docs (#5201)Gravatar Colin McDonnell 4-4/+147
2023-09-12Use git's --global flag for lockfile diffs instead of manually modifying conf...Gravatar Southpaw 1-17/+7
2023-09-12docs: fix typo in import.meta.resolve (#5146)Gravatar Jonathan Neal 1-1/+1
2023-09-12Update hot.md (#4990)Gravatar Nazeel 1-1/+1
2023-09-12Update simple.md (#4997)Gravatar Tom Redman 1-1/+1
2023-09-12fix typo and grammar errors (#5046)Gravatar xnacly 1-3/+3
2023-09-12clang and llvm on arch install v16, update to use v15 (#5069)Gravatar mi4uu 1-1/+10
2023-09-12Add missing full stop on nodejs-apis.md (#5072)Gravatar Diogo Goncalves 1-5/+5
2023-09-12udate README.md (#5127)Gravatar Toby 1-1/+1
2023-09-12docs: fix typos (#5151)Gravatar Samuel Rigaud 17-18/+18
2023-09-12fix lifecycle docu (#5159)Gravatar Thomas Rupprecht 1-4/+4
2023-09-12Clean up Modules docGravatar Colin McDonnell 1-66/+73