Introduce base class for codegen and diagnostic tests
Extract base TestFile and TestModule classes. Move coroutinePackage related logic to base class
This commit is contained in:
+3
-3
@@ -22,7 +22,6 @@ import com.sun.jdi.ObjectReference
|
||||
import org.jetbrains.eval4j.ObjectValue
|
||||
import org.jetbrains.eval4j.Value
|
||||
import org.jetbrains.eval4j.jdi.asValue
|
||||
import org.jetbrains.kotlin.codegen.CodegenTestCase.TestFile
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||
import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinCodeFragmentFactory
|
||||
import org.jetbrains.kotlin.idea.debugger.test.preference.DebuggerPreferences
|
||||
@@ -32,6 +31,7 @@ import org.jetbrains.kotlin.idea.debugger.test.util.SteppingInstruction
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils.findLinesWithPrefixesRemoved
|
||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils.findStringWithPrefixes
|
||||
import org.jetbrains.kotlin.test.KotlinBaseTest
|
||||
import java.io.File
|
||||
import javax.swing.tree.TreeNode
|
||||
|
||||
@@ -254,7 +254,7 @@ abstract class AbstractKotlinEvaluateExpressionTest : KotlinDescriptorTestCaseWi
|
||||
return this.toString()
|
||||
}
|
||||
|
||||
private fun loadExpressions(testFile: TestFile): List<CodeFragment> {
|
||||
private fun loadExpressions(testFile: KotlinBaseTest.TestFile): List<CodeFragment> {
|
||||
val directives = findLinesWithPrefixesRemoved(testFile.content, "// EXPRESSION: ")
|
||||
val expected = findLinesWithPrefixesRemoved(testFile.content, "// RESULT: ")
|
||||
assert(directives.size == expected.size) { "Sizes of test directives are different" }
|
||||
@@ -276,7 +276,7 @@ abstract class AbstractKotlinEvaluateExpressionTest : KotlinDescriptorTestCaseWi
|
||||
return codeFragments
|
||||
}
|
||||
|
||||
private fun loadDebugLabels(testFile: TestFile): List<DebugLabel> {
|
||||
private fun loadDebugLabels(testFile: KotlinBaseTest.TestFile): List<DebugLabel> {
|
||||
return findLinesWithPrefixesRemoved(testFile.content, "// DEBUG_LABEL: ")
|
||||
.map { text ->
|
||||
val labelParts = text.split("=")
|
||||
|
||||
+1
-1
@@ -19,7 +19,6 @@ import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
|
||||
import org.jetbrains.kotlin.cli.common.output.writeAllTo
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.findMainClass
|
||||
import org.jetbrains.kotlin.codegen.ClassBuilderFactories
|
||||
import org.jetbrains.kotlin.codegen.CodegenTestCase.TestFile
|
||||
import org.jetbrains.kotlin.codegen.CodegenTestUtil
|
||||
import org.jetbrains.kotlin.codegen.DefaultCodegenFactory
|
||||
import org.jetbrains.kotlin.codegen.KotlinCodegenFacade
|
||||
@@ -30,6 +29,7 @@ import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||
import org.jetbrains.kotlin.config.JvmTarget
|
||||
import org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.test.KotlinBaseTest.TestFile
|
||||
import org.jetbrains.kotlin.test.MockLibraryUtil
|
||||
import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase
|
||||
import java.io.File
|
||||
|
||||
+2
-2
@@ -21,7 +21,6 @@ import com.intellij.openapi.vfs.VfsUtil
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.testFramework.EdtTestUtil
|
||||
import com.intellij.xdebugger.XDebugSession
|
||||
import org.jetbrains.kotlin.codegen.CodegenTestCase.TestFile
|
||||
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
|
||||
import org.jetbrains.kotlin.config.JvmTarget
|
||||
import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches
|
||||
@@ -31,6 +30,7 @@ import org.jetbrains.kotlin.idea.debugger.test.util.KotlinOutputChecker
|
||||
import org.jetbrains.kotlin.idea.debugger.test.util.LogPropagator
|
||||
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil
|
||||
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
||||
import org.jetbrains.kotlin.test.KotlinBaseTest.TestFile
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
import org.jetbrains.kotlin.test.TestMetadata
|
||||
import org.jetbrains.kotlin.test.isIgnoredInDatabaseWithLog
|
||||
@@ -125,7 +125,7 @@ abstract class KotlinDescriptorTestCase : DescriptorTestCase() {
|
||||
}
|
||||
|
||||
private fun createTestFiles(wholeFile: File, wholeFileContents: String): TestFiles {
|
||||
val testFiles = org.jetbrains.kotlin.test.TestFiles.createTestFiles<Void, TestFile>(
|
||||
val testFiles = org.jetbrains.kotlin.test.TestFiles.createTestFiles(
|
||||
wholeFile.name,
|
||||
wholeFileContents,
|
||||
object : org.jetbrains.kotlin.test.TestFiles.TestFileFactoryNoModules<TestFile>() {
|
||||
|
||||
+4
-4
@@ -5,7 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.debugger.test.util
|
||||
|
||||
import org.jetbrains.kotlin.codegen.CodegenTestCase
|
||||
import org.jetbrains.kotlin.test.KotlinBaseTest.TestFile
|
||||
|
||||
enum class SteppingInstructionKind(val directiveName: String) {
|
||||
StepInto("STEP_INTO"),
|
||||
@@ -19,11 +19,11 @@ enum class SteppingInstructionKind(val directiveName: String) {
|
||||
|
||||
class SteppingInstruction(val kind: SteppingInstructionKind, val arg: Int) {
|
||||
companion object {
|
||||
fun parse(file: CodegenTestCase.TestFile): List<SteppingInstruction> {
|
||||
fun parse(file: TestFile): List<SteppingInstruction> {
|
||||
return parse(file, Companion::parseLine)
|
||||
}
|
||||
|
||||
fun parseSingle(file: CodegenTestCase.TestFile, kind: SteppingInstructionKind): SteppingInstruction? {
|
||||
fun parseSingle(file: TestFile, kind: SteppingInstructionKind): SteppingInstruction? {
|
||||
val instructions = parse(file) { line -> parseKind(line, kind) }
|
||||
if (instructions.size > 1) {
|
||||
error("Several instructions found for kind $kind")
|
||||
@@ -32,7 +32,7 @@ class SteppingInstruction(val kind: SteppingInstructionKind, val arg: Int) {
|
||||
return instructions.singleOrNull()
|
||||
}
|
||||
|
||||
private fun parse(file: CodegenTestCase.TestFile, processor: (String) -> SteppingInstruction?): List<SteppingInstruction> {
|
||||
private fun parse(file: TestFile, processor: (String) -> SteppingInstruction?): List<SteppingInstruction> {
|
||||
return file.content.lineSequence()
|
||||
.map { it.trimStart() }
|
||||
.filter { it.startsWith("// ") }
|
||||
|
||||
Reference in New Issue
Block a user