« Back to Index

Go Fuzz Testing

View original Gist on GitHub

Makefile

.PHONY: test-fuzz
test-fuzz: ## Run fuzz tests
ifeq ($(strip $(GO_FUZZARGS)),)
	@status=0; \
	for pkg in $$(go list ./...); do \
		for test in $$(go test -list=^Fuzz $$pkg | grep '^Fuzz'); do \
			echo ">>> Fuzzing $$pkg $$test"; \
			if ! go test -fuzz=$$test -fuzztime=10s $$pkg; then \
				echo "❌ FAIL: $$pkg $$test"; \
				status=1; \
			fi; \
		done; \
	done; \
	exit $$status
else
	@# Running tests with fuzz arguments
	go test -v -run='^$$' $(GO_FUZZARGS)
endif