Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
go-version: ["1.24.x", "1.25.x"]
go-version: ["1.24.x", "1.25.x", "1.26.x", "1.27.x"]
env:
# Needed for the quic-go test
GOEXPERIMENT: ${{ matrix.go-version == '1.24.x' && 'synctest' || '' }}
Expand Down
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ cargo test test_name_here

Pre-commit hooks enforce: `go-mod-tidy`, `go-fmt`, `cargo fmt`, `cargo check --all-targets`, `clippy -D warnings`.

CI tests against Go 1.24.x and 1.25.x. Go 1.24 tests require `GOEXPERIMENT=synctest`.
CI tests against Go 1.24.x, 1.25.x, 1.26.x and 1.27.x. Go 1.24 tests require `GOEXPERIMENT=synctest`.

## Architecture

Expand All @@ -31,7 +31,7 @@ Rust workspace with a single crate: `go-runner/` (`codspeed-go-runner`), edition
**Flow:** `main.rs` parses CLI args → `runner::run()` generates overlay + runs `go test` → Go benchmarks write raw JSON results to `$CODSPEED_PROFILE_FOLDER/raw_results/` → `collect_walltime_results()` aggregates into `results/{pid}.json`.

**Overlay mechanism:** Three files are overlaid into `$GOROOT/src/testing/`:
- `benchmark.go` — replaces the standard `testing.B` implementation (version-specific: 1.24 or 1.25+)
- `benchmark.go` — replaces the standard `testing.B` implementation (version-specific: 1.24, 1.25 or 1.26+)
- `codspeed.go` — CodSpeed measurement logic, result saving, `codspeed` struct with per-round measurements
- `instrument-hooks.go` — cgo FFI bindings to the C instrument-hooks library (downloaded at runtime)

Expand Down
4 changes: 2 additions & 2 deletions go-runner/overlay/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ This directory contains CodSpeed instrumentation overlays for Go's standard `tes

## Files

- `benchmark1.24.0.go`, `benchmark1.25.0.go` - Modified versions of Go's `testing/benchmark.go` with CodSpeed instrumentation
- `benchmark1.24.0.patch`, `benchmark1.25.0.patch` - Patch files showing differences from upstream
- `benchmark1.24.0.go`, `benchmark1.25.0.go`, `benchmark1.26.0.go` - Modified versions of Go's `testing/benchmark.go` with CodSpeed instrumentation
- `benchmark1.24.0.patch`, `benchmark1.25.0.patch`, `benchmark1.26.0.patch` - Patch files showing differences from upstream
- `codspeed.go` - CodSpeed-specific benchmark extensions
- `instrument-hooks.go` - Bindings to the instrument-hooks library

Expand Down
Loading
Loading