[debugger] more stable tests

GitOrigin-RevId: e307d131dea1a24880c350aa3591fc98543f519a
This commit is contained in:
Egor Ushakov
2025-10-02 19:35:15 +00:00
committed by intellij-monorepo-bot
parent 3ceb41f3da
commit c6335b5ae9
3 changed files with 10 additions and 1 deletions
@@ -19,6 +19,7 @@ import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.channels.consumeEach
import kotlinx.coroutines.future.await
import kotlinx.coroutines.launch
import java.util.concurrent.CompletableFuture
import kotlin.coroutines.cancellation.CancellationException
/**
@@ -91,7 +92,13 @@ inline fun <T : Any, R> computeSafeIfAny(ep: ExtensionPointName<T>, processor: (
// TODO: move into VirtualMachineProxyImpl when converted to kotlin
fun preloadAllClasses(vm: VirtualMachine) {
DebuggerManagerThreadImpl.assertIsManagerThread()
val allClasses = DebuggerUtilsAsync.allCLasses(vm)
val allClasses =
if (Registry.`is`("debugger.preload.types.async", true)) {
DebuggerUtilsAsync.allCLasses(vm)
}
else {
CompletableFuture.completedFuture(vm.allClasses())
}
if (!Registry.`is`("debugger.preload.types.hierarchy", true) || DebuggerUtils.isAndroidVM(vm)) return
val channel = Channel<ReferenceType>(capacity = Channel.UNLIMITED)
@@ -630,6 +630,7 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas
ApplicationManagerEx.setInStressTest(true);
setRegistryPropertyForTest("debugger.track.instrumentation", "false");
setRegistryPropertyForTest("debugger.evaluate.single.threaded.timeout", "-1");
setRegistryPropertyForTest("debugger.preload.types.async", "false");
setRegistryPropertyForTest("debugger.preload.types.hierarchy", "false");
boolean dfa = ViewsGeneralSettings.getInstance().USE_DFA_ASSIST;
@@ -717,6 +717,7 @@ debugger.auto.attach.from.console.description=Auto attach to all processes avail
debugger.auto.attach.from.any.console=false
debugger.auto.attach.from.any.console.description=Auto attach to all processes from any console output
debugger.preload.event.info=true
debugger.preload.types.async=true
debugger.preload.types.hierarchy=true
debugger.preload.types.hierarchy.description=Request superclass and interfaces for each loaded class in advance to speed up further operations
debugger.sync.commands.reschedule.delay=50