RFR(M): 8197959: [TESTBUG] Some (App)CDS tests requires modification due to there removal of the Java EE and CORBA modules
Calvin Cheung
calvin.cheung at oracle.com
Tue Apr 24 23:44:28 UTC 2018
Hi Ioi,
Thanks for your review.
On 4/19/18, 10:29 PM, Ioi Lam wrote:
> Hi Calvin,
>
> the changes look good. I have a few comments:
>
> [1] I think "@modules java.compiler" be added to all tests that use
> javax/annotation, which is provided by the java.compiler module.
I've added the missing "@modules java.compiler".
>
>
> [2] CheckAnonymousClass.java:
>
> I believe the old behavior was that when "--add-modules java.corba"
> was specified during dump time, some Lambda expressions were executed
> and thus some VM anonymous classes were loaded as a side effect.
>
> With the new version, I don't think any Lambda expressions are
> executed during dump time (because the normal module bootstrap code
> has been very careful in avoiding Lambda). Therefore, the new version
> doesn't test the intended behavior.
>
> The AnonVmClassesDuringDump.java test forces Lambda expressions to be
> executed during dump time (by using Java agents). Maybe the pattern
> matching in CheckAnonymousClass.java can be moved inside
> AnonVmClassesDuringDump.java? Then, we can delete
> CheckAnonymousClass.java
I've moved the pattern matching logic from CheckAnonymousClass.java to
AnonVmClassesDuringDump.java and delete the CheckAnonymousClass.java.
>
> [3] For this code:
>
> + CDSTestUtils.Result res = TestCommon.runWithModules(
> + prefix,
> + UPGRADEDMODS_DIR[upgradeModIdx].toString(),
> + MODS_DIR.toString(),
> + mid,
> + archiveClass, loaderName,
> "true"); // last 3 args passed to test
> +
> + output = res.getOutput();
> + try {
> + output.shouldContain(expectedException);
> + } catch (Exception e) {
> + TestCommon.checkCommonExecExceptions(output, e);
> }
>
> Is it because you don't care about the exit code? If so, you can do
> this:
>
>
> TestCommon.runWithModules(...)
> .ifNoMappingFailure(out ->
> out.shouldContain(expectedException));
>
>
> Then you don't need to directly access the output.
I've also made similar changes to another usage of
TestCommon.runWithModules() at lines 203-209 so that the
CDSTestUtils.getOuput method is no longer needed.
Updated webrevs:
incremental: http://cr.openjdk.java.net/~ccheung/8197959/webrev.00_01/
full: http://cr.openjdk.java.net/~ccheung/8197959/webrev.01/
thanks,
Calvin
>
> Thanks
> - Ioi
>
>
> On 4/18/18 3:32 PM, Calvin Cheung wrote:
>> JBS: https://bugs.openjdk.java.net/browse/JDK-8197959
>>
>> webrev: http://cr.openjdk.java.net/~ccheung/8197959/webrev.00/
>>
>> Fixing the affected CDS and AppCDS tests due to the removal of the
>> Java EE and CORBA modules.
>> Also removing the unneeded helper classes.
>>
>> It passed hs-tier1 through tier3 tests.
>>
>> thanks,
>> Calvin
>
More information about the hotspot-runtime-dev
mailing list