From cf8e65b3c504cddb8defaf83b34f7ac39751fe24 Mon Sep 17 00:00:00 2001 From: "Alexander.Likhachev" Date: Tue, 5 Mar 2024 19:54:01 +0100 Subject: [PATCH] [BTA tests] Specify `TestDataPath`/`TestMetadata` test data navigation ^KT-61860 In Progress --- .../kotlin-build-tools-api-tests/build.gradle.kts | 7 ++++++- .../kotlin/compilation/model/BaseCompilationTest.kt | 2 ++ .../kotlin/ExampleCompatibilityCompilationTest.kt | 4 +++- .../kotlin/ExampleIncrementalCompilationTest.kt | 7 +++++-- .../kotlin/ExampleIncrementalScenarioTest.kt | 10 +++++++--- 5 files changed, 23 insertions(+), 7 deletions(-) diff --git a/compiler/build-tools/kotlin-build-tools-api-tests/build.gradle.kts b/compiler/build-tools/kotlin-build-tools-api-tests/build.gradle.kts index 158e6a54650..5c4cc47c3cb 100644 --- a/compiler/build-tools/kotlin-build-tools-api-tests/build.gradle.kts +++ b/compiler/build-tools/kotlin-build-tools-api-tests/build.gradle.kts @@ -10,6 +10,7 @@ dependencies { api(kotlinStdlib()) compileOnly(project(":kotlin-tooling-core")) // to reuse `KotlinToolingVersion` compileOnly(project(":compiler:build-tools:kotlin-build-tools-api")) + api(projectTests(":compiler:test-infrastructure-utils")) // for `@TestDataPath`/`@TestMetadata` api(platform(libs.junit.bom)) compileOnly(libs.junit.jupiter.engine) @@ -73,9 +74,13 @@ testing { register(suit) } + var configuredIdeaSourceSets = false for (implVersion in compatibilityTestsVersions) { register("testCompatibility${implVersion}") { - sources.configureCompatibilitySourceDirectories() + if (!kotlinBuildProperties.isInIdeaSync || !configuredIdeaSourceSets) { + sources.configureCompatibilitySourceDirectories() + configuredIdeaSourceSets = true + } dependencies { if (implVersion.isCurrent) { runtimeOnly(project(":compiler:build-tools:kotlin-build-tools-impl")) diff --git a/compiler/build-tools/kotlin-build-tools-api-tests/src/main/kotlin/compilation/model/BaseCompilationTest.kt b/compiler/build-tools/kotlin-build-tools-api-tests/src/main/kotlin/compilation/model/BaseCompilationTest.kt index da7234e46e8..a497a9eaf19 100644 --- a/compiler/build-tools/kotlin-build-tools-api-tests/src/main/kotlin/compilation/model/BaseCompilationTest.kt +++ b/compiler/build-tools/kotlin-build-tools-api-tests/src/main/kotlin/compilation/model/BaseCompilationTest.kt @@ -5,9 +5,11 @@ package org.jetbrains.kotlin.buildtools.api.tests.compilation.model +import com.intellij.testFramework.TestDataPath import org.junit.jupiter.api.io.TempDir import java.nio.file.Path +@TestDataPath("\$CONTENT_ROOT/../main/resources/modules") abstract class BaseCompilationTest { @TempDir lateinit var workingDirectory: Path diff --git a/compiler/build-tools/kotlin-build-tools-api-tests/src/testCompatibility/kotlin/ExampleCompatibilityCompilationTest.kt b/compiler/build-tools/kotlin-build-tools-api-tests/src/testCompatibility/kotlin/ExampleCompatibilityCompilationTest.kt index 3fe6a81d0d4..29083ee0a68 100644 --- a/compiler/build-tools/kotlin-build-tools-api-tests/src/testCompatibility/kotlin/ExampleCompatibilityCompilationTest.kt +++ b/compiler/build-tools/kotlin-build-tools-api-tests/src/testCompatibility/kotlin/ExampleCompatibilityCompilationTest.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.buildtools.api.tests.compilation.assertions.assertOu import org.jetbrains.kotlin.buildtools.api.tests.compilation.model.BaseCompilationTest import org.jetbrains.kotlin.buildtools.api.tests.compilation.model.DefaultStrategyAgnosticCompilationTest import org.jetbrains.kotlin.buildtools.api.tests.compilation.model.project +import org.jetbrains.kotlin.test.TestMetadata import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.DisplayName @@ -17,7 +18,8 @@ import org.junit.jupiter.api.DisplayName class ExampleCompatibilityCompilationTest : BaseCompilationTest() { @DefaultStrategyAgnosticCompilationTest @DisplayName("Sample compatibility compilation test that is run as part of each test suit") - fun myTest(strategyConfig: CompilerExecutionStrategyConfiguration) { + @TestMetadata("jvm-module-1") + fun testCompatibilityCompilation(strategyConfig: CompilerExecutionStrategyConfiguration) { project { val module1 = module("jvm-module-1") val module2 = module("jvm-module-2", listOf(module1)) diff --git a/compiler/build-tools/kotlin-build-tools-api-tests/src/testExample/kotlin/ExampleIncrementalCompilationTest.kt b/compiler/build-tools/kotlin-build-tools-api-tests/src/testExample/kotlin/ExampleIncrementalCompilationTest.kt index 7336af5d60d..15f2876a7a3 100644 --- a/compiler/build-tools/kotlin-build-tools-api-tests/src/testExample/kotlin/ExampleIncrementalCompilationTest.kt +++ b/compiler/build-tools/kotlin-build-tools-api-tests/src/testExample/kotlin/ExampleIncrementalCompilationTest.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.buildtools.api.tests.compilation.model.BaseCompilati import org.jetbrains.kotlin.buildtools.api.tests.compilation.model.DefaultStrategyAgnosticCompilationTest import org.jetbrains.kotlin.buildtools.api.tests.compilation.model.LogLevel import org.jetbrains.kotlin.buildtools.api.tests.compilation.model.project +import org.jetbrains.kotlin.test.TestMetadata import org.junit.jupiter.api.DisplayName import kotlin.io.path.readText import kotlin.io.path.writeText @@ -20,7 +21,8 @@ import kotlin.io.path.writeText class ExampleIncrementalCompilationTest : BaseCompilationTest() { @DisplayName("Sample IC test with a single module") @DefaultStrategyAgnosticCompilationTest - fun singleModuleTest(strategyConfig: CompilerExecutionStrategyConfiguration) { + @TestMetadata("jvm-module-1") + fun testSingleModule(strategyConfig: CompilerExecutionStrategyConfiguration) { project { val module1 = module("jvm-module-1") @@ -41,7 +43,8 @@ class ExampleIncrementalCompilationTest : BaseCompilationTest() { @DisplayName("Sample IC test with 2 modules and custom compilation options") @DefaultStrategyAgnosticCompilationTest - fun twoModulesTest(strategyConfig: CompilerExecutionStrategyConfiguration) { + @TestMetadata("jvm-module-1") + fun testTwoModules(strategyConfig: CompilerExecutionStrategyConfiguration) { project { val module1 = module("jvm-module-1") val module2 = module("jvm-module-2", listOf(module1)) diff --git a/compiler/build-tools/kotlin-build-tools-api-tests/src/testExample/kotlin/ExampleIncrementalScenarioTest.kt b/compiler/build-tools/kotlin-build-tools-api-tests/src/testExample/kotlin/ExampleIncrementalScenarioTest.kt index cf6eb6270b8..e468ae547da 100644 --- a/compiler/build-tools/kotlin-build-tools-api-tests/src/testExample/kotlin/ExampleIncrementalScenarioTest.kt +++ b/compiler/build-tools/kotlin-build-tools-api-tests/src/testExample/kotlin/ExampleIncrementalScenarioTest.kt @@ -10,12 +10,14 @@ import org.jetbrains.kotlin.buildtools.api.tests.compilation.assertions.assertCo import org.jetbrains.kotlin.buildtools.api.tests.compilation.scenario.scenario import org.jetbrains.kotlin.buildtools.api.tests.compilation.model.BaseCompilationTest import org.jetbrains.kotlin.buildtools.api.tests.compilation.model.DefaultStrategyAgnosticCompilationTest +import org.jetbrains.kotlin.test.TestMetadata import org.junit.jupiter.api.DisplayName class ExampleIncrementalScenarioTest : BaseCompilationTest() { @DefaultStrategyAgnosticCompilationTest @DisplayName("Sample scenario DSL IC test with a single module") - fun scenario1Test(strategyConfig: CompilerExecutionStrategyConfiguration) { + @TestMetadata("jvm-module-1") + fun testScenario1(strategyConfig: CompilerExecutionStrategyConfiguration) { scenario(strategyConfig) { val module1 = module("jvm-module-1") @@ -45,7 +47,8 @@ class ExampleIncrementalScenarioTest : BaseCompilationTest() { @DisplayName("Another sample scenario DSL IC test with a single module and custom IC options") @DefaultStrategyAgnosticCompilationTest - fun scenario2Test(strategyConfig: CompilerExecutionStrategyConfiguration) { + @TestMetadata("jvm-module-1") + fun testScenario2(strategyConfig: CompilerExecutionStrategyConfiguration) { scenario(strategyConfig) { val module1 = module("jvm-module-1", incrementalCompilationOptionsModifier = { it.keepIncrementalCompilationCachesInMemory(false) }) @@ -75,7 +78,8 @@ class ExampleIncrementalScenarioTest : BaseCompilationTest() { @DisplayName("Sample scenario DSL IC test with two modules") @DefaultStrategyAgnosticCompilationTest - fun scenario3Test(strategyConfig: CompilerExecutionStrategyConfiguration) { + @TestMetadata("jvm-module-1") + fun testScenario3(strategyConfig: CompilerExecutionStrategyConfiguration) { scenario(strategyConfig) { val module1 = module("jvm-module-1") val module2 = module("jvm-module-2", listOf(module1))