diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/JvmBoxRunner.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/JvmBoxRunner.kt index 59d968b9400..11fc685b5ad 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/JvmBoxRunner.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/JvmBoxRunner.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.TestJdkKind import org.jetbrains.kotlin.test.clientserver.TestProxy import org.jetbrains.kotlin.test.directives.CodegenTestDirectives +import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.ATTACH_DEBUGGER import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.JDK_KIND import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.ENABLE_JVM_PREVIEW import org.jetbrains.kotlin.test.directives.model.singleOrZeroValue @@ -202,6 +203,7 @@ class JvmBoxRunner(testServices: TestServices) : JvmBinaryArtifactHandler(testSe val command = listOfNotNull( javaExe.absolutePath, + runIf(ATTACH_DEBUGGER in module.directives) { "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" }, "-ea", runIf(ENABLE_JVM_PREVIEW in module.directives) { "--enable-preview" }, "-classpath", diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/directives/CodegenTestDirectives.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/directives/CodegenTestDirectives.kt index 2a871a6ab59..05817a5ebd9 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/directives/CodegenTestDirectives.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/directives/CodegenTestDirectives.kt @@ -151,4 +151,17 @@ object CodegenTestDirectives : SimpleDirectivesContainer() { structure of test """.trimIndent() ) + + val ATTACH_DEBUGGER by directive( + description = """ + This directive can be used to attach debugger to instance of JVM which + is used to run `box` test in case it runs in separate JVM instance + (e.g. when this case should be ran on some modern JDK like JDK 17) + + After running test run remote debugger on port 5005 (test will wait until + debugger won't be attached) + + Please don't forget to remove this directive after debug session is over + """.trimIndent() + ) }