Skip to content

test(integration): add pipeline stage benchmarks and non-mutating lint format check - #42

Merged
HarshK97 merged 1 commit into
mainfrom
test/pipeline-benchmarks
Aug 2, 2026
Merged

test(integration): add pipeline stage benchmarks and non-mutating lint format check#42
HarshK97 merged 1 commit into
mainfrom
test/pipeline-benchmarks

Conversation

@HarshK97

@HarshK97 HarshK97 commented Aug 2, 2026

Copy link
Copy Markdown
Owner

Problem

  1. We had no benchmarks for individual engine stages like parse, match, edit script, postprocess, and serialize, so tracking performance or memory regressions per stage was impossible.
  2. CI had no automated benchmark regression checks or A/B diff comparisons against main to catch performance slowdowns on PRs.
  3. Running make lint formatted code directly on disk, which mutated files in place instead of catching unformatted code and failing.

What Changed

  • Pipeline Stage Benchmarks: Added benchmarks for parse, match, edit script generation, postprocess, serialize, and full pipeline runs across all test fixtures.
  • CI Benchmarking & A/B Reports: Added a benchmark smoke test and automated benchstat comparison against the base branch on ubuntu-latest, posting the comparison table directly to the GitHub Actions job summary.
  • Makefile Commands: Added make bench and make bench-short. Fixed make lint to run a non-mutating format check that prints a diff and fails if formatting errors exist.
  • Benchmark Test Helpers: Swapped *testing.T to testing.TB on test helpers so fixture loading and parsing are shared between standard integration tests and benchmark loops.

@HarshK97
HarshK97 merged commit f6fe0be into main Aug 2, 2026
6 checks passed
@HarshK97
HarshK97 deleted the test/pipeline-benchmarks branch August 2, 2026 04:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant