RFR: Test @requires should check what GC is enabled at runtime

Roman Kennke rkennke at redhat.com
Fri Nov 30 16:14:47 UTC 2018


Ok

Am 30.11.18 um 17:12 schrieb Aleksey Shipilev:
> On 11/30/18 4:03 PM, Roman Kennke wrote:
>> Hi Aleksey,
>>
>>> http://cr.openjdk.java.net/~shade/shenandoah/requires-runtime/webrev.01/
>>>
>>> This rewires our @requires handling again! @requires is messy, and new filtering code is based on
>>> understanding that:
>>>  a) "vm.gc.Shenandoah" says "Shenandoah is available in builds, and can be selected"
>>>  b) "vm.gc == null" says "...and we are running with default GC"
>>>  c) "vm.gc = Shenandoah" says "...or user specified -XX:+UseShenandoahGC in jtreg opts"
>>
>> I assume that what you say is true :-) But...
>>
>> doesn't this mean that for our own tests, under gc/shenandoah, it is ok
>> & sufficient to have: @requires vm.gc.Shenandoah ? Because if it's
>> available in build, we can run the test, and then we set
>> -XX:+UseShenandoahGC ?
> 
> Wait a minute. I misunderstood the semantics of vm.gc.Shenandoah. It is actually "true" if
> -XX:+UseShenandoahGC can be set: it is supported by build, and no other GC is explicitly selected.
> So, for the tests that explicitly set -XX:+UseShenandoahGC we have to put @requires
> vm.gc.Shenandoah, and for other tests that _can_ be run with Shenandoah by external option, we
> should use @requires vm.gc != "Shenandoah".
> 
> This patch does so:
>   http://cr.openjdk.java.net/~shade/shenandoah/requires-runtime/webrev.02
> 
> Still passes the same battery of tests.
> 
> -Aleksey
> 



More information about the shenandoah-dev mailing list