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 `<clinit>` 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.
This commit is contained in:
Alexander Udalov
2023-01-10 14:09:52 +01:00
committed by Space Team
parent 38d55757b3
commit 3dc3ed4ca5
@@ -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() }