| import org.jetbrains.kotlin.ideaExt.idea |
| |
| plugins { |
| kotlin("jvm") |
| id("jps-compatible") |
| } |
| |
| dependencies { |
| testApi(project(":compiler:fir:entrypoint")) |
| testApi(project(":compiler:cli")) |
| testImplementation(project(":compiler:ir.tree")) |
| testImplementation(project(":compiler:backend.jvm.entrypoint")) |
| testImplementation(project(":compiler:backend.jvm.lower")) |
| testImplementation(intellijCore()) |
| |
| testRuntimeOnly(project(":core:descriptors.runtime")) |
| |
| testImplementation(projectTests(":generators:test-generator")) |
| |
| testApiJUnit5() |
| testApi(projectTests(":compiler:test-infrastructure")) |
| testApi(projectTests(":compiler:test-infrastructure-utils")) |
| testApi(projectTests(":compiler:tests-compiler-utils")) |
| |
| /* |
| * Actually those dependencies are needed only at runtime, but they |
| * declared as Api dependencies to propagate them to all modules |
| * which depend on current one |
| */ |
| testApi(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil")) |
| testApi(commonDependency("one.util:streamex")) |
| testApi(commonDependency("net.java.dev.jna:jna")) |
| testApi(jpsModel()) { isTransitive = false } |
| testApi(jpsModelImpl()) { isTransitive = false } |
| testApi(intellijJavaRt()) |
| |
| testApi(toolsJar()) |
| } |
| |
| optInToExperimentalCompilerApi() |
| |
| val generationRoot = projectDir.resolve("tests-gen") |
| |
| sourceSets { |
| "main" { none() } |
| "test" { |
| projectDefault() |
| this.java.srcDir(generationRoot.name) |
| } |
| } |
| |
| if (kotlinBuildProperties.isInJpsBuildIdeaSync) { |
| apply(plugin = "idea") |
| idea { |
| this.module.generatedSourceDirs.add(generationRoot) |
| } |
| } |
| |
| projectTest(jUnitMode = JUnitMode.JUnit5) { |
| dependsOn(":dist") |
| workingDir = rootDir |
| useJUnitPlatform() |
| } |
| |
| testsJar() |