Can I please get a review of this change which proposes to fix jmh test launch
failures noted in https://bugs.openjdk.org/browse/JDK-8317802?
jmh apparently relies on annotation processors during compilation of a
benchmark. When annotation processing is disabled, the generated benchmark jar
is unusable when the benchmark is launched and fails with:
Exception in thread "main" java.lang.RuntimeException: ERROR: Unable to find
the resource: /META-INF/BenchmarkList
at
org.openjdk.jmh.runner.AbstractResourceReader.getReaders(AbstractResourceReader.java:98)
at org.openjdk.jmh.runner.BenchmarkList.find(BenchmarkList.java:124)
at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:252)
at org.openjdk.jmh.runner.Runner.run(Runner.java:208)
at org.openjdk.jmh.Main.main(Main.java:71)
After the integration of https://bugs.openjdk.org/browse/JDK-8306819 recently
in JDK mainline, `javac` no longer runs annotation processors by default. These
jmh tests that are compiled as part of the JDK build will now have to enable
annotation processing explicitly.
The commit in this PR enables annotation processing by setting `-proc:full`
(implying run annotation processors as well as compile the files) when
compiling the benchmarks.
I tested this change locally. Without this change, the following command fails:
make test TEST="micro:java.lang.ArraysSort"
...
Test selection 'micro:java.lang.ArraysSort', will run:
* micro:java.lang.ArraysSort
Running test 'micro:java.lang.ArraysSort'
Exception in thread "main" java.lang.RuntimeException: ERROR: Unable to find
the resource: /META-INF/BenchmarkList
at
org.openjdk.jmh.runner.AbstractResourceReader.getReaders(AbstractResourceReader.java:98)
at org.openjdk.jmh.runner.BenchmarkList.find(BenchmarkList.java:124)
at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:252)
at org.openjdk.jmh.runner.Runner.run(Runner.java:208)
at org.openjdk.jmh.Main.main(Main.java:71)
Finished running test 'micro:java.lang.ArraysSort'
After the change in this PR, the same command works fine and the jmh benchmark
is run.
-------------
Commit messages:
- 8317802: jmh tests fail with Unable to find the resource:
/META-INF/BenchmarkList after JDK-8306819
Changes: https://git.openjdk.org/jdk/pull/16122/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16122&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8317802
Stats: 4 lines in 1 file changed: 2 ins; 0 del; 2 mod
Patch: https://git.openjdk.org/jdk/pull/16122.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/16122/head:pull/16122
PR: https://git.openjdk.org/jdk/pull/16122