Skip to content

Latest commit

 

History

History
74 lines (48 loc) · 1.49 KB

testing.md

File metadata and controls

74 lines (48 loc) · 1.49 KB

Testing

Run unit tests with coverage:

go test ./... -coverprofile /tmp/peky.cover
go tool cover -func /tmp/peky.cover | tail -n 1

Race tests:

go test ./... -race

CLI smoke run (builds ./bin/peky, starts daemon, runs core commands):

scripts/cli-smoke.sh

CLI stress battery (builds ./bin/peky, isolated runtime/config, heavy concurrency):

scripts/cli-stress.sh

Run tool loops (Codex/Claude) during stress:

RUN_TOOLS=1 scripts/cli-stress.sh

Performance + profiling tools live in docs/performance.md.

GitHub Actions runs gofmt checks, go vet, go test with coverage, and race on Linux.

Nightly self-hosted stress (Geekom A8 / Linux runner):

  • Workflow: .github/workflows/nightly-stress.yml
  • Runs scripts/cli-stress.sh on self-hosted, Linux, X64

Release Safety Checklist (pre-release, no tagging)

Run these before a release candidate to avoid regressions:

  1. Clean build & tests
go test ./...
go test ./... -race
  1. Coverage sanity check
go test ./... -coverprofile /tmp/peky.cover
go tool cover -func /tmp/peky.cover | tail -n 1
  1. Perf baseline (dev-only)

See docs/performance.md for scripts/perf-profiler and scripts/perf-bench.

  1. Update perf summary
# Write/refresh: testdata/performance-tests/perf-summary-YYYYMMDD.md
  1. Verify dev-only flags are gated
  • Profiling hooks must be behind build tags or env gates.
  • No profiler endpoints enabled by default.