From 8e579855f2cce2cbda5b89d54836d39160de1366 Mon Sep 17 00:00:00 2001 From: Dmitry Savvinov Date: Wed, 22 May 2019 11:07:43 +0300 Subject: [PATCH] [Testing] Support test roots in dependencies.txt --- .../kotlin/idea/multiplatform/multiPlatformSetup.kt | 11 +++++++++++ idea/tests/org/jetbrains/kotlin/projectModel/Model.kt | 7 +++++-- .../tests/org/jetbrains/kotlin/projectModel/Parser.kt | 3 +++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/idea/tests/org/jetbrains/kotlin/idea/multiplatform/multiPlatformSetup.kt b/idea/tests/org/jetbrains/kotlin/idea/multiplatform/multiPlatformSetup.kt index 54be4d209f9..b5d2fdc0d39 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/multiplatform/multiPlatformSetup.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/multiplatform/multiPlatformSetup.kt @@ -53,12 +53,23 @@ fun AbstractMultiModuleTest.setupMppProjectFromTextFile(testRoot: File) { fun AbstractMultiModuleTest.doSetup(projectModel: ProjectResolveModel) { val resolveModulesToIdeaModules = projectModel.modules.map { resolveModule -> val ideaModule = createModule(resolveModule.name) + addRoot( ideaModule, resolveModule.root, isTestRoot = false, transformContainedFiles = { if (it.extension == "kt") clearFileFromDiagnosticMarkup(it) } ) + + if (resolveModule.testRoot != null) { + addRoot( + ideaModule, + resolveModule.testRoot, + isTestRoot = true, + transformContainedFiles = { if (it.extension == "kt") clearFileFromDiagnosticMarkup(it) } + ) + } + resolveModule to ideaModule }.toMap() diff --git a/idea/tests/org/jetbrains/kotlin/projectModel/Model.kt b/idea/tests/org/jetbrains/kotlin/projectModel/Model.kt index 7d3ac5f8db7..fd7ffad47f6 100644 --- a/idea/tests/org/jetbrains/kotlin/projectModel/Model.kt +++ b/idea/tests/org/jetbrains/kotlin/projectModel/Model.kt @@ -29,7 +29,8 @@ open class ResolveModule( val name: String, val root: File, val platform: TargetPlatform, - val dependencies: List + val dependencies: List, + val testRoot: File? = null ) { final override fun toString(): String { return buildString { renderDescription(Printer(this)) } @@ -40,6 +41,7 @@ open class ResolveModule( printer.pushIndent() printer.println("platform=$platform") printer.println("root=${root.absolutePath}") + if (testRoot != null) printer.println("testRoot=${testRoot.absolutePath}") printer.println("dependencies=${dependencies.joinToString { it.to.name }}") } @@ -66,6 +68,7 @@ open class ResolveModule( var root: File? = null var platform: TargetPlatform? = null val dependencies: MutableList = mutableListOf() + var testRoot: File? = null open fun build(): ResolveModule { if (state == State.BUILT) return cachedResult!! @@ -74,7 +77,7 @@ open class ResolveModule( state = State.BUILDING val builtDependencies = dependencies.map { it.build() } - cachedResult = ResolveModule(name!!, root!!, platform!!, builtDependencies) + cachedResult = ResolveModule(name!!, root!!, platform!!, builtDependencies, testRoot) state = State.BUILT return cachedResult!! diff --git a/idea/tests/org/jetbrains/kotlin/projectModel/Parser.kt b/idea/tests/org/jetbrains/kotlin/projectModel/Parser.kt index 610f49c6d45..f263419bb83 100644 --- a/idea/tests/org/jetbrains/kotlin/projectModel/Parser.kt +++ b/idea/tests/org/jetbrains/kotlin/projectModel/Parser.kt @@ -68,6 +68,9 @@ open class ProjectStructureParser(private val projectRoot: File) { val root = attributes["root"] ?: builder.name!! builder.root = File(projectRoot, root) + + val testRoot = attributes["testRoot"] + if (testRoot != null) builder.testRoot = File(projectRoot, testRoot) } private fun Reader.parseDependenciesDefinition(fromName: String) {