RFR: 8263549: 8263412 can cause jtreg testlibrary split
Ioi Lam
iklam at openjdk.java.net
Sat Mar 13 06:19:06 UTC 2021
On Sat, 13 Mar 2021 04:31:31 GMT, Igor Ignatyev <iignatyev at openjdk.org> wrote:
> Hi all,
>
> could you please review this dull patch that replaces `ClassFileInstaller` w/ `jdk.test.lib.helpers.ClassFileInstaller` in all jtreg test descriptions to ensure we won't get split testlibrary, and removes `jdk/test/lib/ClassFileInstaller.java` (so it won't be accidentally used).
>
> from JBS:
>> after JDK-8263412, we might (again) encounter NCDFE b/c parts of testlibraries aren't on the classpath. this happens when jtreg builds `jdk.test.lib.helpers.ClassFileInstaller` as a part of test-specific code, but `ClassFileInstaller` as part of shared testibrary directory in one test, when in the following test, jtreg sees `ClassFileInstaller` in the shared directory, hence javac won't recompile it/its dependencies, but in runtime `jdk.test.lib.helpers.ClassFileInstaller` is nowhere to be found, hence we get NCDFE.
>
> testing:
> - [x] `grep ' ClassFileInstaller[^.]`
> - [ ] tier1-3
>
> Thanks,
> -- Igor
I did this and scanned the differences (with the diff file from the webrev) and it looks reasonable to me.
grep '^[+-]' diff.txt | grep -v Copyright | grep -v '^.[+-]' | less
It looks like most of the changes are mechanical. There were only a few cases where manual changes were made. I trusted that you have tested those cases individually.
But I don't understand why this error can happen. It seems like jtreg would allow two test cases to interfere with each other.
-------------
Marked as reviewed by iklam (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/2985
More information about the core-libs-dev
mailing list