aqa-tests icon indicating copy to clipboard operation
aqa-tests copied to clipboard

Investigate why there are duplicate testcases running in sanity and extended targets

Open sophia-guo opened this issue 4 months ago • 4 comments

Some hotspot tests are running both in sanity and extended.

sophia-guo avatar Sep 09 '25 18:09 sophia-guo

Initially most hotspot jtreg tests are enabled as extended except tests under sanity/, which was enabled as testcases hotspot_sanity specifically as sanity.

To be able to run hotspot tier1 targets using aqa targets hotspot tier1 targets. were added as sanity. https://github.com/adoptium/aqa-tests/pull/5648 . https://github.com/search?q=repo%3Aadoptium%2Faqa-tests%20tier1_&type=code Those limited set of tests are subset of other groups. e.g.

hotspot_tier1_compiler( sanity ) subset of hotspot_compiler ( extended) hotspot_tier1_runtime( sanity ) subset of hotspot_runtime ( extended) hotspot_tier1_gc (sanity ) subset of hotspot_gc ( extended) hotspot_tier1_serviceability(sanity ) subset of serviceability ( extended)

sophia-guo avatar Sep 09 '25 18:09 sophia-guo

hotspot_sanity is subset of hotspot_tier1_runtime https://github.com/openjdk/jdk/blob/84751cbfddf69bd9ed6bc5c39f8e056009440331/test/hotspot/jtreg/TEST.groups#L384-L426, so it can be deleted.

sophia-guo avatar Sep 09 '25 18:09 sophia-guo

As for hotspot_tier1_compiler subset of hotspot_compiler it seems jtreg doesn't support an easy way to do the subtract by command line. It does support to do the subtraction when using TESTS.groops. We can double check if it supports subtraction in command line otherwise we may need find other way outside of jtreg to avoid the duplication.

sophia-guo avatar Sep 09 '25 18:09 sophia-guo

Yes, duplication is little unfortunate. One way to avoid this would be using other tiered groups. I investigated this a bit, it would look like so:

Compiler: sanity: tier1_compiler extended: tier2_compiler (17+) tier3_compiler (17+)

(tier3_compiler is hotspot_compiler without tier2_compiler, tier1_compiler. On jdk11, there does not seem to be test group(s), which would complement tier1_compiler :( )

Runtime: sanity: tier1_runtime extended: hotspot_tier2_runtime hotspot_tier2_runtime_platform_agnostic hotspot_tier3_runtime

(hotspot_tier3_runtime is all runtime without lower tiers)

Serviceability: sanity: tier1_serviceability extended: hotspot_tier2_serviceability (17+)

(hotspot_tier2_serviceability contains all serviceability except for tier1_serviceability. On jdk11, serviceability, not in tier1_serviceability, is in hotspot_tier3_runtime)

GC: Sanity: tier1_gc extended: tier2_gc_epsilon (17+) tier2_gc_shenandoah tier3_gc_gcold (21+) tier3_gc_shenandoah

(seems like, this should cover all gc tests. EDIT: few tests seem to be missing, like some tests in gc/stress.)

JDK 8: On jdk8 situation is easy. hotspot_tier1 runs all hotspot tests, so whole thing is in sanity.

zzambers avatar Oct 20 '25 15:10 zzambers