From f634f9dacf812789b364ea609d5e122cd0231310 Mon Sep 17 00:00:00 2001 From: "Alexander.Likhachev" Date: Tue, 5 Mar 2024 22:07:48 +0100 Subject: [PATCH] [BTA tests] Get BTA implementation version via the API ^KT-61860 In Progress --- .../kotlin-build-tools-api-tests/build.gradle.kts | 10 ---------- .../src/main/kotlin/buildToolsVersion.kt | 14 -------------- .../src/main/kotlin/compilation/model/BaseTest.kt | 11 +++++++++++ .../src/main/kotlin/compilation/model/JvmModule.kt | 3 +-- 4 files changed, 12 insertions(+), 26 deletions(-) delete mode 100644 compiler/build-tools/kotlin-build-tools-api-tests/src/main/kotlin/buildToolsVersion.kt 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 5c4cc47c3cb..d09fce92b08 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 @@ -91,10 +91,6 @@ testing { targets.all { projectTest(taskName = testTask.name, jUnitMode = JUnitMode.JUnit5) { ensureExecutedAgainstExpectedBuildToolsImplVersion(implVersion) - systemProperty( - "kotlin.build-tools-api.impl-version", - implVersion.toString() - ) // TODO: remove after KT-63862 } } } @@ -119,12 +115,6 @@ testing { targets.all { projectTest(taskName = testTask.name, jUnitMode = JUnitMode.JUnit5) { systemProperty("kotlin.build-tools-api.log.level", "DEBUG") - if (isRegular) { - systemProperty( - "kotlin.build-tools-api.impl-version", - project.version.toString() - ) // TODO: remove after KT-63862 - } } } } diff --git a/compiler/build-tools/kotlin-build-tools-api-tests/src/main/kotlin/buildToolsVersion.kt b/compiler/build-tools/kotlin-build-tools-api-tests/src/main/kotlin/buildToolsVersion.kt deleted file mode 100644 index df032db1e08..00000000000 --- a/compiler/build-tools/kotlin-build-tools-api-tests/src/main/kotlin/buildToolsVersion.kt +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.buildtools.api.tests - -import org.jetbrains.kotlin.tooling.core.KotlinToolingVersion - -// TODO: remove after KT-63862 -const val IMPL_VERSION_SYSTEM_PROPERTY = "kotlin.build-tools-api.impl-version" -val buildToolsVersion = System.getProperty(IMPL_VERSION_SYSTEM_PROPERTY) - ?.let { KotlinToolingVersion(it) } - ?: error("The build tools implementation version must be passed via the `$IMPL_VERSION_SYSTEM_PROPERTY` system property to the tests") diff --git a/compiler/build-tools/kotlin-build-tools-api-tests/src/main/kotlin/compilation/model/BaseTest.kt b/compiler/build-tools/kotlin-build-tools-api-tests/src/main/kotlin/compilation/model/BaseTest.kt index 7f3aee37fb7..7d6267481f8 100644 --- a/compiler/build-tools/kotlin-build-tools-api-tests/src/main/kotlin/compilation/model/BaseTest.kt +++ b/compiler/build-tools/kotlin-build-tools-api-tests/src/main/kotlin/compilation/model/BaseTest.kt @@ -6,11 +6,22 @@ package org.jetbrains.kotlin.buildtools.api.tests.compilation.model import org.jetbrains.kotlin.buildtools.api.CompilationService +import org.jetbrains.kotlin.tooling.core.KotlinToolingVersion abstract class BaseTest { companion object { val compilationService: CompilationService by lazy { CompilationService.loadImplementation(BaseTest::class.java.classLoader) } + private val _compilerVersion by lazy { + try { + compilationService.getCompilerVersion() + } catch (_: NoSuchMethodError) { + "1.9.20" // getCompilerVersion is introduced since 2.0.0 + } + } + val compilerVersion: KotlinToolingVersion by lazy { + KotlinToolingVersion(_compilerVersion) + } } } \ No newline at end of file diff --git a/compiler/build-tools/kotlin-build-tools-api-tests/src/main/kotlin/compilation/model/JvmModule.kt b/compiler/build-tools/kotlin-build-tools-api-tests/src/main/kotlin/compilation/model/JvmModule.kt index 0aeb8c6df87..ab6461f82d5 100644 --- a/compiler/build-tools/kotlin-build-tools-api-tests/src/main/kotlin/compilation/model/JvmModule.kt +++ b/compiler/build-tools/kotlin-build-tools-api-tests/src/main/kotlin/compilation/model/JvmModule.kt @@ -9,7 +9,6 @@ import org.jetbrains.kotlin.buildtools.api.CompilationResult import org.jetbrains.kotlin.buildtools.api.CompilerExecutionStrategyConfiguration import org.jetbrains.kotlin.buildtools.api.SourcesChanges import org.jetbrains.kotlin.buildtools.api.jvm.* -import org.jetbrains.kotlin.buildtools.api.tests.buildToolsVersion import org.jetbrains.kotlin.buildtools.api.tests.compilation.model.Module import org.jetbrains.kotlin.tooling.core.KotlinToolingVersion import java.io.File @@ -98,7 +97,7 @@ class JvmModule( options.setBuildDir(buildDirectory.toFile()) options.setRootProjectDir(project.projectDirectory.toFile()) - if (buildToolsVersion < KotlinToolingVersion(2, 0, 0, "Beta2")) { + if (BaseTest.compilerVersion < KotlinToolingVersion(2, 0, 0, "Beta2")) { // workaround for the incorrect default value options.useOutputDirs(setOf(icCachesDir.toFile(), outputDirectory.toFile())) }