Investigate why there are duplicate testcases running in sanity and extended targets
Some hotspot tests are running both in sanity and extended.
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)
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.
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.
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.