[Testing] Support test roots in dependencies.txt
diff --git a/idea/tests/org/jetbrains/kotlin/idea/multiplatform/multiPlatformSetup.kt b/idea/tests/org/jetbrains/kotlin/idea/multiplatform/multiPlatformSetup.kt
index 47cce10..9f7109b 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/multiplatform/multiPlatformSetup.kt
+++ b/idea/tests/org/jetbrains/kotlin/idea/multiplatform/multiPlatformSetup.kt
@@ -52,12 +52,23 @@
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 7d3ac5f8..fd7ffad 100644
--- a/idea/tests/org/jetbrains/kotlin/projectModel/Model.kt
+++ b/idea/tests/org/jetbrains/kotlin/projectModel/Model.kt
@@ -29,7 +29,8 @@
val name: String,
val root: File,
val platform: TargetPlatform,
- val dependencies: List<ResolveDependency>
+ val dependencies: List<ResolveDependency>,
+ val testRoot: File? = null
) {
final override fun toString(): String {
return buildString { renderDescription(Printer(this)) }
@@ -40,6 +41,7 @@
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 @@
var root: File? = null
var platform: TargetPlatform? = null
val dependencies: MutableList<ResolveDependency.Builder> = mutableListOf()
+ var testRoot: File? = null
open fun build(): ResolveModule {
if (state == State.BUILT) return cachedResult!!
@@ -74,7 +77,7 @@
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 610f49c..f263419 100644
--- a/idea/tests/org/jetbrains/kotlin/projectModel/Parser.kt
+++ b/idea/tests/org/jetbrains/kotlin/projectModel/Parser.kt
@@ -68,6 +68,9 @@
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) {