[hw-2] add tests, coverage, benchmarks

This commit is contained in:
Никита Шубин
2025-05-31 10:47:47 +00:00
parent 1a3d4892a8
commit a0e36639ca
22 changed files with 3058 additions and 48 deletions

28
make/coverage.mk Normal file
View File

@@ -0,0 +1,28 @@
COV_REPORT_DIR := .coverage
define coverage
@if [ -f "$(1)/go.mod" ]; then \
echo "===== coverage for $(1) ====="; \
outdir=$(COV_REPORT_DIR)/$(1); \
mkdir -p $$outdir; \
pkgs=$$(go list ./$(1)/... | grep -vE 'mock|config|generated|header|document|internal/pb'); \
if [ -z "$$pkgs" ]; then \
echo "no packages to test in $(1)"; exit 0; \
fi; \
go test -race -covermode=atomic -coverprofile=$$outdir/coverage.out $$pkgs; \
go tool cover -html=$$outdir/coverage.out -o $$outdir/coverage.html; \
echo "html report: $$outdir/coverage.html"; \
fi
endef
cart-coverage:
$(call coverage,cart)
loms-coverage:
$(call coverage,loms)
notifier-coverage:
$(call coverage,notifier)
comments-coverage:
$(call coverage,comments)

25
make/generate.mk Normal file
View File

@@ -0,0 +1,25 @@
define generate
@if [ -f "$(1)/go.mod" ]; then \
echo "===== running go generate for $(1) ====="; \
if [ ! -d "$(1)/internal" ]; then \
echo "no internal package in $(1)"; \
exit 0; \
fi; \
go generate ./$(1)/internal/...; \
fi
endef
cart-generate:
$(call generate,cart)
loms-generate:
$(call generate,loms)
notifier-generate:
$(call generate,notifier)
comments-generate:
$(call generate,comments)