RFR: 8287873: Add test for using -XX:+AutoCreateSharedArchive with different JDK versions [v2]
Ioi Lam
iklam at openjdk.org
Fri Jan 6 19:03:22 UTC 2023
On Fri, 6 Jan 2023 13:47:22 GMT, Erik Joelsson <erikj at openjdk.org> wrote:
>> Matias Saavedra Silva has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains eight additional commits since the last revision:
>>
>> - Fixed jib.sh
>> - Removed prints
>> - Ioi comments and jib.sh restored
>> - Merge branch 'master' into sharedArchiveTest_8287873
>> - Removing unused code
>> - Removed file added by mistake
>> - Defaults to old functionality on failure
>> - 8287873: Add test for using -XX:+AutoCreateSharedArchive with different JDK versions
>
> test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/TestAutoCreateSharedArchiveUpgrade.java line 62:
>
>> 60: // "make test TEST=test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/TestAutoCreateSharedArchiveUpgrade.java",
>> 61: // the test.boot.jdk property is normally passed by make/RunTests.gmk
>> 62: private static String BOOT_JDK;
>
> Could we please call this something else? The concept of the BOOT_JDK is a rather specific thing in the JDK build process. This test is using the build's BOOT_JDK as a default for "a JDK of some older version than the current". Calling that "BOOT_JDK" in this test is confusing at least to me.
>
> Perhaps something like `OLD_JDK` would be more suitable?
Actually OLD_JDK would be confusing because we also have PREV_JDK. This is the original code before this PR:
// If you're running this test manually, specify the location of a previous version of
// the JDK using "jtreg -vmoption:-Dtest.previous.jdk=${JDK19_HOME} ..."
private static final String PREV_JDK = System.getProperty("test.previous.jdk", null);
// If you're unning this test using something like
// "make test TEST=test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/TestAutoCreateSharedArchiveUpgrade.java",
// the test.boot.jdk property is passed by make/RunTests.gmk
private static final String BOOT_JDK = System.getProperty("test.boot.jdk", null);
So the problem with this PR is it overloads the meaning of BOOT_JDK. I think it's better to do something like this:
static void setupJVMs(int fetchVersion) throws Throwable {
....
if (fetchVersion> 0) {
oldJVM = fetchJDK(fetchVersion) + FS + "bin" + FS + "java";
} else if (PREV_JDK != null) {
oldJVM = PREV_JDK + FS + "bin" + FS + "java";
} else if (BOOT_JDK != null) {
oldJVM = BOOT_JDK + FS + "bin" + FS + "java";
} else {
-------------
PR: https://git.openjdk.org/jdk/pull/11852
More information about the build-dev
mailing list