From ad83ec27f595e94f60b49135325a2ef606cb7920 Mon Sep 17 00:00:00 2001 From: kshefov Date: Mon, 22 Sep 2014 15:56:49 +0400 Subject: [PATCH] 8058728: TEST_BUG: Make java/lang/invoke/LFCaching/LFGarbageCollectedTest.java skip arrayElementSetter and arrayElementGetter methods Reviewed-by: vlivanov, iignatyev, psandoz --- .../LFCaching/LFGarbageCollectedTest.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/test/java/lang/invoke/LFCaching/LFGarbageCollectedTest.java b/test/java/lang/invoke/LFCaching/LFGarbageCollectedTest.java index dfa6f58f5..3b9ed4dea 100644 --- a/test/java/lang/invoke/LFCaching/LFGarbageCollectedTest.java +++ b/test/java/lang/invoke/LFCaching/LFGarbageCollectedTest.java @@ -31,14 +31,13 @@ * @build TestMethods * @build LambdaFormTestCase * @build LFGarbageCollectedTest - * @run main/othervm/timeout=600 -Djava.lang.invoke.MethodHandle.USE_LF_EDITOR=true -DtestLimit=150 -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI LFGarbageCollectedTest + * @run main/othervm/timeout=600 -Djava.lang.invoke.MethodHandle.USE_LF_EDITOR=true -DtestLimit=150 LFGarbageCollectedTest */ import java.lang.invoke.MethodHandle; import java.lang.ref.PhantomReference; import java.lang.ref.ReferenceQueue; import java.lang.reflect.InvocationTargetException; -import java.util.Arrays; import java.util.EnumSet; import java.util.Map; @@ -94,10 +93,16 @@ public final class LFGarbageCollectedTest extends LambdaFormTestCase { * @param args Accepts no arguments. */ public static void main(String[] args) { - // The "identity" and "constant" methods should be removed from this test, - // because their lambda forms are stored in a static filed and are not GC'ed. - // There can be only 5 such LFs for each method, so no memory leak happens. - EnumSet testMethods = EnumSet.complementOf(EnumSet.of(TestMethods.IDENTITY, TestMethods.CONSTANT)); + // The "identity", "constant", "arrayElementGetter" and "arrayElementSetter" + // methods should be removed from this test, + // because their lambda forms are stored in a static field and are not GC'ed. + // There can be only a finite number of such LFs for each method, + // so no memory leak happens. + EnumSet testMethods = EnumSet.complementOf(EnumSet.of( + TestMethods.IDENTITY, + TestMethods.CONSTANT, + TestMethods.ARRAY_ELEMENT_GETTER, + TestMethods.ARRAY_ELEMENT_SETTER)); LambdaFormTestCase.runTests(LFGarbageCollectedTest::new, testMethods); } } -- GitLab