From 7cda2e9859529d4ab8c7cd7ffb4ffa622a8c8c58 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Thu, 28 Oct 2021 11:03:30 +0200 Subject: [PATCH] Add 'testResolveAllConfigurations' assertion for new test DSL. ^KT-45745 In Progress --- .../util/testResolveAllConfigurations.kt | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/testResolveAllConfigurations.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/testResolveAllConfigurations.kt index 1f26ef43648..1297dcbdc04 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/testResolveAllConfigurations.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/testResolveAllConfigurations.kt @@ -6,6 +6,8 @@ package org.jetbrains.kotlin.gradle.util import org.jetbrains.kotlin.gradle.BaseGradleIT +import org.jetbrains.kotlin.gradle.testbase.* +import java.nio.file.Files import kotlin.test.assertTrue private const val RESOLVE_ALL_CONFIGURATIONS_TASK_NAME = "resolveAllConfigurations" @@ -40,6 +42,30 @@ fun BaseGradleIT.Project.testResolveAllConfigurations( } } +fun TestProject.testResolveAllConfigurations( + subproject: String? = null, + skipSetup: Boolean = false, + excludeConfigurations: List = listOf(), + options: BuildOptions = buildOptions, + withUnresolvedConfigurationNames: TestProject.(List) -> Unit = { assertTrue("Unresolved configurations: $it") { it.isEmpty() } } +) { + if (!skipSetup) { + when { + Files.exists(buildGradle) -> buildGradle + .append("\n${generateResolveAllConfigurationsTask(excludeConfigurations)}") + Files.exists(buildGradleKts) -> buildGradleKts + .append("\n${generateResolveAllConfigurationsTaskKts(excludeConfigurations)}") + else -> error("Build script does not exists under $projectPath") + } + } + + build(RESOLVE_ALL_CONFIGURATIONS_TASK_NAME, buildOptions = options) { + assertTasksExecuted(":${subproject?.let { "$it:" }.orEmpty()}$RESOLVE_ALL_CONFIGURATIONS_TASK_NAME") + val unresolvedConfigurations = unresolvedConfigurationRegex.findAll(output).map { it.groupValues[1] }.toList() + withUnresolvedConfigurationNames(unresolvedConfigurations) + } +} + private fun generateResolveAllConfigurationsTask(excludes: List) = """ task $RESOLVE_ALL_CONFIGURATIONS_TASK_NAME {