Fix bunch files after mpp changes
This commit is contained in:
@@ -52,6 +52,7 @@ import org.jetbrains.kotlin.idea.AbstractSmartSelectionTest
|
|||||||
import org.jetbrains.kotlin.idea.actions.AbstractGotoTestOrCodeActionTest
|
import org.jetbrains.kotlin.idea.actions.AbstractGotoTestOrCodeActionTest
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.AbstractIdeCompiledLightClassTest
|
import org.jetbrains.kotlin.idea.caches.resolve.AbstractIdeCompiledLightClassTest
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.AbstractIdeLightClassTest
|
import org.jetbrains.kotlin.idea.caches.resolve.AbstractIdeLightClassTest
|
||||||
|
import org.jetbrains.kotlin.idea.caches.resolve.AbstractMultiModuleHighlightingTest
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.AbstractMultiModuleLineMarkerTest
|
import org.jetbrains.kotlin.idea.caches.resolve.AbstractMultiModuleLineMarkerTest
|
||||||
import org.jetbrains.kotlin.idea.codeInsight.*
|
import org.jetbrains.kotlin.idea.codeInsight.*
|
||||||
import org.jetbrains.kotlin.idea.codeInsight.generate.AbstractCodeInsightActionTest
|
import org.jetbrains.kotlin.idea.codeInsight.generate.AbstractCodeInsightActionTest
|
||||||
@@ -641,6 +642,10 @@ fun main(args: Array<String>) {
|
|||||||
model("multiFileHighlighting", recursive = false)
|
model("multiFileHighlighting", recursive = false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testClass<AbstractMultiModuleHighlightingTest> {
|
||||||
|
model("multiModuleHighlighting/multiplatform/", recursive = false, extension = null)
|
||||||
|
}
|
||||||
|
|
||||||
testClass<AbstractQuickFixMultiModuleTest> {
|
testClass<AbstractQuickFixMultiModuleTest> {
|
||||||
model("multiModuleQuickFix", recursive = false, extension = null)
|
model("multiModuleQuickFix", recursive = false, extension = null)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ import org.jetbrains.kotlin.idea.AbstractSmartSelectionTest
|
|||||||
import org.jetbrains.kotlin.idea.actions.AbstractGotoTestOrCodeActionTest
|
import org.jetbrains.kotlin.idea.actions.AbstractGotoTestOrCodeActionTest
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.AbstractIdeCompiledLightClassTest
|
import org.jetbrains.kotlin.idea.caches.resolve.AbstractIdeCompiledLightClassTest
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.AbstractIdeLightClassTest
|
import org.jetbrains.kotlin.idea.caches.resolve.AbstractIdeLightClassTest
|
||||||
|
import org.jetbrains.kotlin.idea.caches.resolve.AbstractMultiModuleHighlightingTest
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.AbstractMultiModuleLineMarkerTest
|
import org.jetbrains.kotlin.idea.caches.resolve.AbstractMultiModuleLineMarkerTest
|
||||||
import org.jetbrains.kotlin.idea.codeInsight.*
|
import org.jetbrains.kotlin.idea.codeInsight.*
|
||||||
import org.jetbrains.kotlin.idea.codeInsight.generate.AbstractCodeInsightActionTest
|
import org.jetbrains.kotlin.idea.codeInsight.generate.AbstractCodeInsightActionTest
|
||||||
@@ -640,6 +641,10 @@ fun main(args: Array<String>) {
|
|||||||
model("multiFileHighlighting", recursive = false)
|
model("multiFileHighlighting", recursive = false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testClass<AbstractMultiModuleHighlightingTest> {
|
||||||
|
model("multiModuleHighlighting/multiplatform/", recursive = false, extension = null)
|
||||||
|
}
|
||||||
|
|
||||||
testClass<AbstractQuickFixMultiModuleTest> {
|
testClass<AbstractQuickFixMultiModuleTest> {
|
||||||
model("multiModuleQuickFix", recursive = false, extension = null)
|
model("multiModuleQuickFix", recursive = false, extension = null)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ import org.jetbrains.kotlin.idea.AbstractSmartSelectionTest
|
|||||||
import org.jetbrains.kotlin.idea.actions.AbstractGotoTestOrCodeActionTest
|
import org.jetbrains.kotlin.idea.actions.AbstractGotoTestOrCodeActionTest
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.AbstractIdeCompiledLightClassTest
|
import org.jetbrains.kotlin.idea.caches.resolve.AbstractIdeCompiledLightClassTest
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.AbstractIdeLightClassTest
|
import org.jetbrains.kotlin.idea.caches.resolve.AbstractIdeLightClassTest
|
||||||
|
import org.jetbrains.kotlin.idea.caches.resolve.AbstractMultiModuleHighlightingTest
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.AbstractMultiModuleLineMarkerTest
|
import org.jetbrains.kotlin.idea.caches.resolve.AbstractMultiModuleLineMarkerTest
|
||||||
import org.jetbrains.kotlin.idea.codeInsight.*
|
import org.jetbrains.kotlin.idea.codeInsight.*
|
||||||
import org.jetbrains.kotlin.idea.codeInsight.generate.AbstractCodeInsightActionTest
|
import org.jetbrains.kotlin.idea.codeInsight.generate.AbstractCodeInsightActionTest
|
||||||
@@ -640,6 +641,10 @@ fun main(args: Array<String>) {
|
|||||||
model("multiFileHighlighting", recursive = false)
|
model("multiFileHighlighting", recursive = false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testClass<AbstractMultiModuleHighlightingTest> {
|
||||||
|
model("multiModuleHighlighting/multiplatform/", recursive = false, extension = null)
|
||||||
|
}
|
||||||
|
|
||||||
testClass<AbstractQuickFixMultiModuleTest> {
|
testClass<AbstractQuickFixMultiModuleTest> {
|
||||||
model("multiModuleQuickFix", recursive = false, extension = null)
|
model("multiModuleQuickFix", recursive = false, extension = null)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,11 +11,18 @@ import com.intellij.openapi.module.StdModuleTypes
|
|||||||
import com.intellij.openapi.roots.CompilerModuleExtension
|
import com.intellij.openapi.roots.CompilerModuleExtension
|
||||||
import com.intellij.openapi.roots.ModuleRootModificationUtil
|
import com.intellij.openapi.roots.ModuleRootModificationUtil
|
||||||
import com.intellij.openapi.vfs.LocalFileSystem
|
import com.intellij.openapi.vfs.LocalFileSystem
|
||||||
|
import com.intellij.testFramework.PlatformTestCase
|
||||||
import junit.framework.TestCase
|
import junit.framework.TestCase
|
||||||
|
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
|
||||||
import org.jetbrains.kotlin.config.JvmTarget
|
import org.jetbrains.kotlin.config.JvmTarget
|
||||||
import org.jetbrains.kotlin.config.TargetPlatformKind
|
import org.jetbrains.kotlin.config.TargetPlatformKind
|
||||||
|
import org.jetbrains.kotlin.idea.framework.CommonLibraryKind
|
||||||
|
import org.jetbrains.kotlin.idea.framework.JSLibraryKind
|
||||||
import org.jetbrains.kotlin.idea.stubs.AbstractMultiModuleTest
|
import org.jetbrains.kotlin.idea.stubs.AbstractMultiModuleTest
|
||||||
import org.jetbrains.kotlin.idea.stubs.createFacet
|
import org.jetbrains.kotlin.idea.stubs.createFacet
|
||||||
|
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil
|
||||||
|
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
||||||
|
import org.jetbrains.kotlin.test.TestJdkKind
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
// allows to configure a test mpp project
|
// allows to configure a test mpp project
|
||||||
@@ -33,7 +40,21 @@ fun AbstractMultiModuleTest.setupMppProjectFromDirStructure(testRoot: File) {
|
|||||||
infosByModuleId.entries.forEach { (id, rootInfos) ->
|
infosByModuleId.entries.forEach { (id, rootInfos) ->
|
||||||
val module = modulesById[id]!!
|
val module = modulesById[id]!!
|
||||||
rootInfos.flatMap { it.dependencies }.forEach {
|
rootInfos.flatMap { it.dependencies }.forEach {
|
||||||
module.addDependency(modulesById[it]!!)
|
when (it) {
|
||||||
|
is ModuleDependency -> module.addDependency(modulesById[it.moduleId]!!)
|
||||||
|
is StdlibDependency -> when (id.platform) {
|
||||||
|
is TargetPlatformKind.Common -> module.addLibrary(
|
||||||
|
ForTestCompileRuntime.stdlibCommonForTests(), kind = CommonLibraryKind
|
||||||
|
)
|
||||||
|
is TargetPlatformKind.Jvm -> module.addLibrary(ForTestCompileRuntime.runtimeJarForTests())
|
||||||
|
is TargetPlatformKind.JavaScript -> module.addLibrary(ForTestCompileRuntime.stdlibJsForTests(), kind = JSLibraryKind)
|
||||||
|
}
|
||||||
|
is FullJdkDependency -> {
|
||||||
|
ConfigLibraryUtil.configureSdk(module, PluginTestCaseBase.addJdk(testRootDisposable) {
|
||||||
|
PluginTestCaseBase.jdk(TestJdkKind.FULL_JDK)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,7 +108,7 @@ private fun AbstractMultiModuleTest.createModule(name: String): Module {
|
|||||||
TestCase.assertNotNull(root)
|
TestCase.assertNotNull(root)
|
||||||
object : WriteCommandAction.Simple<Unit>(module.project) {
|
object : WriteCommandAction.Simple<Unit>(module.project) {
|
||||||
@Throws(Throwable::class)
|
@Throws(Throwable::class)
|
||||||
protected override fun run() {
|
override fun run() {
|
||||||
root!!.refresh(false, true)
|
root!!.refresh(false, true)
|
||||||
}
|
}
|
||||||
}.execute().throwException()
|
}.execute().throwException()
|
||||||
@@ -96,9 +117,11 @@ private fun AbstractMultiModuleTest.createModule(name: String): Module {
|
|||||||
|
|
||||||
private val testSuffixes = setOf("test", "tests")
|
private val testSuffixes = setOf("test", "tests")
|
||||||
private val platformNames = mapOf(
|
private val platformNames = mapOf(
|
||||||
TargetPlatformKind.Common to listOf("header", "common", "expect"),
|
listOf("header", "common", "expect") to TargetPlatformKind.Common,
|
||||||
TargetPlatformKind.Jvm[JvmTarget.DEFAULT] to listOf("java", "jvm"),
|
listOf("java", "jvm") to TargetPlatformKind.Jvm[JvmTarget.DEFAULT],
|
||||||
TargetPlatformKind.JavaScript to listOf("js", "javascript")
|
listOf("java8", "jvm8") to TargetPlatformKind.Jvm[JvmTarget.JVM_1_8],
|
||||||
|
listOf("java6", "jvm6") to TargetPlatformKind.Jvm[JvmTarget.JVM_1_6],
|
||||||
|
listOf("js", "javascript") to TargetPlatformKind.JavaScript
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun parseDirName(dir: File): RootInfo {
|
private fun parseDirName(dir: File): RootInfo {
|
||||||
@@ -108,20 +131,29 @@ private fun parseDirName(dir: File): RootInfo {
|
|||||||
|
|
||||||
private fun parseDependencies(parts: List<String>) =
|
private fun parseDependencies(parts: List<String>) =
|
||||||
parts.filter { it.startsWith("dep(") && it.endsWith(")") }.map {
|
parts.filter { it.startsWith("dep(") && it.endsWith(")") }.map {
|
||||||
parseModuleId(it.removePrefix("dep(").removeSuffix(")").split("-"))
|
parseDependency(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun parseDependency(it: String): Dependency {
|
||||||
|
val dependencyString = it.removePrefix("dep(").removeSuffix(")")
|
||||||
|
|
||||||
|
return when {
|
||||||
|
dependencyString.equals("stdlib", ignoreCase = true) -> StdlibDependency
|
||||||
|
dependencyString.equals("fulljdk", ignoreCase = true) -> FullJdkDependency
|
||||||
|
else -> ModuleDependency(parseModuleId(dependencyString.split("-")))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun parseModuleId(parts: List<String>): ModuleId {
|
private fun parseModuleId(parts: List<String>): ModuleId {
|
||||||
val platform = parsePlatform(parts).key
|
val platform = parsePlatform(parts)
|
||||||
val name = parseModuleName(parts)
|
val name = parseModuleName(parts)
|
||||||
val moduleId = ModuleId(name, platform)
|
return ModuleId(name, platform)
|
||||||
return moduleId
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun parsePlatform(parts: List<String>) =
|
private fun parsePlatform(parts: List<String>) =
|
||||||
platformNames.entries.single { (_, names) ->
|
platformNames.entries.single { (names, _) ->
|
||||||
names.any { name -> parts.any { part -> part.equals(name, ignoreCase = true) } }
|
names.any { name -> parts.any { part -> part.equals(name, ignoreCase = true) } }
|
||||||
}
|
}.value
|
||||||
|
|
||||||
private fun parseModuleName(parts: List<String>) = when {
|
private fun parseModuleName(parts: List<String>) = when {
|
||||||
parts.size > 1 -> parts.first()
|
parts.size > 1 -> parts.first()
|
||||||
@@ -149,5 +181,10 @@ private data class RootInfo(
|
|||||||
val moduleId: ModuleId,
|
val moduleId: ModuleId,
|
||||||
val isTestRoot: Boolean,
|
val isTestRoot: Boolean,
|
||||||
val moduleRoot: File,
|
val moduleRoot: File,
|
||||||
val dependencies: List<ModuleId>
|
val dependencies: List<Dependency>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
private sealed class Dependency
|
||||||
|
private class ModuleDependency(val moduleId: ModuleId) : Dependency()
|
||||||
|
private object StdlibDependency : Dependency()
|
||||||
|
private object FullJdkDependency : Dependency()
|
||||||
Reference in New Issue
Block a user