[BTA tests] Specify TestDataPath/TestMetadata test data navigation

^KT-61860 In Progress
This commit is contained in:
Alexander.Likhachev
2024-03-05 19:54:01 +01:00
committed by Space Team
parent b970b87667
commit cf8e65b3c5
5 changed files with 23 additions and 7 deletions
@@ -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<JvmTestSuite>(suit)
}
var configuredIdeaSourceSets = false
for (implVersion in compatibilityTestsVersions) {
register<JvmTestSuite>("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"))
@@ -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
@@ -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))
@@ -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))
@@ -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))