Skip to content

Preserve module patches when compiling benchmark harnesses - #126

Merged
DanielThomas merged 1 commit into
mainfrom
fix/benchmark-module-patches
Nov 4, 2026
Merged

DanielThomas merged 1 commit into
mainfrom
fix/benchmark-module-patches

Conversation

@DanielThomas

Copy link
Copy Markdown
Member

Summary

  • Preserve all incoming module patches when compiling the generated benchmark harness, alongside the generated sources.
  • Keep harness compilation consistent with generation and execution: incrementally added benchmark classes and methods must be visible at every phase.
  • Add six regression cases covering added classes and methods through raw jmh listing, selector discovery, and bench --check.

Validation

  • Reproduced the failure using the released ja 0.26.24: run a benchmark, add another benchmark class, then run bench --check again. The resolved invocation includes the new class in --patch-module, but harness compilation previously reported cannot find symbol.
  • Added the regression test before the fix and observed failures for raw listing, selector discovery, and execution checks.
  • All 38 provider tests pass with the fix. The test JVMs used an isolated temporary directory to avoid another running benchmark's lock.
  • Replayed the failing incremental invocation with the fixed provider and its unchanged module-path/patch inputs; execution checks and discovery both pass without cleaning the fixture.

Release coordination

This is the provider phase of a two-release sequence. Release this fix as v0.26.25, verify com.netflix.tools.jmh@0.26.25 on Maven Central, then update the client provider pin and release v0.26.26. Keep the existing 0.26.23 pin until the new provider is published.

@DanielThomas
DanielThomas merged commit e064239 into main Nov 4, 2026
12 checks passed
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