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 ) {