From 3dc3ed4ca553cf6f4cec7d4d4193b03a9425113d Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 10 Jan 2023 14:09:52 +0100 Subject: [PATCH] Exclude `jdk.internal.*` in backend debug tests Otherwise `debug/stepping/enum.kt` starts failing as soon as we advance default language version to 1.9, because with the introduction of enum entries, enum's `` now invokes LambdaMetafactory which invokes its own bundled version of ASM located in `jdk.internal.org.objectweb.asm`, so we end up stepping over a lot of internal ASM code. `jdk.internal.*` is also excluded by default in the debugger settings in IntelliJ, so users will not observe this issue in practice. --- .../org/jetbrains/kotlin/test/backend/handlers/DebugRunner.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/DebugRunner.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/DebugRunner.kt index ae3d1ce0282..becc9cc770b 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/DebugRunner.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/DebugRunner.kt @@ -95,6 +95,7 @@ abstract class DebugRunner(testServices: TestServices) : JvmBoxRunner(testServic stepReq.addClassExclusionFilter("java.*") stepReq.addClassExclusionFilter("sun.*") stepReq.addClassExclusionFilter("kotlin.*") + stepReq.addClassExclusionFilter("jdk.internal.*") // Create class prepare request to be able to set breakpoints on class initializer lines. // There are no line stepping events for class initializers, so we depend on breakpoints. val prepareReq = manager.createClassPrepareRequest() @@ -102,6 +103,7 @@ abstract class DebugRunner(testServices: TestServices) : JvmBoxRunner(testServic prepareReq.addClassExclusionFilter("java.*") prepareReq.addClassExclusionFilter("sun.*") prepareReq.addClassExclusionFilter("kotlin.*") + prepareReq.addClassExclusionFilter("jdk.internal.*") } manager.stepRequests().map { it.enable() } manager.classPrepareRequests().map { it.enable() }