RFR: 8287873: Add test for using -XX:+AutoCreateSharedArchive with different JDK versions

Ioi Lam iklam at openjdk.org
Thu Jan 5 19:51:52 UTC 2023


On Thu, 5 Jan 2023 19:25:07 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> This is an enhancement of the test case in [JDK-8296754](https://bugs.openjdk.org/browse/JDK-8296754), which tests against an archive created by the "boot JDK", which is usually set as the previous official JDK release when building the JDK repo.
>> 
>> If it's able to acquire previous valid JDK releases:
>>      - Download and install previous JDK versions (19 through N)
>>         where N == java.lang.Runtime.version​().major() - 1
>>      - Test the interaction of the current JDK versus each of the previous releases
>> 
>> If it's not able to find the previous releases revert to the existing logic in TestAutoCreateSharedArchiveUpgrade.java (use the test.boot.jdk or test.previous.jdk properties). Verified with tier1-4 tests.
>
> test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/TestAutoCreateSharedArchiveUpgrade.java line 80:
> 
>> 78: 
>> 79:         // Earliest testable version is 19
>> 80:         int n = java.lang.Runtime.version().major() - 1;
> 
> Can this just do n-1 and not download every release? So if JDK 20 works with JDK 19, then JDK 21 works with JDK 20 and transitively would work with 19?

I think we should start the loop from n-1 and go downwards. After the first iteration:


if (System.getProperty("test.autocreatesharedarchive.all.jdk.versions") == null) {
  break;
}


This should be enough for day-to-day testing. For thoroughness, we can add a task at tier 7 or 8 to specify `-Dtest.autocreatesharedarchive.all.jdk.versions` and check against all applicable JDK versions.

-------------

PR: https://git.openjdk.org/jdk/pull/11852


More information about the hotspot-runtime-dev mailing list