Scratch: add multifile tests
This commit is contained in:
@@ -735,8 +735,9 @@ fun main(args: Array<String>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
testClass<AbstractScratchRunActionTest> {
|
testClass<AbstractScratchRunActionTest> {
|
||||||
model("scratch", extension = "kts", testMethod = "doCompilingTest", testClassName = "Compiling")
|
model("scratch", extension = "kts", testMethod = "doCompilingTest", testClassName = "Compiling", recursive = false)
|
||||||
model("scratch", extension = "kts", testMethod = "doReplTest", testClassName = "Repl")
|
model("scratch", extension = "kts", testMethod = "doReplTest", testClassName = "Repl", recursive = false)
|
||||||
|
model("scratch/multiFile", extension = null, testMethod = "doMultiFileTest", recursive = false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+8
@@ -0,0 +1,8 @@
|
|||||||
|
class GClass<T> { // RESULT: class GClass<T>
|
||||||
|
fun foo(t: T): T {
|
||||||
|
return t
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val g = GClass<Int>() // RESULT: val g: Generics.GClass<Int>
|
||||||
|
g.foo(1) // RESULT: 1
|
||||||
Vendored
+8
@@ -0,0 +1,8 @@
|
|||||||
|
class GClass<T> {
|
||||||
|
fun foo(t: T): T {
|
||||||
|
return t
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val g = GClass<Int>()
|
||||||
|
g.foo(1)
|
||||||
+8
@@ -0,0 +1,8 @@
|
|||||||
|
class GClass<T> {
|
||||||
|
fun foo(t: T): T {
|
||||||
|
return t
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val g = GClass<Int>()
|
||||||
|
g.foo(1) // RESULT: 1
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
class MyClass { // RESULT: class MyClass
|
||||||
|
fun foo() = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
MyClass().foo() // RESULT: 1
|
||||||
|
|
||||||
|
interface I { // RESULT: interface I
|
||||||
|
fun foo(): Int
|
||||||
|
}
|
||||||
|
|
||||||
|
val i = object: I { // RESULT: val i: Klass.I
|
||||||
|
override fun foo(): Int = 1
|
||||||
|
}
|
||||||
|
i.foo() // RESULT: 1
|
||||||
Vendored
+14
@@ -0,0 +1,14 @@
|
|||||||
|
class MyClass {
|
||||||
|
fun foo() = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
MyClass().foo()
|
||||||
|
|
||||||
|
interface I {
|
||||||
|
fun foo(): Int
|
||||||
|
}
|
||||||
|
|
||||||
|
val i = object: I {
|
||||||
|
override fun foo(): Int = 1
|
||||||
|
}
|
||||||
|
i.foo()
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
class MyClass {
|
||||||
|
fun foo() = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
MyClass().foo() // RESULT: 1
|
||||||
|
|
||||||
|
interface I {
|
||||||
|
fun foo(): Int
|
||||||
|
}
|
||||||
|
|
||||||
|
val i = object: I {
|
||||||
|
override fun foo(): Int = 1
|
||||||
|
}
|
||||||
|
i.foo() // RESULT: 1
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
import inlineFun.*
|
||||||
|
|
||||||
|
foo { 1 + 3 } // RESULT: 4
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
import inlineFun.*
|
||||||
|
|
||||||
|
foo { 1 + 3 }
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
import inlineFun.*
|
||||||
|
|
||||||
|
foo { 1 + 3 } // RESULT: 4
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
package inlineFun
|
||||||
|
|
||||||
|
inline fun foo(f: () -> Int): Int = f()
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
import myTest.MyJavaClass
|
||||||
|
|
||||||
|
MyJavaClass().test() // RESULT: 1
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
import myTest.MyJavaClass
|
||||||
|
|
||||||
|
MyJavaClass().test()
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
import myTest.MyJavaClass
|
||||||
|
|
||||||
|
MyJavaClass().test() // RESULT: 1
|
||||||
Vendored
+3
@@ -0,0 +1,3 @@
|
|||||||
|
var a = 1 // RESULT: var a: Int
|
||||||
|
a++ // RESULT: 1
|
||||||
|
a // RESULT: 2
|
||||||
Vendored
+3
@@ -0,0 +1,3 @@
|
|||||||
|
var a = 1
|
||||||
|
a++
|
||||||
|
a
|
||||||
Vendored
+3
@@ -0,0 +1,3 @@
|
|||||||
|
var a = 1
|
||||||
|
a++ // RESULT: 1
|
||||||
|
a // RESULT: 2
|
||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
val a = 1 // RESULT: val a: Int
|
||||||
|
when(a) { // OUTPUT: 1
|
||||||
|
1 -> println("1")
|
||||||
|
else -> println("2")
|
||||||
|
}
|
||||||
|
|
||||||
|
when(a) { // OUTPUT: 1
|
||||||
|
1 -> println("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
when(a) { // OUTPUT: 1
|
||||||
|
2 -> println("2")
|
||||||
|
else -> println("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
when(a) { // RESULT: 11
|
||||||
|
1 -> 11
|
||||||
|
else -> 12
|
||||||
|
}
|
||||||
Vendored
+19
@@ -0,0 +1,19 @@
|
|||||||
|
val a = 1
|
||||||
|
when(a) {
|
||||||
|
1 -> println("1")
|
||||||
|
else -> println("2")
|
||||||
|
}
|
||||||
|
|
||||||
|
when(a) {
|
||||||
|
1 -> println("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
when(a) {
|
||||||
|
2 -> println("2")
|
||||||
|
else -> println("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
when(a) {
|
||||||
|
1 -> 11
|
||||||
|
else -> 12
|
||||||
|
}
|
||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
val a = 1
|
||||||
|
when(a) { // OUTPUT: 1
|
||||||
|
1 -> println("1")
|
||||||
|
else -> println("2")
|
||||||
|
}
|
||||||
|
|
||||||
|
when(a) { // OUTPUT: 1
|
||||||
|
1 -> println("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
when(a) { // OUTPUT: 1
|
||||||
|
2 -> println("2")
|
||||||
|
else -> println("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
when(a) {
|
||||||
|
1 -> 11
|
||||||
|
else -> 12
|
||||||
|
}
|
||||||
@@ -20,25 +20,30 @@ import com.intellij.ide.scratch.ScratchFileService
|
|||||||
import com.intellij.ide.scratch.ScratchRootType
|
import com.intellij.ide.scratch.ScratchRootType
|
||||||
import com.intellij.openapi.actionSystem.AnAction
|
import com.intellij.openapi.actionSystem.AnAction
|
||||||
import com.intellij.openapi.actionSystem.CommonDataKeys
|
import com.intellij.openapi.actionSystem.CommonDataKeys
|
||||||
import com.intellij.openapi.fileEditor.FileEditorManager
|
|
||||||
import com.intellij.openapi.fileEditor.TextEditor
|
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
|
import com.intellij.openapi.roots.CompilerModuleExtension
|
||||||
|
import com.intellij.openapi.roots.ModuleRootModificationUtil
|
||||||
|
import com.intellij.openapi.util.io.FileUtil
|
||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
import com.intellij.psi.PsiDocumentManager
|
import com.intellij.psi.PsiDocumentManager
|
||||||
|
import com.intellij.psi.PsiManager
|
||||||
import com.intellij.testFramework.FileEditorManagerTestCase
|
import com.intellij.testFramework.FileEditorManagerTestCase
|
||||||
import com.intellij.testFramework.MapDataContext
|
import com.intellij.testFramework.MapDataContext
|
||||||
|
import com.intellij.testFramework.PsiTestUtil
|
||||||
import com.intellij.testFramework.TestActionEvent
|
import com.intellij.testFramework.TestActionEvent
|
||||||
import com.intellij.util.ui.UIUtil
|
import com.intellij.util.ui.UIUtil
|
||||||
import org.jetbrains.kotlin.idea.KotlinLanguage
|
import org.jetbrains.kotlin.idea.KotlinLanguage
|
||||||
import org.jetbrains.kotlin.idea.scratch.actions.RunScratchAction
|
import org.jetbrains.kotlin.idea.scratch.actions.RunScratchAction
|
||||||
import org.jetbrains.kotlin.idea.scratch.output.InlayScratchOutputHandler
|
import org.jetbrains.kotlin.idea.scratch.output.InlayScratchOutputHandler
|
||||||
import org.jetbrains.kotlin.idea.scratch.ui.scratchTopPanel
|
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
|
import org.jetbrains.kotlin.test.MockLibraryUtil
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
abstract class AbstractScratchRunActionTest : FileEditorManagerTestCase() {
|
abstract class AbstractScratchRunActionTest : FileEditorManagerTestCase() {
|
||||||
|
|
||||||
fun doReplTest(fileName: String) {
|
fun doReplTest(fileName: String) {
|
||||||
doTest(fileName, true)
|
doTest(fileName, true)
|
||||||
}
|
}
|
||||||
@@ -47,6 +52,40 @@ abstract class AbstractScratchRunActionTest : FileEditorManagerTestCase() {
|
|||||||
doTest(fileName, false)
|
doTest(fileName, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun doMultiFileTest(dirName: String) {
|
||||||
|
val javaFiles = arrayListOf<File>()
|
||||||
|
val kotlinFiles = arrayListOf<File>()
|
||||||
|
val baseDir = File(testDataPath, dirName)
|
||||||
|
baseDir.walk().forEach {
|
||||||
|
if (it.isFile) {
|
||||||
|
if (it.extension == "java") javaFiles.add(it)
|
||||||
|
if (it.extension == "kt") kotlinFiles.add(it)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
javaFiles.forEach { myFixture.copyFileToProject(it.path, FileUtil.getRelativePath(baseDir, it)!!) }
|
||||||
|
kotlinFiles.forEach { myFixture.copyFileToProject(it.path, FileUtil.getRelativePath(baseDir, it)!!) }
|
||||||
|
|
||||||
|
val outputDir = myFixture.tempDirFixture.findOrCreateDir("out1")
|
||||||
|
|
||||||
|
MockLibraryUtil.compileKotlin(baseDir.path, File(outputDir.path))
|
||||||
|
|
||||||
|
if (javaFiles.isNotEmpty()) {
|
||||||
|
val options = Arrays.asList("-d", outputDir.path)
|
||||||
|
KotlinTestUtils.compileJavaFiles(javaFiles, options)
|
||||||
|
}
|
||||||
|
|
||||||
|
PsiTestUtil.setCompilerOutputPath(myModule, outputDir.url, false)
|
||||||
|
|
||||||
|
val mainFileName = "$dirName/${getTestName(true)}.kts"
|
||||||
|
doCompilingTest(mainFileName)
|
||||||
|
doReplTest(mainFileName)
|
||||||
|
|
||||||
|
ModuleRootModificationUtil.updateModel(myModule) { model ->
|
||||||
|
model.getModuleExtension(CompilerModuleExtension::class.java).inheritCompilerOutputPath(true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun doTest(fileName: String, isRepl: Boolean) {
|
fun doTest(fileName: String, isRepl: Boolean) {
|
||||||
val sourceFile = File(testDataPath, fileName)
|
val sourceFile = File(testDataPath, fileName)
|
||||||
val fileText = sourceFile.readText()
|
val fileText = sourceFile.readText()
|
||||||
@@ -61,9 +100,11 @@ abstract class AbstractScratchRunActionTest : FileEditorManagerTestCase() {
|
|||||||
|
|
||||||
myFixture.openFileInEditor(scratchFile)
|
myFixture.openFileInEditor(scratchFile)
|
||||||
|
|
||||||
ScratchFileLanguageProvider.createFile(myFixture.file)?.scratchTopPanel?.setReplMode(isRepl)
|
val psiFile = PsiManager.getInstance(project).findFile(scratchFile) ?: error("Couldn't find psi file ${sourceFile.path}")
|
||||||
|
val (editor, scratchPanel) = getEditorWithScratchPanel(project, scratchFile)?: error("Couldn't find scratch panel")
|
||||||
|
scratchPanel.setReplMode(isRepl)
|
||||||
|
|
||||||
val event = getActionEvent(myFixture.file.virtualFile, RunScratchAction())
|
val event = getActionEvent(scratchFile, RunScratchAction())
|
||||||
launchAction(event, RunScratchAction())
|
launchAction(event, RunScratchAction())
|
||||||
|
|
||||||
UIUtil.dispatchAllInvocationEvents()
|
UIUtil.dispatchAllInvocationEvents()
|
||||||
@@ -71,29 +112,32 @@ abstract class AbstractScratchRunActionTest : FileEditorManagerTestCase() {
|
|||||||
val start = System.currentTimeMillis()
|
val start = System.currentTimeMillis()
|
||||||
// wait until output is displayed in editor or for 1 minute
|
// wait until output is displayed in editor or for 1 minute
|
||||||
while (!event.presentation.isEnabled && (System.currentTimeMillis() - start) < 60000) {
|
while (!event.presentation.isEnabled && (System.currentTimeMillis() - start) < 60000) {
|
||||||
Thread.sleep(5000)
|
Thread.sleep(100)
|
||||||
}
|
}
|
||||||
|
|
||||||
UIUtil.dispatchAllInvocationEvents()
|
UIUtil.dispatchAllInvocationEvents()
|
||||||
|
|
||||||
val editors = FileEditorManager.getInstance(project).getEditors(scratchFile).filterIsInstance<TextEditor>()
|
val doc = PsiDocumentManager.getInstance(project).getDocument(psiFile) ?: error("Document for ${psiFile.name} is null")
|
||||||
val doc = PsiDocumentManager.getInstance(project).getDocument(myFixture.file) ?: error("Document for ${myFixture.file.name} is null")
|
|
||||||
|
|
||||||
val actualOutput = StringBuilder(myFixture.file.text)
|
val actualOutput = StringBuilder(psiFile.text)
|
||||||
for (line in doc.lineCount - 1 downTo 0) {
|
for (line in doc.lineCount - 1 downTo 0) {
|
||||||
editors.flatMap { it.editor.inlayModel.getInlineElementsInRange(doc.getLineStartOffset(line), doc.getLineEndOffset(line)) }
|
editor.editor.inlayModel.getInlineElementsInRange(
|
||||||
.map { it.renderer }
|
doc.getLineStartOffset(line),
|
||||||
|
doc.getLineEndOffset(line)
|
||||||
|
).map { it.renderer }
|
||||||
.filterIsInstance<InlayScratchOutputHandler.ScratchFileRenderer>()
|
.filterIsInstance<InlayScratchOutputHandler.ScratchFileRenderer>()
|
||||||
.forEach {
|
.forEach {
|
||||||
val str = it.toString()
|
val str = it.toString()
|
||||||
|
val offset = doc.getLineEndOffset(line); actualOutput.insert(offset, " // $str")
|
||||||
val offset = doc.getLineEndOffset(line)
|
|
||||||
actualOutput.insert(offset, " // $str")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val expectedFileName = if (isRepl) fileName.replace(".kts", ".repl.after") else fileName.replace(".kts", ".comp.after")
|
val expectedFileName = if (isRepl) {
|
||||||
val expectedFile = File("$testDataPath/$expectedFileName")
|
fileName.replace(".kts", ".repl.after")
|
||||||
|
} else {
|
||||||
|
fileName.replace(".kts", ".comp.after")
|
||||||
|
}
|
||||||
|
val expectedFile = File(testDataPath, expectedFileName)
|
||||||
KotlinTestUtils.assertEqualsToFile(expectedFile, actualOutput.toString())
|
KotlinTestUtils.assertEqualsToFile(expectedFile, actualOutput.toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,7 +150,7 @@ abstract class AbstractScratchRunActionTest : FileEditorManagerTestCase() {
|
|||||||
private fun getActionEvent(virtualFile: VirtualFile, action: AnAction): TestActionEvent {
|
private fun getActionEvent(virtualFile: VirtualFile, action: AnAction): TestActionEvent {
|
||||||
val context = MapDataContext()
|
val context = MapDataContext()
|
||||||
context.put(CommonDataKeys.VIRTUAL_FILE_ARRAY, arrayOf(virtualFile))
|
context.put(CommonDataKeys.VIRTUAL_FILE_ARRAY, arrayOf(virtualFile))
|
||||||
context.put<Project>(CommonDataKeys.PROJECT, myFixture.project)
|
context.put<Project>(CommonDataKeys.PROJECT, project)
|
||||||
return TestActionEvent(context, action)
|
return TestActionEvent(context, action)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+71
-2
@@ -24,7 +24,7 @@ public class ScratchRunActionTestGenerated extends AbstractScratchRunActionTest
|
|||||||
@RunWith(JUnit3RunnerWithInners.class)
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
public static class Compiling extends AbstractScratchRunActionTest {
|
public static class Compiling extends AbstractScratchRunActionTest {
|
||||||
public void testAllFilesPresentInCompiling() throws Exception {
|
public void testAllFilesPresentInCompiling() throws Exception {
|
||||||
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/scratch"), Pattern.compile("^(.+)\\.kts$"), TargetBackend.ANY, true);
|
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/scratch"), Pattern.compile("^(.+)\\.kts$"), TargetBackend.ANY, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("for.kts")
|
@TestMetadata("for.kts")
|
||||||
@@ -33,6 +33,18 @@ public class ScratchRunActionTestGenerated extends AbstractScratchRunActionTest
|
|||||||
doCompilingTest(fileName);
|
doCompilingTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("generics.kts")
|
||||||
|
public void testGenerics() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/generics.kts");
|
||||||
|
doCompilingTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("klass.kts")
|
||||||
|
public void testKlass() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/klass.kts");
|
||||||
|
doCompilingTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("simple.kts")
|
@TestMetadata("simple.kts")
|
||||||
public void testSimple() throws Exception {
|
public void testSimple() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/simple.kts");
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/simple.kts");
|
||||||
@@ -62,6 +74,18 @@ public class ScratchRunActionTestGenerated extends AbstractScratchRunActionTest
|
|||||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/userOutput.kts");
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/userOutput.kts");
|
||||||
doCompilingTest(fileName);
|
doCompilingTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("var.kts")
|
||||||
|
public void testVar() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/var.kts");
|
||||||
|
doCompilingTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("when.kts")
|
||||||
|
public void testWhen() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/when.kts");
|
||||||
|
doCompilingTest(fileName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("idea/testData/scratch")
|
@TestMetadata("idea/testData/scratch")
|
||||||
@@ -69,7 +93,7 @@ public class ScratchRunActionTestGenerated extends AbstractScratchRunActionTest
|
|||||||
@RunWith(JUnit3RunnerWithInners.class)
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
public static class Repl extends AbstractScratchRunActionTest {
|
public static class Repl extends AbstractScratchRunActionTest {
|
||||||
public void testAllFilesPresentInRepl() throws Exception {
|
public void testAllFilesPresentInRepl() throws Exception {
|
||||||
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/scratch"), Pattern.compile("^(.+)\\.kts$"), TargetBackend.ANY, true);
|
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/scratch"), Pattern.compile("^(.+)\\.kts$"), TargetBackend.ANY, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("for.kts")
|
@TestMetadata("for.kts")
|
||||||
@@ -78,6 +102,18 @@ public class ScratchRunActionTestGenerated extends AbstractScratchRunActionTest
|
|||||||
doReplTest(fileName);
|
doReplTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("generics.kts")
|
||||||
|
public void testGenerics() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/generics.kts");
|
||||||
|
doReplTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("klass.kts")
|
||||||
|
public void testKlass() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/klass.kts");
|
||||||
|
doReplTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("simple.kts")
|
@TestMetadata("simple.kts")
|
||||||
public void testSimple() throws Exception {
|
public void testSimple() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/simple.kts");
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/simple.kts");
|
||||||
@@ -107,5 +143,38 @@ public class ScratchRunActionTestGenerated extends AbstractScratchRunActionTest
|
|||||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/userOutput.kts");
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/userOutput.kts");
|
||||||
doReplTest(fileName);
|
doReplTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("var.kts")
|
||||||
|
public void testVar() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/var.kts");
|
||||||
|
doReplTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("when.kts")
|
||||||
|
public void testWhen() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/when.kts");
|
||||||
|
doReplTest(fileName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("idea/testData/scratch/multiFile")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class MultiFile extends AbstractScratchRunActionTest {
|
||||||
|
public void testAllFilesPresentInMultiFile() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/scratch/multiFile"), Pattern.compile("^([^\\.]+)$"), TargetBackend.ANY, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("inlineFun")
|
||||||
|
public void testInlineFun() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/multiFile/inlineFun/");
|
||||||
|
doMultiFileTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("javaDep")
|
||||||
|
public void testJavaDep() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/scratch/multiFile/javaDep/");
|
||||||
|
doMultiFileTest(fileName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user