diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kotlinTestDependencyManagement.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kotlinTestDependencyManagement.kt index c45ba11d46a..160ad22cf5c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kotlinTestDependencyManagement.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kotlinTestDependencyManagement.kt @@ -28,9 +28,6 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinSingleTargetExtension import org.jetbrains.kotlin.gradle.dsl.KotlinTopLevelExtension import org.jetbrains.kotlin.gradle.execution.KotlinAggregateExecutionSource import org.jetbrains.kotlin.gradle.plugin.* -import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider -import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics -import org.jetbrains.kotlin.gradle.plugin.diagnostics.reportDiagnostic import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope @@ -93,29 +90,28 @@ private fun KotlinTarget.configureKotlinTestDependency( if (platformType in jvmPlatforms) { // Checking dependencies which were added via dependsOn(KotlinSourceSet) call // Compilation has own configurations for these that are different from KotlinSourceSet configurations - - val configurationsToAddTestDependencyTo = linkedSetOf() - - configurationsToAddTestDependencyTo.addAll( - KotlinDependencyScope.values() - .map { configurations.sourceSetDependencyConfigurationByScope(compilation, it) } - ) - - configurationsToAddTestDependencyTo.addAll( - compilation.kotlinSourceSets.flatMap { sourceSet -> - KotlinDependencyScope.values().map { - configurations.sourceSetDependencyConfigurationByScope(sourceSet, it) - } + KotlinDependencyScope.values() + .map { configurations.sourceSetDependencyConfigurationByScope(compilation, it) } + .forEach { + it.maybeAddTestDependencyCapability( + compilation, + coreLibrariesVersion, + dependencyHandler, + tasks + ) } - ) - configurationsToAddTestDependencyTo.forEach { - it.maybeAddTestDependencyCapability( - compilation, - coreLibrariesVersion, - dependencyHandler, - tasks - ) + compilation.kotlinSourceSets.forEach { sourceSet -> + KotlinDependencyScope.values() + .map { configurations.sourceSetDependencyConfigurationByScope(sourceSet, it) } + .forEach { + it.maybeAddTestDependencyCapability( + compilation, + coreLibrariesVersion, + dependencyHandler, + tasks + ) + } } } } @@ -148,10 +144,6 @@ private fun Configuration.maybeAddTestDependencyCapability( } } ) - } else { - compilation.project.reportDiagnostic( - KotlinToolingDiagnostics.KotlinTestFrameworkInferenceFailed(name) - ) } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/KotlinToolingDiagnostics.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/KotlinToolingDiagnostics.kt index 0dff64a7ce5..47aa97ab84b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/KotlinToolingDiagnostics.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/KotlinToolingDiagnostics.kt @@ -529,16 +529,6 @@ object KotlinToolingDiagnostics { ) } - object KotlinTestFrameworkInferenceFailed : ToolingDiagnosticFactory(WARNING) { - operator fun invoke(configurationName: String) = build( - """ - kotlin-test was added to a non-testing configuration "$configurationName" where test framework couldn't be inferred. - - Learn how to configure kotlin-test at: https://kotl.in/kotlin-test-frameworks - """.trimIndent() - ) - } - object XCFrameworkDifferentInnerFrameworksName : ToolingDiagnosticFactory(WARNING) { operator fun invoke(xcFramework: String, innerFrameworks: String) = build( "Name of XCFramework '$xcFramework' differs from inner frameworks name '$innerFrameworks'! Framework renaming is not supported yet" diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/dependencyResolutionTests/KotlinTestDependencyWithoutTestFrameworkTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/dependencyResolutionTests/KotlinTestDependencyWithoutTestFrameworkTest.kt deleted file mode 100644 index 50bbb4d4107..00000000000 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/dependencyResolutionTests/KotlinTestDependencyWithoutTestFrameworkTest.kt +++ /dev/null @@ -1,116 +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. - */ - -@file:Suppress("FunctionName") - -package org.jetbrains.kotlin.gradle.dependencyResolutionTests - -import org.gradle.api.NamedDomainObjectProvider -import org.gradle.api.artifacts.Configuration -import org.gradle.api.internal.project.ProjectInternal -import org.gradle.kotlin.dsl.dependencies -import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension -import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformSourceSetConventionsImpl.dependencies -import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet -import org.jetbrains.kotlin.gradle.plugin.extraProperties -import org.jetbrains.kotlin.gradle.util.* -import org.jetbrains.kotlin.gradle.util.assertNoDiagnostics -import kotlin.test.Test - -class KotlinTestFrameworkInferenceFailedTest { - - @Test - fun `KMP project - when jvmTest depends on kotlin-test - emits no diagnostics`() { - evaluateProjectAndResolveConfigurationsWhen { - kmpProjectWithJvm { sourceSets.jvmTest.dependOnKotlinTest() } - }.assertNoDiagnostics() - } - - @Test - fun `KMP project - when commonTest depends on kotlin-test - emits no diagnostics`() { - evaluateProjectAndResolveConfigurationsWhen { - kmpProjectWithJvm { sourceSets.commonTest.dependOnKotlinTest() } - }.assertNoDiagnostics() - } - - @Test - fun `KMP project - when jvmMain depends on kotlin-test - emits a diagnostic`() { - evaluateProjectAndResolveConfigurationsWhen { - kmpProjectWithJvm { sourceSets.jvmMain.dependOnKotlinTest() } - }.checkDiagnostics("kotlin-test-kmp-jvmMain") - } - - @Test - fun `KMP project - when commonMain depends on kotlin-test - emits a diagnostic`() { - evaluateProjectAndResolveConfigurationsWhen { - kmpProjectWithJvm { sourceSets.commonMain.dependOnKotlinTest() } - }.checkDiagnostics("kotlin-test-kmp-commonMain") - } - - @Test - fun `KMP project without jvm - when commonMain depends on kotlin-test - emits no diagnostics`() { - evaluateProjectAndResolveConfigurationsWhen { - buildProjectWithMPP { - kotlin { - linuxArm64() - linuxX64() - - sourceSets.commonMain.dependOnKotlinTest() - } - } - }.assertNoDiagnostics() - } - - @Test - fun `JVM project - when testImplementation depends on kotlin-test - emits no diagnostics`() { - evaluateProjectAndResolveConfigurationsWhen { - buildProjectWithJvm { - dependencies { - "testImplementation"("org.jetbrains.kotlin:kotlin-test") - } - } - }.assertNoDiagnostics() - } - - @Test - fun `JVM project - when implementation depends on kotlin-test - emits a diagnostic`() { - evaluateProjectAndResolveConfigurationsWhen { - buildProjectWithJvm { - dependencies { - "implementation"("org.jetbrains.kotlin:kotlin-test") - } - } - }.checkDiagnostics("kotlin-test-jvm-implementation") - } - - private fun kmpProjectWithJvm(configure: KotlinMultiplatformExtension.() -> Unit): ProjectInternal { - return buildProjectWithMPP { - kotlin { - jvm() - linuxArm64() - - configure(this) - } - } - } - - private fun NamedDomainObjectProvider.dependOnKotlinTest() { - dependencies { - implementation(kotlin("test")) - } - } - - private fun evaluateProjectAndResolveConfigurationsWhen( - projectFactory: () -> ProjectInternal - ): ProjectInternal { - val project = projectFactory() - project.repositories.mavenLocal() - project.repositories.mavenCentralCacheRedirector() - project.evaluate() - project.configurations.filter(Configuration::isCanBeResolved).forEach(Configuration::resolve) - return project - } - -} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/kotlin-test-jvm-implementation.txt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/kotlin-test-jvm-implementation.txt deleted file mode 100644 index 512a996a671..00000000000 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/kotlin-test-jvm-implementation.txt +++ /dev/null @@ -1,3 +0,0 @@ -[KotlinTestFrameworkInferenceFailed | WARNING] kotlin-test was added to a non-testing configuration "implementation" where test framework couldn't be inferred. - -Learn how to configure kotlin-test at: https://kotl.in/kotlin-test-frameworks diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/kotlin-test-kmp-commonMain.txt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/kotlin-test-kmp-commonMain.txt deleted file mode 100644 index 4d2bb882c01..00000000000 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/kotlin-test-kmp-commonMain.txt +++ /dev/null @@ -1,3 +0,0 @@ -[KotlinTestFrameworkInferenceFailed | WARNING] kotlin-test was added to a non-testing configuration "jvmCompilationImplementation" where test framework couldn't be inferred. - -Learn how to configure kotlin-test at: https://kotl.in/kotlin-test-frameworks diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/kotlin-test-kmp-jvmMain.txt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/kotlin-test-kmp-jvmMain.txt deleted file mode 100644 index ebe68c46c5b..00000000000 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/kotlin-test-kmp-jvmMain.txt +++ /dev/null @@ -1,7 +0,0 @@ -[KotlinTestFrameworkInferenceFailed | WARNING] kotlin-test was added to a non-testing configuration "jvmMainImplementation" where test framework couldn't be inferred. - -Learn how to configure kotlin-test at: https://kotl.in/kotlin-test-frameworks ----- -[KotlinTestFrameworkInferenceFailed | WARNING] kotlin-test was added to a non-testing configuration "jvmCompilationImplementation" where test framework couldn't be inferred. - -Learn how to configure kotlin-test at: https://kotl.in/kotlin-test-frameworks