Add method to fetch from the project available models
^KT-45745 In Progress
This commit is contained in:
+31
@@ -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 <reified T> TestProject.getModels(
|
||||
crossinline assertions: ModelContainer<T>.() -> 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
|
||||
) {
|
||||
|
||||
Reference in New Issue
Block a user