RFR: 8336691: Test LongArgTest.java intermittent fails java.lang.NoClassDefFoundError: jdk/test/lib/Utils [v2]
Jaikiran Pai
jpai at openjdk.org
Thu Jul 18 12:30:38 UTC 2024
On Thu, 18 Jul 2024 07:30:47 GMT, SendaoYan <syan at openjdk.org> wrote:
>> Hi all,
>> The testcase `serviceability/attach/LongArgTest.java` intermittent fails `java.lang.NoClassDefFoundError: jdk/test/lib/Utils`. Jtreg doesn't automatically compile `jdk/test/lib/Utils.class` and `jdk/test/lib/apps/LingeredApp.class` etc.. Maybe it's a jtreg framework bug.
>> I think it's necessory to compile `jdk.test.lib.Utils` and `jdk.test.lib.apps.LingeredApp` explicitly.
>> Only change the testcase, the change has been verified, no risk.
>
> SendaoYan has updated the pull request incrementally with one additional commit since the last revision:
>
> delete @build LongArgTest
Hello Chen,
> Does this mean that even if libraries are imported with `@library /test/lib` they still need explicit `@build` commands? If that's the case, many core library tests need review as well.
Yes, jtreg does expect explicit `@build` for such library usages. It has this to say https://openjdk.org/jtreg/tag-spec.html:
> In general, classes in library directories are not automatically compiled as part of a compilation command explicitly naming the source files containing those classes. A test that relies upon library classes should contain appropriate @build directives to ensure that the classes will be compiled. It is strongly recommended that tests do not rely on the use of implicit compilation by the Java compiler. Such an approach is generally fragile, and may lead to incomplete recompilation when a test or library code has been modified.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/20228#issuecomment-2236372312
More information about the serviceability-dev
mailing list