From e632189651a854eca83e2b06058425b09f293512 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Mon, 24 Jan 2022 15:02:49 +0100 Subject: [PATCH] Add method to fetch from the project available models ^KT-45745 In Progress --- .../kotlin/gradle/testbase/testDsl.kt | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt index 9958d2e9c97..ff32c3d57fe 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt @@ -7,8 +7,11 @@ package org.jetbrains.kotlin.gradle.testbase import org.gradle.testkit.runner.BuildResult import org.gradle.testkit.runner.GradleRunner +import org.gradle.tooling.GradleConnector import org.gradle.util.GradleVersion import org.jetbrains.kotlin.gradle.BaseGradleIT.Companion.acceptAndroidSdkLicenses +import org.jetbrains.kotlin.gradle.model.ModelContainer +import org.jetbrains.kotlin.gradle.model.ModelFetcherBuildAction import org.jetbrains.kotlin.test.util.KtTestUtil import java.io.File import java.nio.file.* @@ -133,6 +136,34 @@ fun TestProject.buildAndFail( } +internal inline fun TestProject.getModels( + crossinline assertions: ModelContainer.() -> Unit +) { + + val allBuildArguments = commonBuildSetup( + emptyList(), + buildOptions, + false, + enableBuildScan, + gradleVersion + ) + + val connector = GradleConnector + .newConnector() + .useGradleUserHomeDir(testKitDir.toAbsolutePath().toFile()) + .useGradleVersion(gradleVersion.version) + .forProjectDirectory(projectPath.toAbsolutePath().toFile()) + + connector.connect().use { + assertions( + it + .action(ModelFetcherBuildAction(T::class.java)) + .withArguments(allBuildArguments) + .run() + ) + } +} + fun TestProject.enableLocalBuildCache( buildCacheLocation: Path ) {