73 lines
1.4 KiB
Markdown
73 lines
1.4 KiB
Markdown
# Development Guide
|
|
|
|
This file defines the local test matrix and troubleshooting notes for `starlog`.
|
|
|
|
## Local Test Matrix
|
|
|
|
Run these commands from repository root:
|
|
|
|
```powershell
|
|
go test ./...
|
|
go test -race ./...
|
|
go test . -run '^$' -bench Benchmark -benchmem -benchtime=100x
|
|
go test . -run '^$' -fuzz=FuzzTextAndJSONFormatter -fuzztime=2s
|
|
go test . -run '^$' -fuzz=FuzzKeywordHighlight -fuzztime=2s
|
|
```
|
|
|
|
## One-Command Local Check
|
|
|
|
Use the helper script:
|
|
|
|
```powershell
|
|
powershell -ExecutionPolicy Bypass -File scripts/test-local.ps1
|
|
```
|
|
|
|
The script runs:
|
|
|
|
1. Unit tests.
|
|
2. Race tests (with a precheck).
|
|
3. Benchmark smoke.
|
|
4. Fuzz smoke.
|
|
|
|
## Race Troubleshooting (Windows)
|
|
|
|
If this command fails:
|
|
|
|
```powershell
|
|
go test -race fmt
|
|
```
|
|
|
|
with:
|
|
|
|
```text
|
|
runtime/race: package testmain: cannot find package
|
|
```
|
|
|
|
the problem is the local Go toolchain/runtime environment, not `starlog` code.
|
|
|
|
Recommended steps:
|
|
|
|
1. Verify toolchain:
|
|
```powershell
|
|
where.exe go
|
|
go version
|
|
go env GOROOT GOPATH GOOS GOARCH CGO_ENABLED
|
|
```
|
|
2. Clear caches:
|
|
```powershell
|
|
go clean -cache -testcache -fuzzcache
|
|
```
|
|
3. Reinstall an official Go distribution for your platform.
|
|
4. Re-run:
|
|
```powershell
|
|
go test -race fmt
|
|
```
|
|
|
|
## CI Mapping
|
|
|
|
The same matrix is mirrored in:
|
|
|
|
- `.github/workflows/quality.yml`
|
|
|
|
Linux executes `-race` and fuzz smoke; Windows keeps unit test coverage.
|