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

Paul Sandoz paul.sandoz at oracle.com
Wed Jan 7 11:16:20 UTC 2015


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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 841 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://mail.openjdk.java.net/pipermail/mlvm-dev/attachments/20150107/2a509ec4/signature-0001.asc>


More information about the mlvm-dev mailing list