Fix Gradle 'konan' plugin tests

The konan plugin checks the GRADLE_METADATA
feature preview option and enables publication
only if this option is specified. But since version
6.0 Gradle metadata is enabled by default and the
corresponding feature preview option was removed
causing failures of konan plugin tests.

This patch removes the checks mentioned above to
fix these tests.
This commit is contained in:
Ilya Matveev
2019-12-04 19:30:28 +07:00
committed by Ilya Matveev
parent 60746d0438
commit d8c6ad4606
3 changed files with 9 additions and 18 deletions
@@ -299,7 +299,6 @@ class KonanPlugin @Inject constructor(private val registry: ToolingModelBuilderR
KONAN_CONFIGURATION_BUILD_DIR ("konan.configuration.build.dir"), KONAN_CONFIGURATION_BUILD_DIR ("konan.configuration.build.dir"),
KONAN_DEBUGGING_SYMBOLS ("konan.debugging.symbols"), KONAN_DEBUGGING_SYMBOLS ("konan.debugging.symbols"),
KONAN_OPTIMIZATIONS_ENABLE ("konan.optimizations.enable"), KONAN_OPTIMIZATIONS_ENABLE ("konan.optimizations.enable"),
KONAN_PUBLICATION_ENABLED ("konan.publication.enabled")
} }
companion object { companion object {
@@ -337,12 +336,12 @@ class KonanPlugin @Inject constructor(private val registry: ToolingModelBuilderR
project.tasks.create(KONAN_DOWNLOAD_TASK_NAME, KonanCompilerDownloadTask::class.java) project.tasks.create(KONAN_DOWNLOAD_TASK_NAME, KonanCompilerDownloadTask::class.java)
project.tasks.create(KONAN_GENERATE_CMAKE_TASK_NAME, KonanGenerateCMakeTask::class.java) project.tasks.create(KONAN_GENERATE_CMAKE_TASK_NAME, KonanGenerateCMakeTask::class.java)
project.extensions.create(KONAN_EXTENSION_NAME, KonanExtension::class.java) project.extensions.create(KONAN_EXTENSION_NAME, KonanExtension::class.java)
val container = project.extensions.create(KonanArtifactContainer::class.java, ARTIFACTS_CONTAINER_NAME, KonanArtifactContainer::class.java, project) val container = project.extensions.create(
val isPublicationEnabled = project.gradle.services.get(FeaturePreviews::class.java).isFeatureEnabled(FeaturePreviews.Feature.GRADLE_METADATA) KonanArtifactContainer::class.java,
project.setProperty(ProjectProperty.KONAN_PUBLICATION_ENABLED, isPublicationEnabled) ARTIFACTS_CONTAINER_NAME,
if (!isPublicationEnabled) { KonanArtifactContainer::class.java,
project.logger.warn("feature GRADLE_METADATA is not enabled: publication is disabled") project
} )
project.warnAboutDeprecatedProperty(ProjectProperty.KONAN_HOME) project.warnAboutDeprecatedProperty(ProjectProperty.KONAN_HOME)
@@ -378,8 +377,6 @@ class KonanPlugin @Inject constructor(private val registry: ToolingModelBuilderR
// Enable multiplatform support // Enable multiplatform support
project.pluginManager.apply(KotlinNativePlatformPlugin::class.java) project.pluginManager.apply(KotlinNativePlatformPlugin::class.java)
project.afterEvaluate { project.afterEvaluate {
if (!isPublicationEnabled)
return@afterEvaluate
project.pluginManager.withPlugin("maven-publish") { project.pluginManager.withPlugin("maven-publish") {
container.all { buildingConfig -> container.all { buildingConfig ->
val konanSoftwareComponent = buildingConfig.mainVariant val konanSoftwareComponent = buildingConfig.mainVariant
@@ -101,8 +101,6 @@ abstract class KonanArtifactTask: KonanTargetableTask(), KonanArtifactSpec {
val artifactNameWithoutSuffix = artifact.name.removeSuffix("$artifactSuffix") val artifactNameWithoutSuffix = artifact.name.removeSuffix("$artifactSuffix")
project.pluginManager.withPlugin("maven-publish") { project.pluginManager.withPlugin("maven-publish") {
if (!(project.getProperty(KonanPlugin.ProjectProperty.KONAN_PUBLICATION_ENABLED) as Boolean))
return@withPlugin
platformConfiguration.artifacts.add(object: PublishArtifact { platformConfiguration.artifacts.add(object: PublishArtifact {
override fun getName(): String = artifactNameWithoutSuffix override fun getName(): String = artifactNameWithoutSuffix
override fun getExtension() = if (artifactSuffix.startsWith('.')) artifactSuffix.substring(1) else artifactSuffix override fun getExtension() = if (artifactSuffix.startsWith('.')) artifactSuffix.substring(1) else artifactSuffix
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.gradle.plugin.test package org.jetbrains.kotlin.gradle.plugin.test
import org.gradle.api.internal.FeaturePreviews
import org.gradle.api.internal.project.ProjectInternal import org.gradle.api.internal.project.ProjectInternal
import org.gradle.testfixtures.ProjectBuilder import org.gradle.testfixtures.ProjectBuilder
import org.jetbrains.kotlin.gradle.plugin.konan.KonanPlugin import org.jetbrains.kotlin.gradle.plugin.konan.KonanPlugin
@@ -233,8 +232,6 @@ open class ToolingModelTests {
} }
} }
""".trimIndent()) """.trimIndent())
propertiesFile.appendText("konan.publication.enabled=true")
settingsFile.appendText("enableFeaturePreview('GRADLE_METADATA')")
generateSrcFile("main.kt") generateSrcFile("main.kt")
} }
dependency.createRunner().withArguments("build", "publish").build() dependency.createRunner().withArguments("build", "publish").build()
@@ -244,10 +241,9 @@ open class ToolingModelTests {
} }
val dependnent = ProjectBuilder.builder().withProjectDir(dependentDir).build() as ProjectInternal val dependent = ProjectBuilder.builder().withProjectDir(dependentDir).build() as ProjectInternal
with(dependnent) { with(dependent) {
gradle.services.get(FeaturePreviews::class.java).enableFeature(FeaturePreviews.Feature.GRADLE_METADATA)
pluginManager.apply(KonanPlugin::class.java) pluginManager.apply(KonanPlugin::class.java)
konanArtifactsContainer.library("bar") konanArtifactsContainer.library("bar")
repositories.maven { repositories.maven {
@@ -257,7 +253,7 @@ open class ToolingModelTests {
add("artifactbar", "test:foo:1.0") add("artifactbar", "test:foo:1.0")
} }
} }
val model = KonanToolingModelBuilder.buildAll("konanModel", dependnent) val model = KonanToolingModelBuilder.buildAll("konanModel", dependent)
assertEquals(1, model.artifacts.size, "Incorrect number of artifacts.") assertEquals(1, model.artifacts.size, "Incorrect number of artifacts.")
val libraries = model.artifacts[0].libraries val libraries = model.artifacts[0].libraries
assertEquals(1, libraries.size, "Incorrect number of libraries.") assertEquals(1, libraries.size, "Incorrect number of libraries.")