Fix stepping test's testData
This commit is contained in:
committed by
Nikolay Krasko
parent
f9f75f1155
commit
601a33f772
@@ -2,15 +2,19 @@ LineBreakpoint created at accessors.kt:10
|
|||||||
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! accessors.AccessorsPackage
|
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! accessors.AccessorsPackage
|
||||||
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
||||||
accessors.kt:10
|
accessors.kt:10
|
||||||
|
accessors.kt:15
|
||||||
accessors.kt:17
|
accessors.kt:17
|
||||||
accessors.kt:18
|
accessors.kt:18
|
||||||
accessors.kt:15
|
accessors.kt:15
|
||||||
accessors.kt:11
|
accessors.kt:11
|
||||||
|
accessors.kt:15
|
||||||
accessors.kt:22
|
accessors.kt:22
|
||||||
accessors.kt:15
|
accessors.kt:15
|
||||||
accessors.kt:11
|
accessors.kt:11
|
||||||
accessors.kt:12
|
accessors.kt:12
|
||||||
|
accessors.kt:15
|
||||||
accessors.kt:25
|
accessors.kt:25
|
||||||
|
accessors.kt:7
|
||||||
accessors.kt:26
|
accessors.kt:26
|
||||||
accessors.kt:15
|
accessors.kt:15
|
||||||
accessors.kt:13
|
accessors.kt:13
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ LineBreakpoint created at onClassHeader.kt:6
|
|||||||
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! onClassHeader.OnClassHeaderPackage
|
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! onClassHeader.OnClassHeaderPackage
|
||||||
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
||||||
onClassHeader.kt:6
|
onClassHeader.kt:6
|
||||||
onClassHeader.kt:18
|
|
||||||
onClassHeader.kt:16
|
onClassHeader.kt:16
|
||||||
Compile bytecode for 1 + 1
|
Compile bytecode for 1 + 1
|
||||||
Compile bytecode for this
|
Compile bytecode for this
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ onObjectHeader.kt:10
|
|||||||
onObjectHeader.kt:16
|
onObjectHeader.kt:16
|
||||||
onObjectHeader.kt:8
|
onObjectHeader.kt:8
|
||||||
onObjectHeader.kt:11
|
onObjectHeader.kt:11
|
||||||
onObjectHeader.kt:20
|
|
||||||
onObjectHeader.kt:21
|
|
||||||
onObjectHeader.kt:8
|
onObjectHeader.kt:8
|
||||||
Compile bytecode for 1 + 1
|
Compile bytecode for 1 + 1
|
||||||
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
||||||
|
|||||||
@@ -2,10 +2,12 @@ LineBreakpoint created at syntheticMethods.kt:6
|
|||||||
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! syntheticMethods.SyntheticMethodsPackage
|
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! syntheticMethods.SyntheticMethodsPackage
|
||||||
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
||||||
syntheticMethods.kt:6
|
syntheticMethods.kt:6
|
||||||
|
syntheticMethods.kt:17
|
||||||
syntheticMethods.kt:19
|
syntheticMethods.kt:19
|
||||||
syntheticMethods.kt:20
|
syntheticMethods.kt:20
|
||||||
syntheticMethods.kt:17
|
syntheticMethods.kt:17
|
||||||
syntheticMethods.kt:7
|
syntheticMethods.kt:7
|
||||||
|
syntheticMethods.kt:34
|
||||||
syntheticMethods.kt:0
|
syntheticMethods.kt:0
|
||||||
syntheticMethods.kt:7
|
syntheticMethods.kt:7
|
||||||
syntheticMethods.kt:25
|
syntheticMethods.kt:25
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class Derived: Base<String>() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// STEP_INTO: 2
|
// STEP_INTO: 1
|
||||||
|
|
||||||
// EXPRESSION: 1 + 1
|
// EXPRESSION: 1 + 1
|
||||||
// RESULT: 2: I
|
// RESULT: 2: I
|
||||||
@@ -29,3 +29,5 @@ class Derived: Base<String>() {
|
|||||||
|
|
||||||
// EXPRESSION: this.foo("a")
|
// EXPRESSION: this.foo("a")
|
||||||
// RESULT: 2: I
|
// RESULT: 2: I
|
||||||
|
|
||||||
|
// SKIP_SYNTHETIC_METHODS: false
|
||||||
@@ -21,7 +21,9 @@ object A {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// STEP_INTO: 7
|
// STEP_INTO: 5
|
||||||
|
|
||||||
// EXPRESSION: 1 + 1
|
// EXPRESSION: 1 + 1
|
||||||
// RESULT: 2: I
|
// RESULT: 2: I
|
||||||
|
|
||||||
|
// SKIP_SYNTHETIC_METHODS: false
|
||||||
@@ -27,4 +27,5 @@ class A {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// STEP_INTO: 13
|
// STEP_INTO: 17
|
||||||
|
// SKIP_SYNTHETIC_METHODS: false
|
||||||
@@ -44,4 +44,5 @@ class A {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// STEP_INTO: 24
|
// STEP_INTO: 26
|
||||||
|
// SKIP_SYNTHETIC_METHODS: false
|
||||||
@@ -31,20 +31,6 @@ import kotlin.properties.Delegates
|
|||||||
import com.intellij.debugger.settings.DebuggerSettings
|
import com.intellij.debugger.settings.DebuggerSettings
|
||||||
|
|
||||||
public abstract class AbstractKotlinSteppingTest : KotlinDebuggerTestBase() {
|
public abstract class AbstractKotlinSteppingTest : KotlinDebuggerTestBase() {
|
||||||
private var oldSettings: DebuggerSettings by Delegates.notNull()
|
|
||||||
private var oldIsFilterForStdlibAlreadyAdded: Boolean by Delegates.notNull()
|
|
||||||
private var oldDisableKotlinInternalClasses: Boolean by Delegates.notNull()
|
|
||||||
|
|
||||||
override fun initApplication() {
|
|
||||||
super.initApplication()
|
|
||||||
saveDefaultSettings()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun tearDown() {
|
|
||||||
super.tearDown()
|
|
||||||
restoreDefaultSettings()
|
|
||||||
}
|
|
||||||
|
|
||||||
protected fun doStepIntoTest(path: String) {
|
protected fun doStepIntoTest(path: String) {
|
||||||
val fileText = FileUtil.loadFile(File(path))
|
val fileText = FileUtil.loadFile(File(path))
|
||||||
|
|
||||||
@@ -66,37 +52,6 @@ public abstract class AbstractKotlinSteppingTest : KotlinDebuggerTestBase() {
|
|||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun configureSettings(fileText: String) {
|
|
||||||
val kotlinSettings = KotlinDebuggerSettings.getInstance()
|
|
||||||
kotlinSettings.DEBUG_IS_FILTER_FOR_STDLIB_ALREADY_ADDED = false
|
|
||||||
kotlinSettings.DEBUG_DISABLE_KOTLIN_INTERNAL_CLASSES = fileText.getValueForSetting("DISABLE_KOTLIN_INTERNAL_CLASSES", oldDisableKotlinInternalClasses)
|
|
||||||
|
|
||||||
val debuggerSettings = DebuggerSettings.getInstance()!!
|
|
||||||
debuggerSettings.SKIP_CONSTRUCTORS = fileText.getValueForSetting("SKIP_CONSTRUCTORS", oldSettings.SKIP_CONSTRUCTORS)
|
|
||||||
debuggerSettings.SKIP_CLASSLOADERS = fileText.getValueForSetting("SKIP_CLASSLOADERS", oldSettings.SKIP_CLASSLOADERS)
|
|
||||||
debuggerSettings.TRACING_FILTERS_ENABLED = fileText.getValueForSetting("TRACING_FILTERS_ENABLED", oldSettings.TRACING_FILTERS_ENABLED)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun String.getValueForSetting(name: String, defaultValue: Boolean): Boolean {
|
|
||||||
return findStringWithPrefixes(this, "// $name: ")?.toBoolean() ?: defaultValue
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun saveDefaultSettings() {
|
|
||||||
oldIsFilterForStdlibAlreadyAdded = KotlinDebuggerSettings.getInstance().DEBUG_IS_FILTER_FOR_STDLIB_ALREADY_ADDED
|
|
||||||
oldDisableKotlinInternalClasses = KotlinDebuggerSettings.getInstance().DEBUG_DISABLE_KOTLIN_INTERNAL_CLASSES
|
|
||||||
oldSettings = DebuggerSettings.getInstance()!!.clone()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun restoreDefaultSettings() {
|
|
||||||
KotlinDebuggerSettings.getInstance().DEBUG_IS_FILTER_FOR_STDLIB_ALREADY_ADDED = oldIsFilterForStdlibAlreadyAdded
|
|
||||||
KotlinDebuggerSettings.getInstance().DEBUG_DISABLE_KOTLIN_INTERNAL_CLASSES = oldDisableKotlinInternalClasses
|
|
||||||
|
|
||||||
val debuggerSettings = DebuggerSettings.getInstance()!!
|
|
||||||
debuggerSettings.SKIP_CONSTRUCTORS = oldSettings.SKIP_CONSTRUCTORS
|
|
||||||
debuggerSettings.SKIP_CLASSLOADERS = oldSettings.SKIP_CLASSLOADERS
|
|
||||||
debuggerSettings.TRACING_FILTERS_ENABLED = oldSettings.TRACING_FILTERS_ENABLED
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun SuspendContextImpl.smartStepInto() {
|
private fun SuspendContextImpl.smartStepInto() {
|
||||||
this.smartStepInto(false)
|
this.smartStepInto(false)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,11 +27,60 @@ import org.jetbrains.kotlin.idea.JetJdkAndLibraryProjectDescriptor
|
|||||||
import com.intellij.openapi.roots.JdkOrderEntry
|
import com.intellij.openapi.roots.JdkOrderEntry
|
||||||
import com.intellij.openapi.util.io.FileUtil
|
import com.intellij.openapi.util.io.FileUtil
|
||||||
import com.intellij.debugger.SourcePosition
|
import com.intellij.debugger.SourcePosition
|
||||||
|
import com.intellij.debugger.settings.DebuggerSettings
|
||||||
|
import kotlin.properties.Delegates
|
||||||
|
import org.jetbrains.kotlin.test.InTextDirectivesUtils.findStringWithPrefixes
|
||||||
import kotlin.properties.Delegates
|
import kotlin.properties.Delegates
|
||||||
import com.intellij.debugger.engine.evaluation.EvaluationContextImpl
|
import com.intellij.debugger.engine.evaluation.EvaluationContextImpl
|
||||||
import com.intellij.debugger.impl.DebuggerContextImpl
|
import com.intellij.debugger.impl.DebuggerContextImpl
|
||||||
|
|
||||||
abstract class KotlinDebuggerTestBase : KotlinDebuggerTestCase() {
|
abstract class KotlinDebuggerTestBase : KotlinDebuggerTestCase() {
|
||||||
|
private var oldSettings: DebuggerSettings by Delegates.notNull()
|
||||||
|
private var oldIsFilterForStdlibAlreadyAdded: Boolean by Delegates.notNull()
|
||||||
|
private var oldDisableKotlinInternalClasses: Boolean by Delegates.notNull()
|
||||||
|
|
||||||
|
override fun initApplication() {
|
||||||
|
super.initApplication()
|
||||||
|
saveDefaultSettings()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun tearDown() {
|
||||||
|
super.tearDown()
|
||||||
|
restoreDefaultSettings()
|
||||||
|
}
|
||||||
|
|
||||||
|
protected fun configureSettings(fileText: String) {
|
||||||
|
val kotlinSettings = KotlinDebuggerSettings.getInstance()
|
||||||
|
kotlinSettings.DEBUG_IS_FILTER_FOR_STDLIB_ALREADY_ADDED = false
|
||||||
|
kotlinSettings.DEBUG_DISABLE_KOTLIN_INTERNAL_CLASSES = fileText.getValueForSetting("DISABLE_KOTLIN_INTERNAL_CLASSES", oldDisableKotlinInternalClasses)
|
||||||
|
|
||||||
|
val debuggerSettings = DebuggerSettings.getInstance()!!
|
||||||
|
debuggerSettings.SKIP_SYNTHETIC_METHODS = fileText.getValueForSetting("SKIP_SYNTHETIC_METHODS", oldSettings.SKIP_SYNTHETIC_METHODS)
|
||||||
|
debuggerSettings.SKIP_CONSTRUCTORS = fileText.getValueForSetting("SKIP_CONSTRUCTORS", oldSettings.SKIP_CONSTRUCTORS)
|
||||||
|
debuggerSettings.SKIP_CLASSLOADERS = fileText.getValueForSetting("SKIP_CLASSLOADERS", oldSettings.SKIP_CLASSLOADERS)
|
||||||
|
debuggerSettings.TRACING_FILTERS_ENABLED = fileText.getValueForSetting("TRACING_FILTERS_ENABLED", oldSettings.TRACING_FILTERS_ENABLED)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun String.getValueForSetting(name: String, defaultValue: Boolean): Boolean {
|
||||||
|
return findStringWithPrefixes(this, "// $name: ")?.toBoolean() ?: defaultValue
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun saveDefaultSettings() {
|
||||||
|
oldIsFilterForStdlibAlreadyAdded = KotlinDebuggerSettings.getInstance().DEBUG_IS_FILTER_FOR_STDLIB_ALREADY_ADDED
|
||||||
|
oldDisableKotlinInternalClasses = KotlinDebuggerSettings.getInstance().DEBUG_DISABLE_KOTLIN_INTERNAL_CLASSES
|
||||||
|
oldSettings = DebuggerSettings.getInstance()!!.clone()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun restoreDefaultSettings() {
|
||||||
|
KotlinDebuggerSettings.getInstance().DEBUG_IS_FILTER_FOR_STDLIB_ALREADY_ADDED = oldIsFilterForStdlibAlreadyAdded
|
||||||
|
KotlinDebuggerSettings.getInstance().DEBUG_DISABLE_KOTLIN_INTERNAL_CLASSES = oldDisableKotlinInternalClasses
|
||||||
|
|
||||||
|
val debuggerSettings = DebuggerSettings.getInstance()!!
|
||||||
|
debuggerSettings.SKIP_SYNTHETIC_METHODS = oldSettings.SKIP_SYNTHETIC_METHODS
|
||||||
|
debuggerSettings.SKIP_CONSTRUCTORS = oldSettings.SKIP_CONSTRUCTORS
|
||||||
|
debuggerSettings.SKIP_CLASSLOADERS = oldSettings.SKIP_CLASSLOADERS
|
||||||
|
debuggerSettings.TRACING_FILTERS_ENABLED = oldSettings.TRACING_FILTERS_ENABLED
|
||||||
|
}
|
||||||
|
|
||||||
protected val dp: DebugProcessImpl
|
protected val dp: DebugProcessImpl
|
||||||
get() = getDebugProcess() ?: throw AssertionError("createLocalProcess() should be called before getDebugProcess()")
|
get() = getDebugProcess() ?: throw AssertionError("createLocalProcess() should be called before getDebugProcess()")
|
||||||
|
|||||||
+1
@@ -103,6 +103,7 @@ public abstract class AbstractKotlinEvaluateExpressionTest : KotlinDebuggerTestB
|
|||||||
val file = File(path)
|
val file = File(path)
|
||||||
val fileText = FileUtil.loadFile(file, true)
|
val fileText = FileUtil.loadFile(file, true)
|
||||||
|
|
||||||
|
configureSettings(fileText)
|
||||||
createAdditionalBreakpoints(fileText)
|
createAdditionalBreakpoints(fileText)
|
||||||
|
|
||||||
val shouldPrintFrame = InTextDirectivesUtils.isDirectiveDefined(fileText, "// PRINT_FRAME")
|
val shouldPrintFrame = InTextDirectivesUtils.isDirectiveDefined(fileText, "// PRINT_FRAME")
|
||||||
|
|||||||
Reference in New Issue
Block a user