From 15d6469e8da635364c0ba83e425fd149c2d69495 Mon Sep 17 00:00:00 2001 From: Richard Reingruber Date: Wed, 22 Jan 2025 07:02:40 +0000 Subject: [PATCH] 8347817: Timeouts running test/jdk/java/lang/String/concat/HiddenClassUnloading.java with fastdebug builds Reviewed-by: clanger, mbaesken, mdoerr --- .../lang/String/concat/HiddenClassUnloading.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/test/jdk/java/lang/String/concat/HiddenClassUnloading.java b/test/jdk/java/lang/String/concat/HiddenClassUnloading.java index fef6455a05f..8505ae2522b 100644 --- a/test/jdk/java/lang/String/concat/HiddenClassUnloading.java +++ b/test/jdk/java/lang/String/concat/HiddenClassUnloading.java @@ -26,13 +26,20 @@ import java.lang.StringBuilder; import java.lang.invoke.*; import java.lang.management.ManagementFactory; +import jdk.test.whitebox.WhiteBox; + /** * @test * @summary Test whether the hidden class unloading of StringConcatFactory works * + * @library /test/lib + * @build jdk.test.whitebox.WhiteBox + * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox * @requires vm.flagless - * @run main/othervm -Xmx8M -Xms8M -Xverify:all HiddenClassUnloading - * @run main/othervm -Xmx8M -Xms8M -Xverify:all -XX:-CompactStrings HiddenClassUnloading + * @run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:. + * -Xverify:all HiddenClassUnloading + * @run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:. + * -Xverify:all -XX:-CompactStrings HiddenClassUnloading */ public class HiddenClassUnloading { public static void main(String[] args) throws Throwable { @@ -43,7 +50,7 @@ public class HiddenClassUnloading { long initUnloadedClassCount = ManagementFactory.getClassLoadingMXBean().getUnloadedClassCount(); - for (int i = 0; i < 12000; i++) { + for (int i = 0; i < 2000; i++) { int radix = types.length; String str = Integer.toString(i, radix); int length = str.length(); @@ -61,6 +68,9 @@ public class HiddenClassUnloading { ); } + // Request GC which performs class unloading + WhiteBox.getWhiteBox().fullGC(); + long unloadedClassCount = ManagementFactory.getClassLoadingMXBean().getUnloadedClassCount(); if (initUnloadedClassCount == unloadedClassCount) { throw new RuntimeException("unloadedClassCount is zero");