Fwd: Re: RFR: 8062536: [TESTBUG] Conflicting GC combinations in jdk tests

Dmitry Fazunenko dmitry.fazunenko at oracle.com
Thu Nov 6 10:22:46 UTC 2014


Hi Katja,

You are right, there will be no conflict, because test ignores any 
external VM flags.
So, adding @requires seems unnecessary here, but...

Ignoring external options is bad thing, such "selfish" tests are not 
applicable for other areas, like GC, compiler, RT.

@requires  will allow to modify tests to include external vm options 
without any risk of bumping into conflict and extend area of test 
applicability.

But if you still believe, that @requires is not necessary - it's not a 
problem, tests could be kept as is.

Thanks,
Dima


On 06.11.2014 16:27, Yekaterina Kantserova wrote:
>
> Hi Evgeniya,
>
> As David has pointed out these jps tests are not testing gc. The 
> -XX:+UseParallelGC is just an arbitrary chosen test flag. There should 
> not be any conflicts either since these tests are running in driver mode:
>
> ...
>  * @run driver TestJpsJar
> ...
>
> which means no flags from above are accepted.
>
> Thanks,
> Katja
>
>
>
> On 11/06/2014 11:05 AM, Evgeniya Stepanova wrote:
>> Hi David,
>>
>> tag added because tests contain string
>>  cmd.addAll(JpsHelper.getVmArgs());
>>
>> and JpsHelper defines
>> ...
>> public static final String[] VM_ARGS = {"-Xmx512m", 
>> "-XX:+UseParallelGC"};
>> ...
>> public static List<String> getVmArgs() throws IOException {
>>         if (testVmArgs == null) {
>>             testVmArgs = new ArrayList<>();
>>             testVmArgs.addAll(Arrays.asList(VM_ARGS));
>>             testVmArgs.add("-XX:Flags=" + 
>> getVmFlagsFile().getAbsolutePath());
>>         }
>>         return testVmArgs;
>>     }
>>
>> Tests itself wouldn't fail if we use another GC, tag added for 
>> cleanup-if we use for example SerialGC we must be sure that tests 
>> passed with this GC, not with another one. Now you will assume that 
>> concrete test passed with Serial GC, but it run only with Parallel 
>> GC. Plus there is no any sense to run test twice in TC (with 
>> different GC, since it use only Parallel)
>>
>> Thanks,
>> Evgeniya Stepanova
>> On 06.11.2014 6:20, David Holmes wrote:
>>> Hi Evgeniya,
>>>
>>> On 6/11/2014 1:33 AM, Evgeniya Stepanova wrote:
>>>> Hi,
>>>>
>>>> Please review changes for 8062536, the OpenJDK/jdk part of the 
>>>> JDK-8019361
>>>>
>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8062536
>>>> fix: http://cr.openjdk.java.net/~eistepan/8062536/webrev.00/
>>>>
>>>> Problem: Some tests explicitly set GC and fail when another GC is set
>>>> outside
>>>
>>> I don't see why you have done this for the
>>>
>>> test/sun/tools/jps/TestJps*.java
>>>
>>> tests. They don't set any GC flags.
>>>
>>>> Solution: Such tests marked with the jtreg tag "requires" to skip test
>>>> if there is a conflict
>>>
>>> Just wondering: Does a skipped test get a .jtr file showing it was 
>>> skipped; or does it only appear in the higher-level jtreg log?
>>>
>>> Thanks,
>>> David
>>>
>>>> Tested locally with different GC flags (-XX:+UseG1GC,
>>>> -XX:+UseParallelGC, -XX:+UseSerialGC, -XX:+UseConcMarkSweep and 
>>>> without
>>>> any GC flag). Tests are being excluded as expected. No tests failed
>>>> because of the conflict.
>>>>
>>>> Thanks,
>>>> Evgeniya Stepanova
>>>>
>>>> //
>>
>> -- 
>> /Evgeniya Stepanova/
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20141106/19038a51/attachment.html>


More information about the hotspot-gc-dev mailing list