From 119302b0167515768e2e3f53de59ef947c7270eb Mon Sep 17 00:00:00 2001 From: Mads Ager Date: Thu, 6 Aug 2020 14:25:29 +0200 Subject: [PATCH] [JVM_IR] Run KotlinSteppingTests with the JVM_IR backend. Implement support for supressing failures by backend. --- .../kotlin/generators/tests/GenerateTests.kt | 25 + .../test/AbstractIrKotlinSteppingTest.kt | 10 + .../test/DebuggerTestCompilerFacility.kt | 26 +- .../test/IrKotlinSteppingTestGenerated.java | 1309 +++++++++++++++++ .../debugger/test/KotlinDescriptorTestCase.kt | 6 +- .../debugger/test/util/KotlinOutputChecker.kt | 18 +- .../testData/stepping/custom/coroutine.out | 1 + .../testData/stepping/custom/initBlocks.out | 1 + .../custom/smartStepIntoConstructor.out | 1 + .../custom/smartStepIntoInterfaceImpl.out | 1 + .../custom/smartStepIntoWithDelegates.out | 1 + .../filters/stepIntoMultiFileFacade.out | 1 + .../testData/stepping/stepInto/accessors.out | 1 + .../stepping/stepInto/functionReference.out | 1 + .../stepIntoSuspendFunctionSimple.out | 1 + .../stepping/stepInto/syntheticMethods.out | 1 + .../testData/stepping/stepInto/whenExpr.out | 1 + .../stepping/stepOut/fwBackingField.out | 1 + .../stepOver/coroutines/sequenceNested.out | 1 + .../stepOver/coroutines/sequenceNested2.out | 1 + .../stepOver/coroutines/sequenceSimple.out | 1 + .../testData/stepping/stepOver/kt34905.out | 1 + ...erExtensionLambdaArgumentCallInInline3.out | 1 + .../stepping/stepOver/soInlineLibFun.out | 1 + .../stepOver/soSuspendableCallInEndOfFun.out | 1 + .../stepOver/stepOverInlinedLambdaStdlib.out | 1 + .../stepOver/stepOverWhenWithInline.out | 1 + 27 files changed, 1407 insertions(+), 8 deletions(-) create mode 100644 idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/AbstractIrKotlinSteppingTest.kt create mode 100644 idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinSteppingTestGenerated.java diff --git a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index 133dee60fc4..bab8b977475 100644 --- a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -216,6 +216,31 @@ fun main(args: Array) { model("stepping/custom", pattern = KT_WITHOUT_DOTS_IN_NAME, testMethod = "doCustomTest") } + testClass { + model( + "stepping/stepIntoAndSmartStepInto", + pattern = KT_WITHOUT_DOTS_IN_NAME, + testMethod = "doStepIntoTest", + testClassName = "StepInto" + ) + model( + "stepping/stepIntoAndSmartStepInto", + pattern = KT_WITHOUT_DOTS_IN_NAME, + testMethod = "doSmartStepIntoTest", + testClassName = "SmartStepInto" + ) + model( + "stepping/stepInto", + pattern = KT_WITHOUT_DOTS_IN_NAME, + testMethod = "doStepIntoTest", + testClassName = "StepIntoOnly" + ) + model("stepping/stepOut", pattern = KT_WITHOUT_DOTS_IN_NAME, testMethod = "doStepOutTest") + model("stepping/stepOver", pattern = KT_WITHOUT_DOTS_IN_NAME, testMethod = "doStepOverTest") + model("stepping/filters", pattern = KT_WITHOUT_DOTS_IN_NAME, testMethod = "doStepIntoTest") + model("stepping/custom", pattern = KT_WITHOUT_DOTS_IN_NAME, testMethod = "doCustomTest") + } + testClass { model("evaluation/singleBreakpoint", testMethod = "doSingleBreakpointTest") model("evaluation/multipleBreakpoints", testMethod = "doMultipleBreakpointsTest") diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/AbstractIrKotlinSteppingTest.kt b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/AbstractIrKotlinSteppingTest.kt new file mode 100644 index 00000000000..7a732180f3c --- /dev/null +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/AbstractIrKotlinSteppingTest.kt @@ -0,0 +1,10 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea.debugger.test + +abstract class AbstractIrKotlinSteppingTest : AbstractKotlinSteppingTest() { + override fun useIrBackend() = true +} \ No newline at end of file diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/DebuggerTestCompilerFacility.kt b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/DebuggerTestCompilerFacility.kt index c8985e18e1c..65063f6c830 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/DebuggerTestCompilerFacility.kt +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/DebuggerTestCompilerFacility.kt @@ -16,6 +16,9 @@ import com.intellij.openapi.vfs.LocalFileSystem import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.newvfs.ArchiveFileSystem import com.intellij.psi.PsiManager +import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig +import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory +import org.jetbrains.kotlin.backend.jvm.jvmPhases import org.jetbrains.kotlin.caches.resolve.KotlinCacheService import org.jetbrains.kotlin.cli.common.output.writeAllTo import org.jetbrains.kotlin.cli.jvm.compiler.findMainClass @@ -35,7 +38,11 @@ import org.jetbrains.kotlin.test.MockLibraryUtil import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase import java.io.File -class DebuggerTestCompilerFacility(files: List, private val jvmTarget: JvmTarget) { +class DebuggerTestCompilerFacility( + files: List, + private val jvmTarget: JvmTarget, + private val useIrBackend: Boolean +) { private val kotlinStdlibPath = ForTestCompileRuntime.runtimeJarForTests().absolutePath private val mainFiles: TestFilesByLanguage @@ -86,11 +93,17 @@ class DebuggerTestCompilerFacility(files: List, private val jvmTarget: if (kotlinStdlibInMavenArtifacts() == null) mavenArtifacts.add(kotlinStdlibPath) + val options = mutableListOf("-jvm-target", jvmTarget.description) + + if (useIrBackend) { + options.add("-Xuse-ir") + } + if (kotlin.isNotEmpty()) { MockLibraryUtil.compileKotlin( srcDir.absolutePath, classesDir, - listOf("-jvm-target", jvmTarget.description), + options, *(mavenArtifacts.toTypedArray()) ) } @@ -162,10 +175,17 @@ class DebuggerTestCompilerFacility(files: List, private val jvmTarget: val configuration = CompilerConfiguration() configuration.put(JVMConfigurationKeys.JVM_TARGET, jvmTarget) + configuration.put(JVMConfigurationKeys.IR, useIrBackend) val state = GenerationState.Builder(project, ClassBuilderFactories.BINARIES, moduleDescriptor, bindingContext, files, configuration) .generateDeclaredClassFilter(GenerationState.GenerateClassFilter.GENERATE_ALL) - .codegenFactory(DefaultCodegenFactory) + .codegenFactory( + if (useIrBackend) { + JvmIrCodegenFactory(PhaseConfig(jvmPhases)) + } else { + DefaultCodegenFactory + } + ) .build() KotlinCodegenFacade.compileCorrectFiles(state) diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinSteppingTestGenerated.java b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinSteppingTestGenerated.java new file mode 100644 index 00000000000..af4b9e3b882 --- /dev/null +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinSteppingTestGenerated.java @@ -0,0 +1,1309 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea.debugger.test; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; +import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.runner.RunWith; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@RunWith(JUnit3RunnerWithInners.class) +public class IrKotlinSteppingTestGenerated extends AbstractIrKotlinSteppingTest { + @TestMetadata("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class StepInto extends AbstractIrKotlinSteppingTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doStepIntoTest, this, testDataFilePath); + } + + public void testAllFilesPresentInStepInto() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @TestMetadata("classObjectFunFromClass.kt") + public void testClassObjectFunFromClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/classObjectFunFromClass.kt"); + } + + @TestMetadata("classObjectFunFromTopLevel.kt") + public void testClassObjectFunFromTopLevel() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/classObjectFunFromTopLevel.kt"); + } + + @TestMetadata("extFun.kt") + public void testExtFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/extFun.kt"); + } + + @TestMetadata("javaFun.kt") + public void testJavaFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/javaFun.kt"); + } + + @TestMetadata("javaSamConstructor.kt") + public void testJavaSamConstructor() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/javaSamConstructor.kt"); + } + + @TestMetadata("javaSamFunction.kt") + public void testJavaSamFunction() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/javaSamFunction.kt"); + } + + @TestMetadata("kotlinSamFunction.kt") + public void testKotlinSamFunction() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/kotlinSamFunction.kt"); + } + + @TestMetadata("memberFunFromClass.kt") + public void testMemberFunFromClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/memberFunFromClass.kt"); + } + + @TestMetadata("memberFunFromTopLevel.kt") + public void testMemberFunFromTopLevel() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/memberFunFromTopLevel.kt"); + } + + @TestMetadata("memberGetterFromClass.kt") + public void testMemberGetterFromClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/memberGetterFromClass.kt"); + } + + @TestMetadata("memberGetterFromTopLevel.kt") + public void testMemberGetterFromTopLevel() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/memberGetterFromTopLevel.kt"); + } + + @TestMetadata("objectFun.kt") + public void testObjectFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/objectFun.kt"); + } + + @TestMetadata("topLevelFunFromClass.kt") + public void testTopLevelFunFromClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/topLevelFunFromClass.kt"); + } + + @TestMetadata("topLevelFunFromTopLevel.kt") + public void testTopLevelFunFromTopLevel() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/topLevelFunFromTopLevel.kt"); + } + + @TestMetadata("topLevelGetterFromClass.kt") + public void testTopLevelGetterFromClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/topLevelGetterFromClass.kt"); + } + + @TestMetadata("topLevelGetterFromTopLevel.kt") + public void testTopLevelGetterFromTopLevel() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/topLevelGetterFromTopLevel.kt"); + } + } + + @TestMetadata("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class SmartStepInto extends AbstractIrKotlinSteppingTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doSmartStepIntoTest, this, testDataFilePath); + } + + public void testAllFilesPresentInSmartStepInto() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @TestMetadata("classObjectFunFromClass.kt") + public void testClassObjectFunFromClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/classObjectFunFromClass.kt"); + } + + @TestMetadata("classObjectFunFromTopLevel.kt") + public void testClassObjectFunFromTopLevel() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/classObjectFunFromTopLevel.kt"); + } + + @TestMetadata("extFun.kt") + public void testExtFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/extFun.kt"); + } + + @TestMetadata("javaFun.kt") + public void testJavaFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/javaFun.kt"); + } + + @TestMetadata("javaSamConstructor.kt") + public void testJavaSamConstructor() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/javaSamConstructor.kt"); + } + + @TestMetadata("javaSamFunction.kt") + public void testJavaSamFunction() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/javaSamFunction.kt"); + } + + @TestMetadata("kotlinSamFunction.kt") + public void testKotlinSamFunction() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/kotlinSamFunction.kt"); + } + + @TestMetadata("memberFunFromClass.kt") + public void testMemberFunFromClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/memberFunFromClass.kt"); + } + + @TestMetadata("memberFunFromTopLevel.kt") + public void testMemberFunFromTopLevel() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/memberFunFromTopLevel.kt"); + } + + @TestMetadata("memberGetterFromClass.kt") + public void testMemberGetterFromClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/memberGetterFromClass.kt"); + } + + @TestMetadata("memberGetterFromTopLevel.kt") + public void testMemberGetterFromTopLevel() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/memberGetterFromTopLevel.kt"); + } + + @TestMetadata("objectFun.kt") + public void testObjectFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/objectFun.kt"); + } + + @TestMetadata("topLevelFunFromClass.kt") + public void testTopLevelFunFromClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/topLevelFunFromClass.kt"); + } + + @TestMetadata("topLevelFunFromTopLevel.kt") + public void testTopLevelFunFromTopLevel() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/topLevelFunFromTopLevel.kt"); + } + + @TestMetadata("topLevelGetterFromClass.kt") + public void testTopLevelGetterFromClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/topLevelGetterFromClass.kt"); + } + + @TestMetadata("topLevelGetterFromTopLevel.kt") + public void testTopLevelGetterFromTopLevel() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepIntoAndSmartStepInto/topLevelGetterFromTopLevel.kt"); + } + } + + @TestMetadata("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class StepIntoOnly extends AbstractIrKotlinSteppingTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doStepIntoTest, this, testDataFilePath); + } + + @TestMetadata("accessors.kt") + public void testAccessors() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/accessors.kt"); + } + + public void testAllFilesPresentInStepIntoOnly() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @TestMetadata("continueLabel.kt") + public void testContinueLabel() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/continueLabel.kt"); + } + + @TestMetadata("defaultAccessors.kt") + public void testDefaultAccessors() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/defaultAccessors.kt"); + } + + @TestMetadata("forLoop.kt") + public void testForLoop() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/forLoop.kt"); + } + + @TestMetadata("functionReference.kt") + public void testFunctionReference() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/functionReference.kt"); + } + + @TestMetadata("inlineClass.kt") + public void testInlineClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/inlineClass.kt"); + } + + @TestMetadata("inlineOnly.kt") + public void testInlineOnly() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/inlineOnly.kt"); + } + + @TestMetadata("propertyReference.kt") + public void testPropertyReference() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/propertyReference.kt"); + } + + @TestMetadata("returnVoid.kt") + public void testReturnVoid() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/returnVoid.kt"); + } + + @TestMetadata("samAdapter.kt") + public void testSamAdapter() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/samAdapter.kt"); + } + + @TestMetadata("sameFileNames.kt") + public void testSameFileNames() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/sameFileNames.kt"); + } + + @TestMetadata("siSuspendFun.kt") + public void testSiSuspendFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/siSuspendFun.kt"); + } + + @TestMetadata("skipSimpleGetter.kt") + public void testSkipSimpleGetter() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/skipSimpleGetter.kt"); + } + + @TestMetadata("skipSimpleGetterLocalVal.kt") + public void testSkipSimpleGetterLocalVal() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/skipSimpleGetterLocalVal.kt"); + } + + @TestMetadata("skipSimpleGetterMethodWithProperty.kt") + public void testSkipSimpleGetterMethodWithProperty() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/skipSimpleGetterMethodWithProperty.kt"); + } + + @TestMetadata("stepIntoFromInlineFun.kt") + public void testStepIntoFromInlineFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/stepIntoFromInlineFun.kt"); + } + + @TestMetadata("stepIntoInlineFun.kt") + public void testStepIntoInlineFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/stepIntoInlineFun.kt"); + } + + @TestMetadata("stepIntoStdLibInlineFun.kt") + public void testStepIntoStdLibInlineFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/stepIntoStdLibInlineFun.kt"); + } + + @TestMetadata("stepIntoSuspendFunctionSimple.kt") + public void testStepIntoSuspendFunctionSimple() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/stepIntoSuspendFunctionSimple.kt"); + } + + @TestMetadata("syntheticMethods.kt") + public void testSyntheticMethods() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/syntheticMethods.kt"); + } + + @TestMetadata("syntheticMethodsSkip.kt") + public void testSyntheticMethodsSkip() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/syntheticMethodsSkip.kt"); + } + + @TestMetadata("traits.kt") + public void testTraits() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/traits.kt"); + } + + @TestMetadata("whenExpr.kt") + public void testWhenExpr() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/whenExpr.kt"); + } + } + + @TestMetadata("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOut") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class StepOut extends AbstractIrKotlinSteppingTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doStepOutTest, this, testDataFilePath); + } + + public void testAllFilesPresentInStepOut() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOut"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @TestMetadata("fwBackingField.kt") + public void testFwBackingField() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOut/fwBackingField.kt"); + } + + @TestMetadata("inapplicableFieldWatchpoints.kt") + public void testInapplicableFieldWatchpoints() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOut/inapplicableFieldWatchpoints.kt"); + } + + @TestMetadata("souSuspendFun.kt") + public void testSouSuspendFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOut/souSuspendFun.kt"); + } + + @TestMetadata("stepOutInlineFunction.kt") + public void testStepOutInlineFunction() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOut/stepOutInlineFunction.kt"); + } + + @TestMetadata("stepOutInlinedLambdaArgument.kt") + public void testStepOutInlinedLambdaArgument() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOut/stepOutInlinedLambdaArgument.kt"); + } + + @TestMetadata("stepOutInlinedLambdaArgumentOneLine.kt") + public void testStepOutInlinedLambdaArgumentOneLine() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOut/stepOutInlinedLambdaArgumentOneLine.kt"); + } + + @TestMetadata("stepOutSeveralInlineArgumentDeepest.kt") + public void testStepOutSeveralInlineArgumentDeepest() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOut/stepOutSeveralInlineArgumentDeepest.kt"); + } + + @TestMetadata("stepOutSeveralInlineFunctions.kt") + public void testStepOutSeveralInlineFunctions() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOut/stepOutSeveralInlineFunctions.kt"); + } + + @TestMetadata("stepOutSeveralInlineFunctionsDeepest.kt") + public void testStepOutSeveralInlineFunctionsDeepest() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOut/stepOutSeveralInlineFunctionsDeepest.kt"); + } + } + + @TestMetadata("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class StepOver extends AbstractIrKotlinSteppingTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doStepOverTest, this, testDataFilePath); + } + + public void testAllFilesPresentInStepOver() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @TestMetadata("asIterableInFor.kt") + public void testAsIterableInFor() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/asIterableInFor.kt"); + } + + @TestMetadata("ifCapturedVariableKt9118.kt") + public void testIfCapturedVariableKt9118() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/ifCapturedVariableKt9118.kt"); + } + + @TestMetadata("inlineCallInForRangeExpression.kt") + public void testInlineCallInForRangeExpression() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineCallInForRangeExpression.kt"); + } + + @TestMetadata("inlineFunInClassInitializer.kt") + public void testInlineFunInClassInitializer() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineFunInClassInitializer.kt"); + } + + @TestMetadata("inlineFunInClassInitializer2.kt") + public void testInlineFunInClassInitializer2() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineFunInClassInitializer2.kt"); + } + + @TestMetadata("inlineFunInConstructor.kt") + public void testInlineFunInConstructor() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineFunInConstructor.kt"); + } + + @TestMetadata("inlineFunInLazyProperty.kt") + public void testInlineFunInLazyProperty() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineFunInLazyProperty.kt"); + } + + @TestMetadata("inlineFunInPropertyGetter.kt") + public void testInlineFunInPropertyGetter() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineFunInPropertyGetter.kt"); + } + + @TestMetadata("inlineFunctionSameLines.kt") + public void testInlineFunctionSameLines() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineFunctionSameLines.kt"); + } + + @TestMetadata("inlineInIfFalse.kt") + public void testInlineInIfFalse() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineInIfFalse.kt"); + } + + @TestMetadata("inlineInIfTrue.kt") + public void testInlineInIfTrue() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineInIfTrue.kt"); + } + + @TestMetadata("inlineInObject.kt") + public void testInlineInObject() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineInObject.kt"); + } + + @TestMetadata("kt14296.kt") + public void testKt14296() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/kt14296.kt"); + } + + @TestMetadata("kt14869.kt") + public void testKt14869() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/kt14869.kt"); + } + + @TestMetadata("kt15652.kt") + public void testKt15652() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/kt15652.kt"); + } + + @TestMetadata("kt24343.kt") + public void testKt24343() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/kt24343.kt"); + } + + @TestMetadata("kt34905.kt") + public void testKt34905() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/kt34905.kt"); + } + + @TestMetadata("lambdaToInlineFold.kt") + public void testLambdaToInlineFold() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/lambdaToInlineFold.kt"); + } + + @TestMetadata("lambdaToInlineFoldFiltersDisabled.kt") + public void testLambdaToInlineFoldFiltersDisabled() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/lambdaToInlineFoldFiltersDisabled.kt"); + } + + @TestMetadata("lambdaToInlineMap.kt") + public void testLambdaToInlineMap() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/lambdaToInlineMap.kt"); + } + + @TestMetadata("lambdaToInlineMapFiltersDisabled.kt") + public void testLambdaToInlineMapFiltersDisabled() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/lambdaToInlineMapFiltersDisabled.kt"); + } + + @TestMetadata("noParameterExtensionLambdaArgumentCallInInline.kt") + public void testNoParameterExtensionLambdaArgumentCallInInline() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/noParameterExtensionLambdaArgumentCallInInline.kt"); + } + + @TestMetadata("noParameterExtensionLambdaArgumentCallInInline2.kt") + public void testNoParameterExtensionLambdaArgumentCallInInline2() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/noParameterExtensionLambdaArgumentCallInInline2.kt"); + } + + @TestMetadata("noParameterExtensionLambdaArgumentCallInInline3.kt") + public void testNoParameterExtensionLambdaArgumentCallInInline3() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/noParameterExtensionLambdaArgumentCallInInline3.kt"); + } + + @TestMetadata("noParameterLambdaArgumentCallInInline.kt") + public void testNoParameterLambdaArgumentCallInInline() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/noParameterLambdaArgumentCallInInline.kt"); + } + + @TestMetadata("noParameterLambdaArgumentCallInLambda.kt") + public void testNoParameterLambdaArgumentCallInLambda() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/noParameterLambdaArgumentCallInLambda.kt"); + } + + @TestMetadata("soBreakpointWithInline.kt") + public void testSoBreakpointWithInline() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soBreakpointWithInline.kt"); + } + + @TestMetadata("soBreakpointWithOrdinalOnInlineCallsInOneLine.kt") + public void testSoBreakpointWithOrdinalOnInlineCallsInOneLine() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soBreakpointWithOrdinalOnInlineCallsInOneLine.kt"); + } + + @TestMetadata("soInlineAnonymousFunctionArgument.kt") + public void testSoInlineAnonymousFunctionArgument() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineAnonymousFunctionArgument.kt"); + } + + @TestMetadata("soInlineCallInLastStatementInInline.kt") + public void testSoInlineCallInLastStatementInInline() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineCallInLastStatementInInline.kt"); + } + + @TestMetadata("soInlineCallInLastStatementInInlineFunctionArgument.kt") + public void testSoInlineCallInLastStatementInInlineFunctionArgument() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineCallInLastStatementInInlineFunctionArgument.kt"); + } + + @TestMetadata("soInlineCallInLastStatementInInlineInInline.kt") + public void testSoInlineCallInLastStatementInInlineInInline() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineCallInLastStatementInInlineInInline.kt"); + } + + @TestMetadata("soInlineCallsInOneLine.kt") + public void testSoInlineCallsInOneLine() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineCallsInOneLine.kt"); + } + + @TestMetadata("soInlineFunCallInLastStatementOfInlineWithArgumentFromCalleeAndOwn.kt") + public void testSoInlineFunCallInLastStatementOfInlineWithArgumentFromCalleeAndOwn() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineFunCallInLastStatementOfInlineWithArgumentFromCalleeAndOwn.kt"); + } + + @TestMetadata("soInlineFunOnOneLineFor.kt") + public void testSoInlineFunOnOneLineFor() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineFunOnOneLineFor.kt"); + } + + @TestMetadata("soInlineFunWithFor.kt") + public void testSoInlineFunWithFor() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineFunWithFor.kt"); + } + + @TestMetadata("soInlineFunWithLastStatementMultilineArgumentCall.kt") + public void testSoInlineFunWithLastStatementMultilineArgumentCall() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineFunWithLastStatementMultilineArgumentCall.kt"); + } + + @TestMetadata("soInlineFunWithLastStatementOneLineArgumentCall.kt") + public void testSoInlineFunWithLastStatementOneLineArgumentCall() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineFunWithLastStatementOneLineArgumentCall.kt"); + } + + @TestMetadata("soInlineIfConditionLambdaFalse.kt") + public void testSoInlineIfConditionLambdaFalse() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineIfConditionLambdaFalse.kt"); + } + + @TestMetadata("soInlineIfConditionLambdaTrue.kt") + public void testSoInlineIfConditionLambdaTrue() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineIfConditionLambdaTrue.kt"); + } + + @TestMetadata("soInlineIterableFun.kt") + public void testSoInlineIterableFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineIterableFun.kt"); + } + + @TestMetadata("soInlineLibFun.kt") + public void testSoInlineLibFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineLibFun.kt"); + } + + @TestMetadata("soInlineOperatorIterator.kt") + public void testSoInlineOperatorIterator() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineOperatorIterator.kt"); + } + + @TestMetadata("soInlineUnitFun.kt") + public void testSoInlineUnitFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineUnitFun.kt"); + } + + @TestMetadata("soInlineWhileCondition.kt") + public void testSoInlineWhileCondition() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineWhileCondition.kt"); + } + + @TestMetadata("soLastStatementInInlineFunctionArgumenBeforeOtherArgument.kt") + public void testSoLastStatementInInlineFunctionArgumenBeforeOtherArgument() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soLastStatementInInlineFunctionArgumenBeforeOtherArgument.kt"); + } + + @TestMetadata("soLastStatementInInlineFunctionArgumentAsAnonymous.kt") + public void testSoLastStatementInInlineFunctionArgumentAsAnonymous() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soLastStatementInInlineFunctionArgumentAsAnonymous.kt"); + } + + @TestMetadata("soLastStatementInInlineFunctionArgumentAsAnonymousParNextLine.kt") + public void testSoLastStatementInInlineFunctionArgumentAsAnonymousParNextLine() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soLastStatementInInlineFunctionArgumentAsAnonymousParNextLine.kt"); + } + + @TestMetadata("soLastStatementInInlineFunctionArgumentInGetOperator.kt") + public void testSoLastStatementInInlineFunctionArgumentInGetOperator() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soLastStatementInInlineFunctionArgumentInGetOperator.kt"); + } + + @TestMetadata("soLastStatementInInlineFunctionArgumentInNonInlineCall.kt") + public void testSoLastStatementInInlineFunctionArgumentInNonInlineCall() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soLastStatementInInlineFunctionArgumentInNonInlineCall.kt"); + } + + @TestMetadata("soLastStatementInInlineFunctionArgumentInPars.kt") + public void testSoLastStatementInInlineFunctionArgumentInPars() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soLastStatementInInlineFunctionArgumentInPars.kt"); + } + + @TestMetadata("soNonSuspendableSuspendCall.kt") + public void testSoNonSuspendableSuspendCall() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soNonSuspendableSuspendCall.kt"); + } + + @TestMetadata("soReifiedInlineIfConditionFalse.kt") + public void testSoReifiedInlineIfConditionFalse() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soReifiedInlineIfConditionFalse.kt"); + } + + @TestMetadata("soSimpleInlineIfCondition.kt") + public void testSoSimpleInlineIfCondition() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soSimpleInlineIfCondition.kt"); + } + + @TestMetadata("soSuspendableCallInEndOfFun.kt") + public void testSoSuspendableCallInEndOfFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soSuspendableCallInEndOfFun.kt"); + } + + @TestMetadata("stepOverCatchClause.kt") + public void testStepOverCatchClause() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverCatchClause.kt"); + } + + @TestMetadata("stepOverDeclarationInInlineFun.kt") + public void testStepOverDeclarationInInlineFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverDeclarationInInlineFun.kt"); + } + + @TestMetadata("stepOverFalseConditionInLastIfInWhile.kt") + public void testStepOverFalseConditionInLastIfInWhile() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverFalseConditionInLastIfInWhile.kt"); + } + + @TestMetadata("stepOverForWithInline.kt") + public void testStepOverForWithInline() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverForWithInline.kt"); + } + + @TestMetadata("stepOverIfWithInline.kt") + public void testStepOverIfWithInline() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverIfWithInline.kt"); + } + + @TestMetadata("stepOverInlineFunWithRecursionCall.kt") + public void testStepOverInlineFunWithRecursionCall() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverInlineFunWithRecursionCall.kt"); + } + + @TestMetadata("stepOverInlineFunctionInReturn.kt") + public void testStepOverInlineFunctionInReturn() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverInlineFunctionInReturn.kt"); + } + + @TestMetadata("stepOverInlinedLambda.kt") + public void testStepOverInlinedLambda() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverInlinedLambda.kt"); + } + + @TestMetadata("stepOverInlinedLambdaStdlib.kt") + public void testStepOverInlinedLambdaStdlib() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverInlinedLambdaStdlib.kt"); + } + + @TestMetadata("stepOverInsideInlineFun.kt") + public void testStepOverInsideInlineFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverInsideInlineFun.kt"); + } + + @TestMetadata("stepOverReifiedParam.kt") + public void testStepOverReifiedParam() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverReifiedParam.kt"); + } + + @TestMetadata("stepOverSimpleFun.kt") + public void testStepOverSimpleFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverSimpleFun.kt"); + } + + @TestMetadata("stepOverTryCatchWithInline.kt") + public void testStepOverTryCatchWithInline() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverTryCatchWithInline.kt"); + } + + @TestMetadata("stepOverWhenInReturn.kt") + public void testStepOverWhenInReturn() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverWhenInReturn.kt"); + } + + @TestMetadata("stepOverWhenWithInline.kt") + public void testStepOverWhenWithInline() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverWhenWithInline.kt"); + } + + @TestMetadata("stepOverWhileWithInline.kt") + public void testStepOverWhileWithInline() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverWhileWithInline.kt"); + } + + @TestMetadata("stopInAnonymousFunctionInInlinedCallWithCrossInline.kt") + public void testStopInAnonymousFunctionInInlinedCallWithCrossInline() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInAnonymousFunctionInInlinedCallWithCrossInline.kt"); + } + + @TestMetadata("stopInCrossinlineInSuspend.kt") + public void testStopInCrossinlineInSuspend() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInCrossinlineInSuspend.kt"); + } + + @TestMetadata("stopInExtensionInlineCall.kt") + public void testStopInExtensionInlineCall() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInExtensionInlineCall.kt"); + } + + @TestMetadata("stopInInlineCallInField.kt") + public void testStopInInlineCallInField() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineCallInField.kt"); + } + + @TestMetadata("stopInInlineCallInFieldInClassWithNonDefaultPrimary.kt") + public void testStopInInlineCallInFieldInClassWithNonDefaultPrimary() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineCallInFieldInClassWithNonDefaultPrimary.kt"); + } + + @TestMetadata("stopInInlineCallInFieldInDelegate.kt") + public void testStopInInlineCallInFieldInDelegate() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineCallInFieldInDelegate.kt"); + } + + @TestMetadata("stopInInlineCallInFieldInLocalClass.kt") + public void testStopInInlineCallInFieldInLocalClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineCallInFieldInLocalClass.kt"); + } + + @TestMetadata("stopInInlineCallLocalFunLambda.kt") + public void testStopInInlineCallLocalFunLambda() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineCallLocalFunLambda.kt"); + } + + @TestMetadata("stopInInlineFun.kt") + public void testStopInInlineFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineFun.kt"); + } + + @TestMetadata("stopInInlineInOtherFile.kt") + public void testStopInInlineInOtherFile() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineInOtherFile.kt"); + } + + @TestMetadata("stopInInlineInOtherFileWithLambdaArgument.kt") + public void testStopInInlineInOtherFileWithLambdaArgument() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineInOtherFileWithLambdaArgument.kt"); + } + + @TestMetadata("stopInInlineUnderOtherCall.kt") + public void testStopInInlineUnderOtherCall() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineUnderOtherCall.kt"); + } + + @TestMetadata("stopInInlineUnderSamConversion.kt") + public void testStopInInlineUnderSamConversion() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineUnderSamConversion.kt"); + } + + @TestMetadata("stopInInlinedInSpecialNamedFun.kt") + public void testStopInInlinedInSpecialNamedFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlinedInSpecialNamedFun.kt"); + } + + @TestMetadata("stopInInlinedInSpecialNamedFunWithGet.kt") + public void testStopInInlinedInSpecialNamedFunWithGet() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlinedInSpecialNamedFunWithGet.kt"); + } + + @TestMetadata("stopInInlinedLambdaInSuspendFunctionWithSuspendPointsInObjectLiteral.kt") + public void testStopInInlinedLambdaInSuspendFunctionWithSuspendPointsInObjectLiteral() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlinedLambdaInSuspendFunctionWithSuspendPointsInObjectLiteral.kt"); + } + + @TestMetadata("stopInLabdaOfCrossinlineCalledInAnonymous.kt") + public void testStopInLabdaOfCrossinlineCalledInAnonymous() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInLabdaOfCrossinlineCalledInAnonymous.kt"); + } + + @TestMetadata("stopInLambdaInInlinedCallWithCrossInline.kt") + public void testStopInLambdaInInlinedCallWithCrossInline() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInLambdaInInlinedCallWithCrossInline.kt"); + } + + @TestMetadata("stopInLambdaInlineCallLambda.kt") + public void testStopInLambdaInlineCallLambda() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInLambdaInlineCallLambda.kt"); + } + + @TestMetadata("stopInLocalFunInSecondaryConstructor.kt") + public void testStopInLocalFunInSecondaryConstructor() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInLocalFunInSecondaryConstructor.kt"); + } + + @TestMetadata("stopInLocalFunInlineCallLambda.kt") + public void testStopInLocalFunInlineCallLambda() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInLocalFunInlineCallLambda.kt"); + } + + @TestMetadata("stopInNamelessFunInInlineCall.kt") + public void testStopInNamelessFunInInlineCall() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInNamelessFunInInlineCall.kt"); + } + + @TestMetadata("stopInNonInlinedLambdaInInlineCallWithClosure.kt") + public void testStopInNonInlinedLambdaInInlineCallWithClosure() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInNonInlinedLambdaInInlineCallWithClosure.kt"); + } + + @TestMetadata("stopInNonInlinedLambdaInInlineCallWithoutClosure.kt") + public void testStopInNonInlinedLambdaInInlineCallWithoutClosure() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInNonInlinedLambdaInInlineCallWithoutClosure.kt"); + } + + @TestMetadata("stopInObjectLiteralInInlineCallNoClosure.kt") + public void testStopInObjectLiteralInInlineCallNoClosure() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInObjectLiteralInInlineCallNoClosure.kt"); + } + + @TestMetadata("stopInObjectLiteralInInlineCallWithClosure.kt") + public void testStopInObjectLiteralInInlineCallWithClosure() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInObjectLiteralInInlineCallWithClosure.kt"); + } + + @TestMetadata("stopInObjectLiteralInInlineCallWithClosureInAnonymous.kt") + public void testStopInObjectLiteralInInlineCallWithClosureInAnonymous() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInObjectLiteralInInlineCallWithClosureInAnonymous.kt"); + } + + @TestMetadata("stopInSuspendFunctionWithSuspendPoints.kt") + public void testStopInSuspendFunctionWithSuspendPoints() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInSuspendFunctionWithSuspendPoints.kt"); + } + + @TestMetadata("stopInSuspendFunctionWithSuspendPointsInAnonymousObject.kt") + public void testStopInSuspendFunctionWithSuspendPointsInAnonymousObject() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInSuspendFunctionWithSuspendPointsInAnonymousObject.kt"); + } + + @TestMetadata("stopInSuspendFunctionWithSuspendPointsInObjectLiteralInInlineCallWithClosure.kt") + public void testStopInSuspendFunctionWithSuspendPointsInObjectLiteralInInlineCallWithClosure() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInSuspendFunctionWithSuspendPointsInObjectLiteralInInlineCallWithClosure.kt"); + } + + @TestMetadata("stopInSuspendFunctionWithoutSuspendPoints.kt") + public void testStopInSuspendFunctionWithoutSuspendPoints() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInSuspendFunctionWithoutSuspendPoints.kt"); + } + + @TestMetadata("stopInWrongClass.kt") + public void testStopInWrongClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInWrongClass.kt"); + } + + @TestMetadata("stopInlineCallInLocalFunInSecondaryConstructor.kt") + public void testStopInlineCallInLocalFunInSecondaryConstructor() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInlineCallInLocalFunInSecondaryConstructor.kt"); + } + + @TestMetadata("suspendImpl.kt") + public void testSuspendImpl() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/suspendImpl.kt"); + } + + @TestMetadata("whenWithoutExpression.kt") + public void testWhenWithoutExpression() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/whenWithoutExpression.kt"); + } + + @TestMetadata("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Coroutines extends AbstractIrKotlinSteppingTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doStepOverTest, this, testDataFilePath); + } + + public void testAllFilesPresentInCoroutines() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @TestMetadata("sequenceNested.kt") + public void testSequenceNested() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines/sequenceNested.kt"); + } + + @TestMetadata("sequenceNested2.kt") + public void testSequenceNested2() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines/sequenceNested2.kt"); + } + + @TestMetadata("sequenceSimple.kt") + public void testSequenceSimple() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines/sequenceSimple.kt"); + } + + @TestMetadata("sequenceTake2.kt") + public void testSequenceTake2() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines/sequenceTake2.kt"); + } + } + } + + @TestMetadata("idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Filters extends AbstractIrKotlinSteppingTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doStepIntoTest, this, testDataFilePath); + } + + public void testAllFilesPresentInFilters() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @TestMetadata("checkNotNull.kt") + public void testCheckNotNull() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters/checkNotNull.kt"); + } + + @TestMetadata("doNotSkipClassloader.kt") + public void testDoNotSkipClassloader() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters/doNotSkipClassloader.kt"); + } + + @TestMetadata("doNotSkipConstructors.kt") + public void testDoNotSkipConstructors() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters/doNotSkipConstructors.kt"); + } + + @TestMetadata("npe.kt") + public void testNpe() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters/npe.kt"); + } + + @TestMetadata("reflectKClass.kt") + public void testReflectKClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters/reflectKClass.kt"); + } + + @TestMetadata("skipClassloader.kt") + public void testSkipClassloader() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters/skipClassloader.kt"); + } + + @TestMetadata("skipConstructors.kt") + public void testSkipConstructors() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters/skipConstructors.kt"); + } + + @TestMetadata("stdlibStep.kt") + public void testStdlibStep() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters/stdlibStep.kt"); + } + + @TestMetadata("stepIntoMultiFileFacade.kt") + public void testStepIntoMultiFileFacade() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters/stepIntoMultiFileFacade.kt"); + } + + @TestMetadata("stepIntoSpecificKotlinClasses.kt") + public void testStepIntoSpecificKotlinClasses() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters/stepIntoSpecificKotlinClasses.kt"); + } + + @TestMetadata("stepIntoStdlib.kt") + public void testStepIntoStdlib() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters/stepIntoStdlib.kt"); + } + + @TestMetadata("stepIntoStdlibFacadeClass.kt") + public void testStepIntoStdlibFacadeClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters/stepIntoStdlibFacadeClass.kt"); + } + } + + @TestMetadata("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Custom extends AbstractIrKotlinSteppingTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doCustomTest, this, testDataFilePath); + } + + @TestMetadata("afterDefaultParameterValues.kt") + public void testAfterDefaultParameterValues() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/afterDefaultParameterValues.kt"); + } + + @TestMetadata("afterDefaultParameterValues2.kt") + public void testAfterDefaultParameterValues2() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/afterDefaultParameterValues2.kt"); + } + + @TestMetadata("afterDefaultParameterValues2Intf.kt") + public void testAfterDefaultParameterValues2Intf() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/afterDefaultParameterValues2Intf.kt"); + } + + @TestMetadata("afterDefaultParameterValuesIntf.kt") + public void testAfterDefaultParameterValuesIntf() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/afterDefaultParameterValuesIntf.kt"); + } + + public void testAllFilesPresentInCustom() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @TestMetadata("anonymousFunAsParamDefaultValue.kt") + public void testAnonymousFunAsParamDefaultValue() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/anonymousFunAsParamDefaultValue.kt"); + } + + @TestMetadata("constantConditions.kt") + public void testConstantConditions() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/constantConditions.kt"); + } + + @TestMetadata("coroutine.kt") + public void testCoroutine() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/coroutine.kt"); + } + + @TestMetadata("coroutineUnitElimination.kt") + public void testCoroutineUnitElimination() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/coroutineUnitElimination.kt"); + } + + @TestMetadata("crossinlineLiteral.kt") + public void testCrossinlineLiteral() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/crossinlineLiteral.kt"); + } + + @TestMetadata("finallyBlock.kt") + public void testFinallyBlock() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/finallyBlock.kt"); + } + + @TestMetadata("funLiteral.kt") + public void testFunLiteral() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/funLiteral.kt"); + } + + @TestMetadata("functionBreakpointInStdlib.kt") + public void testFunctionBreakpointInStdlib() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/functionBreakpointInStdlib.kt"); + } + + @TestMetadata("functionBreakpoints.kt") + public void testFunctionBreakpoints() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/functionBreakpoints.kt"); + } + + @TestMetadata("functionCallStoredToVariable.kt") + public void testFunctionCallStoredToVariable() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/functionCallStoredToVariable.kt"); + } + + @TestMetadata("fwAbstractProperty.kt") + public void testFwAbstractProperty() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/fwAbstractProperty.kt"); + } + + @TestMetadata("fwInitializer.kt") + public void testFwInitializer() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/fwInitializer.kt"); + } + + @TestMetadata("fwPropertyInInterface.kt") + public void testFwPropertyInInterface() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/fwPropertyInInterface.kt"); + } + + @TestMetadata("initBlocks.kt") + public void testInitBlocks() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/initBlocks.kt"); + } + + @TestMetadata("inlineInObject.kt") + public void testInlineInObject() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/inlineInObject.kt"); + } + + @TestMetadata("inlineInObjectSameFile.kt") + public void testInlineInObjectSameFile() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/inlineInObjectSameFile.kt"); + } + + @TestMetadata("inlineProperties.kt") + public void testInlineProperties() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/inlineProperties.kt"); + } + + @TestMetadata("inlinePropertyAccessors.kt") + public void testInlinePropertyAccessors() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/inlinePropertyAccessors.kt"); + } + + @TestMetadata("kt14057.kt") + public void testKt14057() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/kt14057.kt"); + } + + @TestMetadata("kt15823.kt") + public void testKt15823() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/kt15823.kt"); + } + + @TestMetadata("kt17144.kt") + public void testKt17144() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/kt17144.kt"); + } + + @TestMetadata("kt17295.kt") + public void testKt17295() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/kt17295.kt"); + } + + @TestMetadata("manyFilesWithInlineCalls1.kt") + public void testManyFilesWithInlineCalls1() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/manyFilesWithInlineCalls1.kt"); + } + + @TestMetadata("manyFilesWithInlineCalls2.kt") + public void testManyFilesWithInlineCalls2() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/manyFilesWithInlineCalls2.kt"); + } + + @TestMetadata("severalFunLiterals.kt") + public void testSeveralFunLiterals() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/severalFunLiterals.kt"); + } + + @TestMetadata("severalFunLiteralsInClass.kt") + public void testSeveralFunLiteralsInClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/severalFunLiteralsInClass.kt"); + } + + @TestMetadata("severalInlineCallsFromOtherFile.kt") + public void testSeveralInlineCallsFromOtherFile() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/severalInlineCallsFromOtherFile.kt"); + } + + @TestMetadata("severalInlineFunctionsInOneFile.kt") + public void testSeveralInlineFunctionsInOneFile() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/severalInlineFunctionsInOneFile.kt"); + } + + @TestMetadata("simpleConditionalBreakpoint.kt") + public void testSimpleConditionalBreakpoint() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/simpleConditionalBreakpoint.kt"); + } + + @TestMetadata("smartStepIntoComponentFunction.kt") + public void testSmartStepIntoComponentFunction() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoComponentFunction.kt"); + } + + @TestMetadata("smartStepIntoConstructor.kt") + public void testSmartStepIntoConstructor() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoConstructor.kt"); + } + + @TestMetadata("smartStepIntoFunWithDefaultArgs.kt") + public void testSmartStepIntoFunWithDefaultArgs() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoFunWithDefaultArgs.kt"); + } + + @TestMetadata("smartStepIntoInlinedFunLiteral.kt") + public void testSmartStepIntoInlinedFunLiteral() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoInlinedFunLiteral.kt"); + } + + @TestMetadata("smartStepIntoInlinedFunctionalExpression.kt") + public void testSmartStepIntoInlinedFunctionalExpression() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoInlinedFunctionalExpression.kt"); + } + + @TestMetadata("smartStepIntoInsideLambda.kt") + public void testSmartStepIntoInsideLambda() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoInsideLambda.kt"); + } + + @TestMetadata("smartStepIntoInterfaceFun.kt") + public void testSmartStepIntoInterfaceFun() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoInterfaceFun.kt"); + } + + @TestMetadata("smartStepIntoInterfaceImpl.kt") + public void testSmartStepIntoInterfaceImpl() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoInterfaceImpl.kt"); + } + + @TestMetadata("smartStepIntoStoredLambda.kt") + public void testSmartStepIntoStoredLambda() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoStoredLambda.kt"); + } + + @TestMetadata("smartStepIntoSubClass.kt") + public void testSmartStepIntoSubClass() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoSubClass.kt"); + } + + @TestMetadata("smartStepIntoToLambdaParameter.kt") + public void testSmartStepIntoToLambdaParameter() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoToLambdaParameter.kt"); + } + + @TestMetadata("smartStepIntoWithDelegates.kt") + public void testSmartStepIntoWithDelegates() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoWithDelegates.kt"); + } + + @TestMetadata("smartStepIntoWithOverrides.kt") + public void testSmartStepIntoWithOverrides() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoWithOverrides.kt"); + } + + @TestMetadata("stepIntoLibWithSources.kt") + public void testStepIntoLibWithSources() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/stepIntoLibWithSources.kt"); + } + + @TestMetadata("stepIntoStdlibInlineFun2step.kt") + public void testStepIntoStdlibInlineFun2step() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/stepIntoStdlibInlineFun2step.kt"); + } + + @TestMetadata("stepOutInlineFunctionStdlib.kt") + public void testStepOutInlineFunctionStdlib() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/stepOutInlineFunctionStdlib.kt"); + } + + @TestMetadata("stepOverNonLocalReturnInLambda.kt") + public void testStepOverNonLocalReturnInLambda() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/stepOverNonLocalReturnInLambda.kt"); + } + + @TestMetadata("syntheticProvider.kt") + public void testSyntheticProvider() throws Exception { + runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/syntheticProvider.kt"); + } + } +} diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinDescriptorTestCase.kt b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinDescriptorTestCase.kt index 47a919657fd..2e25f4e3a6b 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinDescriptorTestCase.kt +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinDescriptorTestCase.kt @@ -96,6 +96,8 @@ abstract class KotlinDescriptorTestCase : DescriptorTestCase() { super.tearDown() } + open fun useIrBackend() = false + fun doTest(path: String) { val wholeFile = File(path) val wholeFileContents = FileUtil.loadFile(wholeFile, true) @@ -108,7 +110,7 @@ abstract class KotlinDescriptorTestCase : DescriptorTestCase() { val rawJvmTarget = preferences[DebuggerPreferenceKeys.JVM_TARGET] val jvmTarget = JvmTarget.fromString(rawJvmTarget) ?: error("Invalid JVM target value: $rawJvmTarget") - val compilerFacility = DebuggerTestCompilerFacility(testFiles, jvmTarget) + val compilerFacility = DebuggerTestCompilerFacility(testFiles, jvmTarget, useIrBackend()) for (library in preferences[DebuggerPreferenceKeys.ATTACH_LIBRARY]) { if (library.startsWith("maven(")) @@ -151,7 +153,7 @@ abstract class KotlinDescriptorTestCase : DescriptorTestCase() { abstract fun doMultiFileTest(files: TestFiles, preferences: DebuggerPreferences) override fun initOutputChecker(): OutputChecker { - return KotlinOutputChecker(getTestDirectoryPath(), testAppPath, appOutputPath) + return KotlinOutputChecker(getTestDirectoryPath(), testAppPath, appOutputPath, useIrBackend()) } override fun setUpModule() { diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/util/KotlinOutputChecker.kt b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/util/KotlinOutputChecker.kt index 41df88d59e3..a5da73e470f 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/util/KotlinOutputChecker.kt +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/util/KotlinOutputChecker.kt @@ -14,6 +14,8 @@ import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtilRt import com.intellij.openapi.util.text.StringUtilRt import com.intellij.openapi.vfs.CharsetToolkit +import org.jetbrains.kotlin.test.InTextDirectivesUtils +import org.jetbrains.kotlin.test.TargetBackend import org.junit.Assert import java.io.File import kotlin.math.min @@ -21,7 +23,8 @@ import kotlin.math.min internal class KotlinOutputChecker( private val testDir: String, appPath: String, - outputPath: String + outputPath: String, + private val useIrBackend: Boolean ) : OutputChecker(appPath, outputPath) { companion object { @JvmStatic @@ -75,7 +78,10 @@ internal class KotlinOutputChecker( LOG.error("Test file created ${outFile.path}\n**************** Don't forget to put it into VCS! *******************") } else { val originalText = FileUtilRt.loadFile(outFile, CharsetToolkit.UTF8) - val expected = StringUtilRt.convertLineSeparators(originalText) + val isIgnored = InTextDirectivesUtils.isIgnoredTarget(if (useIrBackend) TargetBackend.JVM_IR else TargetBackend.JVM, outFile) + val expected = StringUtilRt.convertLineSeparators(originalText).split("\n").filter { + !it.trim().startsWith(InTextDirectivesUtils.IGNORE_BACKEND_DIRECTIVE_PREFIX) + }.joinToString("\n") if (expected != actual) { println("expected:") println(originalText) @@ -92,7 +98,13 @@ internal class KotlinOutputChecker( println("Rest from actual text is: \"" + actual.substring(len) + "\"") } - Assert.assertEquals(originalText, actual) + // Ignore test failure if marked as ignored. + if (isIgnored) return + + Assert.assertEquals(expected, actual) + } else if (isIgnored) { + // Fail if tests are marked as failing, but actually pass. + throw AssertionError("Test passes and could be unmuted, remove IGNORE_BACKEND directive from ${outFile.path}") } } } diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/coroutine.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/coroutine.out index 9f9a0963e9f..12eee7b6699 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/coroutine.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/coroutine.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at coroutine.kt:17 Run Java Connected to the target VM diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/initBlocks.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/initBlocks.out index 05c81e63835..6f5f4f3470d 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/initBlocks.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/initBlocks.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at initBlocks.kt:6 Run Java Connected to the target VM diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoConstructor.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoConstructor.out index bcdac9ae9c1..28df8f8c888 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoConstructor.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoConstructor.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at smartStepIntoConstructor.kt:7 LineBreakpoint created at smartStepIntoConstructor.kt:11 LineBreakpoint created at smartStepIntoConstructor.kt:15 diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoInterfaceImpl.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoInterfaceImpl.out index 63058728e6e..d319d1d2fa7 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoInterfaceImpl.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoInterfaceImpl.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at smartStepIntoInterfaceImpl.kt:91 LineBreakpoint created at smartStepIntoInterfaceImpl.kt:96 LineBreakpoint created at smartStepIntoInterfaceImpl.kt:101 diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoWithDelegates.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoWithDelegates.out index 67a684b8be3..c07cd295ce5 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoWithDelegates.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoWithDelegates.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at smartStepIntoWithDelegates.kt:24 LineBreakpoint created at smartStepIntoWithDelegates.kt:32 LineBreakpoint created at smartStepIntoWithDelegates.kt:40 diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters/stepIntoMultiFileFacade.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters/stepIntoMultiFileFacade.out index 24744a9d50e..aaefedd5698 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters/stepIntoMultiFileFacade.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/filters/stepIntoMultiFileFacade.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at stepIntoMultiFileFacade.kt:6 Run Java Connected to the target VM diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/accessors.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/accessors.out index 311824d0f4d..938123b2a05 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/accessors.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/accessors.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at accessors.kt:10 Run Java Connected to the target VM diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/functionReference.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/functionReference.out index 1e833606988..218eaedff1f 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/functionReference.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/functionReference.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at functionReference.kt:11 Run Java Connected to the target VM diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/stepIntoSuspendFunctionSimple.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/stepIntoSuspendFunctionSimple.out index 6cb7bef934c..5cf4f6065eb 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/stepIntoSuspendFunctionSimple.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/stepIntoSuspendFunctionSimple.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at stepIntoSuspendFunctionSimple.kt:20 Run Java Connected to the target VM diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/syntheticMethods.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/syntheticMethods.out index d2cd63e8dca..b28ba6a1c91 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/syntheticMethods.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/syntheticMethods.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at syntheticMethods.kt:6 Run Java Connected to the target VM diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/whenExpr.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/whenExpr.out index 8f65505d1de..a36d561616e 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/whenExpr.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/whenExpr.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at whenExpr.kt:5 Run Java Connected to the target VM diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOut/fwBackingField.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOut/fwBackingField.out index ade6904d75e..ca4193a5a70 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOut/fwBackingField.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOut/fwBackingField.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR KotlinFieldBreakpoint created at fwBackingField.kt:5 KotlinFieldBreakpoint created at fwBackingField.kt:8 KotlinFieldBreakpoint created at fwBackingField.kt:18 diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines/sequenceNested.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines/sequenceNested.out index f94e16f6ad4..c2366ab8b8e 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines/sequenceNested.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines/sequenceNested.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at sequenceNested.kt:6 Run Java Connected to the target VM diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines/sequenceNested2.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines/sequenceNested2.out index a0f52df12a1..0864d64bb1b 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines/sequenceNested2.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines/sequenceNested2.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at sequenceNested2.kt:8 Run Java Connected to the target VM diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines/sequenceSimple.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines/sequenceSimple.out index 6c1129c922b..1213f2a7b4c 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines/sequenceSimple.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/coroutines/sequenceSimple.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at sequenceSimple.kt:6 Run Java Connected to the target VM diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/kt34905.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/kt34905.out index e964660522e..8659b028eb5 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/kt34905.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/kt34905.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at kt34905.kt:13 Run Java Connected to the target VM diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/noParameterExtensionLambdaArgumentCallInInline3.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/noParameterExtensionLambdaArgumentCallInInline3.out index 68823274b24..4ef865ce3a3 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/noParameterExtensionLambdaArgumentCallInInline3.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/noParameterExtensionLambdaArgumentCallInInline3.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at noParameterExtensionLambdaArgumentCallInInline3.kt:12 Run Java Connected to the target VM diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineLibFun.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineLibFun.out index 4afba816a4c..673e8060b00 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineLibFun.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineLibFun.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at soInlineLibFun.kt:6 Run Java Connected to the target VM diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soSuspendableCallInEndOfFun.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soSuspendableCallInEndOfFun.out index 5e0cd181de2..2870e26e69f 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soSuspendableCallInEndOfFun.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soSuspendableCallInEndOfFun.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at soSuspendableCallInEndOfFun.kt:29 Run Java Connected to the target VM diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverInlinedLambdaStdlib.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverInlinedLambdaStdlib.out index a95524cfed5..e15020bb03c 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverInlinedLambdaStdlib.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverInlinedLambdaStdlib.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at stepOverInlinedLambdaStdlib.kt:5 Run Java Connected to the target VM diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverWhenWithInline.out b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverWhenWithInline.out index c254b9a99f2..f313b395d91 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverWhenWithInline.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stepOverWhenWithInline.out @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR LineBreakpoint created at stepOverWhenWithInline.kt:5 Run Java Connected to the target VM