From a435e5577690e8557e2e470dfd64664cb0156a66 Mon Sep 17 00:00:00 2001 From: Kharec Date: Wed, 12 Nov 2025 07:09:07 +0100 Subject: [PATCH] refactor: simplify fuzz tests to use package-based discovery --- Makefile | 50 ++++++-------------------------------------------- 1 file changed, 6 insertions(+), 44 deletions(-) diff --git a/Makefile b/Makefile index 6af5adb..18a03f2 100644 --- a/Makefile +++ b/Makefile @@ -26,53 +26,11 @@ UNIT_TEST_PACKAGES := ./cmd/goyco ./internal/config ./internal/database ./intern INTEGRATION_TEST_PACKAGE := ./internal/integration/... E2E_TEST_PACKAGE := ./internal/e2e/... -FUZZ_CASES := \ - ./internal/validation::FuzzValidateEmail \ - ./internal/validation::FuzzValidateUsername \ - ./internal/validation::FuzzValidatePassword \ - ./internal/validation::FuzzValidateURL \ - ./internal/validation::FuzzValidateTitle \ - ./internal/validation::FuzzValidateContent \ - ./internal/validation::FuzzValidateSearchQuery \ - ./internal/validation::FuzzSanitizeString \ - ./internal/security::FuzzSanitizeInput \ - ./internal/security::FuzzSanitizeUsername \ - ./internal/security::FuzzSanitizeEmail \ - ./internal/security::FuzzSanitizePostContent \ - ./internal/security::FuzzSanitizeURL \ - ./internal/security::FuzzInputSanitizerUsernameCLI \ - ./internal/security::FuzzInputSanitizerEmailCLI \ - ./internal/security::FuzzInputSanitizerPasswordCLI \ - ./internal/security::FuzzInputSanitizerSearchTerm \ - ./internal/security::FuzzInputSanitizerTitleCLI \ - ./internal/security::FuzzInputSanitizerContentCLI \ - ./internal/security::FuzzInputSanitizerID \ - ./internal/handlers::FuzzJSONParsing \ - ./internal/handlers::FuzzURLParsing \ - ./internal/handlers::FuzzQueryParameters \ - ./internal/handlers::FuzzHTTPHeaders \ - ./cmd/goyco::FuzzCLIArgs \ - ./cmd/goyco::FuzzCommandDispatch \ - ./cmd/goyco::FuzzRunCommandHandler \ - ./internal/fuzz::FuzzSearchRepository \ - ./internal/fuzz::FuzzPostRepository \ - ./internal/fuzz::FuzzIntegrationHandlers \ - ./internal/fuzz::FuzzIntegrationServices \ - ./internal/fuzz::FuzzIntegrationRepositories +FUZZ_PACKAGES := ./internal/validation ./internal/security ./internal/handlers ./cmd/goyco ./internal/fuzz .PHONY: build test clean format lint build-deps clean-deps docker-image swagger \ unit-tests integration-tests e2e-tests fuzz-tests install uninstall release migrations -define run-fuzz-cases - @set -e; \ - for case in $(1); do \ - pkg=$${case%%::*}; \ - target=$${case##*::}; \ - echo "==> $$pkg $$target"; \ - $(GO) test -fuzz=$$target -fuzztime=$(FUZZ_TIME) $$pkg; \ - done -endef - build: @mkdir -p $(dir $(BINARY)) $(GO) build $(GO_BUILD_FLAGS) -o $(BINARY) ./cmd/goyco @@ -116,7 +74,11 @@ e2e-tests: fuzz-tests: @echo "Running fuzz tests..." - $(call run-fuzz-cases,$(FUZZ_CASES)) + @set -e; \ + for pkg in $(FUZZ_PACKAGES); do \ + echo "==> Fuzzing $$pkg"; \ + $(GO) test -fuzz=. -fuzztime=$(FUZZ_TIME) $$pkg; \ + done install: @useradd -r -m -d $(INSTALL_DIR) -s /usr/sbin/nologin goyco