RFR: 8287873: Add test for using -XX:+AutoCreateSharedArchive with different JDK versions
Ioi Lam
iklam at openjdk.org
Thu Jan 5 06:12:49 UTC 2023
On Wed, 4 Jan 2023 20:07:48 GMT, Matias Saavedra Silva <matsaave 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 connect to an artifactory that hosts valid JDK releases:
> - Download and install previous JDK versions (19 through N) from the artifactory
> 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 connect to such an artifactory, 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 85:
> 83: setupJVMs(os);
> 84: doTest();
> 85: }
If fetchBootJDK() cannot connect to the artifactory, it will always returns the same path regardless of the version. In that case, we shouldn't call doTest() more than once.
test/lib/jdk/test/lib/artifacts/Artifact.java line 44:
> 42: int version() default 0;
> 43: int build_number() default 0;
> 44: String file() default "";
Are the changes in this file still needed? I think you were using Artifact and annotations in an earlier version of TestAutoCreateSharedArchiveUpgrade.java, but that would result in lots of duplications across {JDK versions} x { platforms}. That's why you chose to go with a lower-level API (the new ArtifactResolver.::resolve() method) so you can build the Map programmatically.
-------------
PR: https://git.openjdk.org/jdk/pull/11852
More information about the build-dev
mailing list