From 34101cf6860ef1f8be9865f17abbf7eb3df0977a Mon Sep 17 00:00:00 2001 From: Snider Date: Mon, 3 Nov 2025 19:50:05 +0000 Subject: [PATCH] Enhance CI workflow with coverage options and add tests for KDTree functionality --- .github/workflows/ci.yml | 11 +++++++---- Makefile | 13 ++++++++----- kdtree_morecov_test.go | 2 +- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e55f3f1..1affc5f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,12 +44,15 @@ jobs: run: | set -e for pkg in $(go list ./...); do - if go test -list '^Fuzz' "$pkg" | grep -q '^Fuzz'; then - echo "==> Fuzzing $pkg for 10s" - go test -run=NONE -fuzz=Fuzz -fuzztime=10s "$pkg" - else + FUZZES=$(go test -list '^Fuzz' "$pkg" | grep '^Fuzz' || true) + if [ -z "$FUZZES" ]; then echo "==> Skipping $pkg (no fuzz targets)" + continue fi + for fz in $FUZZES; do + echo "==> Fuzzing $pkg :: $fz for 10s" + go test -run=NONE -fuzz="^$fz$" -fuzztime=10s "$pkg" + done done - name: Upload coverage artifact diff --git a/Makefile b/Makefile index 4ccb0e6..c7bc92c 100644 --- a/Makefile +++ b/Makefile @@ -73,14 +73,17 @@ coverhtml: cover ## Generate HTML coverage report at $(COVERHTML) .PHONY: fuzz fuzz: ## Run Go fuzz tests for $(FUZZTIME) @set -e; \ - PKGS="$$( $(GO) list ./... )"; \ + PKGS="$$($(GO) list ./...)"; \ for pkg in $$PKGS; do \ - if $(GO) test -list '^Fuzz' $$pkg | grep -q '^Fuzz'; then \ - echo "==> Fuzzing $$pkg for $(FUZZTIME)"; \ - $(GO) test -run=NONE -fuzz=Fuzz -fuzztime=$(FUZZTIME) $$pkg; \ - else \ + FUZZES="$$($(GO) test -list '^Fuzz' $$pkg | grep '^Fuzz' || true)"; \ + if [ -z "$$FUZZES" ]; then \ echo "==> Skipping $$pkg (no fuzz targets)"; \ + continue; \ fi; \ + for fz in $$FUZZES; do \ + echo "==> Fuzzing $$pkg :: $$fz for $(FUZZTIME)"; \ + $(GO) test -run=NONE -fuzz="^$$fz$" -fuzztime=$(FUZZTIME) $$pkg; \ + done; \ done .PHONY: bench diff --git a/kdtree_morecov_test.go b/kdtree_morecov_test.go index c4ef4dc..3cb69db 100644 --- a/kdtree_morecov_test.go +++ b/kdtree_morecov_test.go @@ -48,7 +48,7 @@ func TestDeleteByID_SwapDelete(t *testing.T) { if ids["B"] { t.Fatalf("B should not be present after delete") } - if !(ids["A"] || ids["C"]) { + if !ids["A"] && !ids["C"] { t.Fatalf("expected either A or C to be nearest for respective queries: %v", ids) } }