Use short temp dirs names only in gradle integration tests

This commit is contained in:
Alexey Tsvetkov
2019-07-30 17:45:54 +03:00
parent 1a0c6fe8b8
commit 4db3dcc28f
2 changed files with 14 additions and 10 deletions
+8 -7
View File
@@ -31,7 +31,12 @@ import java.lang.Character.isUpperCase
import java.nio.file.Files import java.nio.file.Files
import java.nio.file.Path import java.nio.file.Path
fun Project.projectTest(taskName: String = "test", parallel: Boolean = false, body: Test.() -> Unit = {}): Test = getOrCreateTask(taskName) { fun Project.projectTest(
taskName: String = "test",
parallel: Boolean = false,
shortenTempRootName: Boolean = false,
body: Test.() -> Unit = {}
): Test = getOrCreateTask(taskName) {
doFirst { doFirst {
val commandLineIncludePatterns = (filter as? DefaultTestFilter)?.commandLineIncludePatterns ?: emptySet() val commandLineIncludePatterns = (filter as? DefaultTestFilter)?.commandLineIncludePatterns ?: emptySet()
val patterns = filter.includePatterns + commandLineIncludePatterns val patterns = filter.includePatterns + commandLineIncludePatterns
@@ -110,12 +115,8 @@ fun Project.projectTest(taskName: String = "test", parallel: Boolean = false, bo
(teamcity?.get("teamcity.build.tempDir") as? String) (teamcity?.get("teamcity.build.tempDir") as? String)
?: System.getProperty("java.io.tmpdir") ?: System.getProperty("java.io.tmpdir")
systemTempRoot.let { systemTempRoot.let {
subProjectTempRoot = if (System.getProperty("os.name")!!.contains("Windows")) { val prefix = (project.name + "Project_" + taskName + "_").takeUnless { shortenTempRootName }
// Aapt2 from Android Gradle Plugin 3.2 and below does not handle long paths on Windows. subProjectTempRoot = Files.createTempDirectory(File(systemTempRoot).toPath(), prefix)
Files.createTempDirectory(File(systemTempRoot).toPath(), "")
} else {
Files.createTempDirectory(File(systemTempRoot).toPath(), project.name + "Project_" + taskName + "_")
}
systemProperty("java.io.tmpdir", subProjectTempRoot.toString()) systemProperty("java.io.tmpdir", subProjectTempRoot.toString())
} }
} }
@@ -44,10 +44,13 @@ dependencies {
testCompileOnly(project(":kotlin-test:kotlin-test-common")) { isTransitive = false } testCompileOnly(project(":kotlin-test:kotlin-test-common")) { isTransitive = false }
} }
// additional configuration in tasks.withType<Test> below // Aapt2 from Android Gradle Plugin 3.2 and below does not handle long paths on Windows.
projectTest("test") {} val shortenTempRootName = System.getProperty("os.name")!!.contains("Windows")
projectTest("testAdvanceGradleVersion") { // additional configuration in tasks.withType<Test> below
projectTest("test", shortenTempRootName = shortenTempRootName) {}
projectTest("testAdvanceGradleVersion", shortenTempRootName = shortenTempRootName) {
val gradleVersionForTests = "5.3-rc-2" val gradleVersionForTests = "5.3-rc-2"
systemProperty("kotlin.gradle.version.for.tests", gradleVersionForTests) systemProperty("kotlin.gradle.version.for.tests", gradleVersionForTests)
} }