[9] RFR (M): 8067344: Adjust java/lang/invoke/LFCaching/LFGarbageCollectedTest.java for recent changes in java.lang.invoke

Joseph D. Darcy joe.darcy at oracle.com
Fri Jan 9 02:53:54 UTC 2015


Hello,

I don't have a comment on the changes to the test per se, but as someone 
who keeps an eye on test failures that occur in regression tests in the 
jdk repo of the JDK 9 dev forest, I'd like to see this test stop 
failing, either by the test being fixed for, barring that, the testing 
being @ignore-d in some way until the semantics of the test can be 
corrected.

Thanks,

-Joe

On 1/7/2015 3:16 AM, Paul Sandoz wrote:
> Hi
>
>    70             TestMethods testCase = getTestMethod();
>    71             if (testCase == TestMethods.EXACT_INVOKER || testCase == TestMethods.INVOKER) {
>    72                 // Invokers aren't collected.
>    73                 return;
>    74             }
>
> Can you just filter those test cases out in the main method within EnumSet.complementOf?
>
> On Dec 23, 2014, at 1:40 PM, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:
>
>> Spotted some more problems:
>>   - need to skip identity operations (identity_* LambdaForms) in the test, since corresponding LambdaForms reside in a permanent cache;
>>
>    82             mtype = adapter.type();
>    83             if (mtype.parameterCount() == 0) {
>    84                 // Ignore identity_* LambdaForms.
>    85                 return;
>    86             }
>
> Under what conditions does this arise? i guess it might be non-determinisitic based on the randomly generated arity for the test case, so could filter more tests than absolutely required?
>
>
>>   - need to keep original test data for diagnostic purposes, since getTestCaseData() produces new instance.
>>
>    78                 adapter = getTestMethod().getTestCaseMH(data, TestMethods.Kind.ONE);
>
>
> Could replace "getTestMethod()" with "testCase".
>
> Paul.
>
>> Updated version:
>> http://cr.openjdk.java.net/~vlivanov/8067344/webrev.01/
>>
>> Best regards,
>> Vladimir Ivanov
>>
>> On 12/22/14 11:53 PM, Vladimir Ivanov wrote:
>>> http://cr.openjdk.java.net/~vlivanov/8067344/webrev.00/
>>> https://bugs.openjdk.java.net/browse/JDK-8067344
>>>
>>> LFGarbageCollectedTest should be adjusted after JDK-8057020.
>>>
>>> There are a couple of problems with the test.
>>>
>>> (1) Existing logic to test that LambdaForm instance is collected isn't
>>> stable enough. Consequent System.GCs can hinder reference enqueueing.
>>> To speed up the test, I added -XX:SoftRefLRUPolicyMSPerMB=0 and limited
>>> the heap by -Xmx64m.
>>>
>>> (2) MethodType-based invoker caches are deliberately left strongly
>>> reachable. So, they should be skipped in the test.
>>>
>>> (3) Added additional diagnostic output to simplify failure analysis
>>> (test case details, method handle type and LambdaForm, heap dump
>>> (optional, -DHEAP_DUMP=true)).
>>>
>>> Testing: failing test.
>>>
>>> Thanks!
>>>
>>> Best regards,
>>> Vladimir Ivanov
>> _______________________________________________
>> mlvm-dev mailing list
>> mlvm-dev at openjdk.java.net
>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev




More information about the core-libs-dev mailing list