Enable cache redirector for old tests setup.
^KT-47185 Fixed
This commit is contained in:
+4
-1
@@ -13,6 +13,7 @@ import org.jdom.output.XMLOutputter
|
||||
import org.jetbrains.kotlin.gradle.model.ModelContainer
|
||||
import org.jetbrains.kotlin.gradle.model.ModelFetcherBuildAction
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerType
|
||||
import org.jetbrains.kotlin.gradle.testbase.enableCacheRedirector
|
||||
import org.jetbrains.kotlin.gradle.util.*
|
||||
import org.jetbrains.kotlin.test.RunnerWithMuteInDatabase
|
||||
import org.jetbrains.kotlin.test.util.trimTrailingWhitespaces
|
||||
@@ -277,12 +278,14 @@ abstract class BaseGradleIT {
|
||||
open val resourcesRoot = File(resourcesRootFile, "testProject/$resourceDirName")
|
||||
val projectDir = File(workingDir.canonicalFile, projectName)
|
||||
|
||||
open fun setupWorkingDir() {
|
||||
open fun setupWorkingDir(enableCacheRedirector: Boolean = true) {
|
||||
if (!projectDir.isDirectory || projectDir.listFiles().isEmpty()) {
|
||||
copyRecursively(this.resourcesRoot, workingDir)
|
||||
if (addHeapDumpOptions) {
|
||||
addHeapDumpOptionsToPropertiesFile()
|
||||
}
|
||||
|
||||
if (enableCacheRedirector) projectDir.toPath().enableCacheRedirector()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -684,7 +684,7 @@ open class Kapt3IT : Kapt3BaseIT() {
|
||||
fun testDependencyOnKaptModule() = with(Project("simpleProject")) {
|
||||
setupWorkingDir()
|
||||
|
||||
val kaptProject = Project("simple", directoryPrefix = "kapt2").apply { setupWorkingDir() }
|
||||
val kaptProject = Project("simple", directoryPrefix = "kapt2").apply { setupWorkingDir(false) }
|
||||
kaptProject.projectDir.copyRecursively(projectDir.resolve("simple"))
|
||||
projectDir.resolve("settings.gradle").appendText("include 'simple'")
|
||||
gradleBuildScript().appendText("\ndependencies { implementation project(':simple') }")
|
||||
|
||||
+4
-1
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle
|
||||
|
||||
import org.jetbrains.kotlin.gradle.testbase.enableCacheRedirector
|
||||
import org.jetbrains.kotlin.gradle.util.modify
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
@@ -23,12 +24,14 @@ class MppHighlightingTestDataWithGradleIT : BaseGradleIT() {
|
||||
|
||||
@Before
|
||||
fun cleanup() {
|
||||
project.setupWorkingDir()
|
||||
project.setupWorkingDir(false)
|
||||
project.gradleSettingsScript().modify { it.lines().filter { !it.startsWith("include") }.joinToString("\n") }
|
||||
project.projectDir.resolve("src").deleteRecursively()
|
||||
project.gradleBuildScript().modify { line ->
|
||||
line.lines().dropLastWhile { it != buildScriptCustomizationMarker }.joinToString("\n")
|
||||
}
|
||||
|
||||
project.projectDir.toPath().enableCacheRedirector()
|
||||
}
|
||||
|
||||
private val project by lazy { Project("mpp-source-set-hierarchy-analysis") }
|
||||
|
||||
+14
-2
@@ -122,7 +122,7 @@ class NewMultiplatformIT : BaseGradleIT() {
|
||||
val libLocalRepoUri = libProject.projectDir.resolve("repo").toURI()
|
||||
|
||||
with(appProject) {
|
||||
setupWorkingDir()
|
||||
setupWorkingDir(false)
|
||||
|
||||
// we use `maven { setUrl(...) }` because this syntax actually works both for Groovy and Kotlin DSLs in Gradle
|
||||
gradleBuildScript().appendText("\nrepositories { maven { setUrl(\"$libLocalRepoUri\") } }")
|
||||
@@ -176,6 +176,9 @@ class NewMultiplatformIT : BaseGradleIT() {
|
||||
gradleBuildScript(libProjectName).takeIf { it.extension == "kts" }?.modify {
|
||||
it.replace(Regex("""\.version\(.*\)"""), "")
|
||||
}
|
||||
gradleBuildScript(subproject = libProject.projectDir.name).modify {
|
||||
it.lines().dropLast(4).joinToString(separator = "\n")
|
||||
}
|
||||
|
||||
build(
|
||||
"clean",
|
||||
@@ -381,6 +384,9 @@ class NewMultiplatformIT : BaseGradleIT() {
|
||||
gradleBuildScript(libProjectName).takeIf { it.extension == "kts" }?.modify {
|
||||
it.replace(Regex("""\.version\(.*\)"""), "")
|
||||
}
|
||||
gradleBuildScript(subproject = libProject.projectDir.name).modify {
|
||||
it.lines().dropLast(4).joinToString(separator = "\n")
|
||||
}
|
||||
|
||||
build(
|
||||
"clean",
|
||||
@@ -911,6 +917,9 @@ class NewMultiplatformIT : BaseGradleIT() {
|
||||
libProject.setupWorkingDir()
|
||||
|
||||
libProject.projectDir.copyRecursively(projectDir.resolve(libProject.projectDir.name))
|
||||
gradleBuildScript(libProject.projectDir.name).modify {
|
||||
it.lines().dropLast(4).joinToString(separator = "\n")
|
||||
}
|
||||
projectDir.resolve("settings.gradle").appendText("\ninclude '${libProject.projectDir.name}'")
|
||||
gradleBuildScript().modify {
|
||||
it.replace("'com.example:sample-lib:1.0'", "project(':${libProject.projectDir.name}')") +
|
||||
@@ -1116,8 +1125,11 @@ class NewMultiplatformIT : BaseGradleIT() {
|
||||
|
||||
with(libProject) {
|
||||
setupWorkingDir()
|
||||
appProject.setupWorkingDir()
|
||||
appProject.setupWorkingDir(false)
|
||||
appProject.projectDir.copyRecursively(projectDir.resolve("sample-app"))
|
||||
gradleBuildScript("sample-app").modify {
|
||||
it.lines().dropLast(4).joinToString(separator = "\n")
|
||||
}
|
||||
|
||||
gradleSettingsScript().writeText("include 'sample-app'") // disables feature preview 'GRADLE_METADATA', resets rootProject name
|
||||
gradleBuildScript("sample-app").modify {
|
||||
|
||||
+10
-2
@@ -86,7 +86,7 @@ class VariantAwareDependenciesIT : BaseGradleIT() {
|
||||
fun testNonKotlinJvmAppResolvesMppLib() {
|
||||
val outerProject = Project("sample-lib", gradleVersion, "new-mpp-lib-and-app")
|
||||
val innerProject = Project("simpleProject").apply {
|
||||
setupWorkingDir()
|
||||
setupWorkingDir(false)
|
||||
gradleBuildScript().modify {
|
||||
it.replace("apply plugin: \"kotlin\"", "")
|
||||
.replace("\"org.jetbrains.kotlin:kotlin-stdlib\"", "\"org.jetbrains.kotlin:kotlin-stdlib:\$kotlin_version\"")
|
||||
@@ -350,7 +350,7 @@ class VariantAwareDependenciesIT : BaseGradleIT() {
|
||||
|
||||
internal fun BaseGradleIT.Project.embedProject(other: BaseGradleIT.Project, renameTo: String? = null) {
|
||||
setupWorkingDir()
|
||||
other.setupWorkingDir()
|
||||
other.setupWorkingDir(false)
|
||||
val tempDir = createTempDir(if (isWindows) "" else "BaseGradleIT")
|
||||
val embeddedModuleName = renameTo ?: other.projectName
|
||||
try {
|
||||
@@ -359,6 +359,14 @@ internal fun BaseGradleIT.Project.embedProject(other: BaseGradleIT.Project, rena
|
||||
} finally {
|
||||
check(tempDir.deleteRecursively())
|
||||
}
|
||||
if (projectName == other.projectName) {
|
||||
val embeddedModuleDir = projectDir.resolve(embeddedModuleName)
|
||||
val buildFile = embeddedModuleDir.resolve("build.gradle").takeIf { it.exists() }
|
||||
?: embeddedModuleDir.resolve("build.gradle.kts")
|
||||
buildFile.modify {
|
||||
it.lines().dropLast(4).joinToString(separator = "\n")
|
||||
}
|
||||
}
|
||||
testCase.apply {
|
||||
gradleSettingsScript().appendText("\ninclude(\"$embeddedModuleName\")")
|
||||
|
||||
|
||||
+1
-1
@@ -206,7 +206,7 @@ private fun Path.addDefaultBuildFiles() {
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalPathApi::class)
|
||||
private fun Path.enableCacheRedirector() {
|
||||
internal fun Path.enableCacheRedirector() {
|
||||
// Path relative to the current gradle module project dir
|
||||
val redirectorScript = Paths.get("../../../gradle/cacheRedirector.gradle.kts")
|
||||
assert(redirectorScript.exists()) {
|
||||
|
||||
Reference in New Issue
Block a user