Override system-wide cache, simplify version checks,

This commit is contained in:
Sergey Igushkin
2018-02-09 20:59:50 +03:00
parent 99e731f6a6
commit 6e51ada36b
5 changed files with 30 additions and 19 deletions
@@ -276,7 +276,7 @@ fun getSomething() = 10
":libAndroid:compileReleaseUnitTestKotlin"
)
val kotlinFolder = if (VersionNumber.parse(project.chooseWrapperVersionOrFinishTest()).major > 3) "kotlin" else ""
val kotlinFolder = if (project.testGradleVersionAtLeast("4.0")) "kotlin" else ""
assertFileExists("lib/build/classes/$kotlinFolder/main/foo/PlatformClass.kotlin_metadata")
assertFileExists("lib/build/classes/$kotlinFolder/test/foo/PlatformTest.kotlin_metadata")
@@ -443,18 +443,19 @@ abstract class BaseGradleIT {
fun Project.resourcesDir(subproject: String? = null, sourceSet: String = "main"): String =
(subproject?.plus("/") ?: "") + "build/" +
(if (GradleVersion.version(chooseWrapperVersionOrFinishTest()) < GradleVersion.version("4.0"))
"classes/"
else "resources/") +
(if (testGradleVersionBelow("4.0")) "classes/" else "resources/") +
sourceSet + "/"
fun Project.classesDir(subproject: String? = null, sourceSet: String = "main", language: String = "kotlin"): String =
(subproject?.plus("/") ?: "") + "build/classes/" +
(if (GradleVersion.version(chooseWrapperVersionOrFinishTest()) >= GradleVersion.version("4.0"))
"$language/"
else "") +
(if (testGradleVersionAtLeast("4.0")) "$language/" else "") +
sourceSet + "/"
fun Project.testGradleVersionAtLeast(version: String): Boolean =
GradleVersion.version(chooseWrapperVersionOrFinishTest()) >= GradleVersion.version(version)
fun Project.testGradleVersionBelow(version: String): Boolean = !testGradleVersionAtLeast(version)
fun CompiledProject.kotlinClassesDir(subproject: String? = null, sourceSet: String = "main"): String =
project.classesDir(subproject, sourceSet, language = "kotlin")
@@ -494,7 +495,13 @@ abstract class BaseGradleIT {
System.getProperty("maven.repo.local")?.let {
add("-Dmaven.repo.local=$it") // TODO: proper escaping
}
add(if (options.withBuildCache) "--build-cache" else "--no-build-cache")
if (options.withBuildCache) {
add("--build-cache")
} else {
// Override possibly enabled system-wide caching:
add("-Dorg.gradle.caching=false")
}
// Workaround: override a console type set in the user machine gradle.properties (since Gradle 4.3):
add("--console=plain")
@@ -95,6 +95,10 @@ open class A {
assertSuccessful()
}
if (project.testGradleVersionAtLeast("4.0")) {
File(project.projectDir, "lib/build.gradle").appendText("\nkotlin.copyClassesToJavaOutput = true")
}
project.build(":lib:clean", ":lib:build") {
assertSuccessful()
val affectedSources = File(project.projectDir, "lib").allKotlinFiles()
@@ -139,7 +143,8 @@ open class A {
// that is not JavaCompile or KotlinCompile
@Test
fun testCompileLibWithGroovy() {
val project = Project("incrementalMultiproject")
val gradleVersion = GradleVersionRequired.Exact("3.5") // With newer versions, Groovy uses separate classes dirs
val project = Project("incrementalMultiproject", gradleVersion)
project.setupWorkingDir()
val lib = File(project.projectDir, "lib")
val libBuildGradle = File(lib, "build.gradle")
@@ -69,11 +69,11 @@ class KotlinGradlePluginMultiVersionIT : BaseMultiGradleVersionIT() {
@Test
fun testJavaIcCompatibility() {
val version = gradleVersionString.split(".").map(String::toInt)
val expectIncrementalCompilation = version.let { (major, minor) -> major > 2 || major == 2 && minor >= 14 }
val expectVerboseIncrementalLogs = version.let { (major, minor) -> major < 3 || major == 3 && minor < 4 }
val project = Project("kotlinJavaProject", gradleVersion)
val expectIncrementalCompilation = project.testGradleVersionAtLeast("2.14")
val expectVerboseIncrementalLogs = project.testGradleVersionBelow("3.4")
project.setupWorkingDir()
val buildScript = File(project.projectDir, "build.gradle")
@@ -129,12 +129,11 @@ class KotlinGradlePluginMultiVersionIT : BaseMultiGradleVersionIT() {
@Test
fun testJavaLibraryCompatibility() {
Assume.assumeTrue("The java-library plugin is supported only in Gradle 3.4+ (current: $gradleVersion)",
gradleVersionString.split(".").map(String::toInt).let { (major, minor) ->
major > 3 || major == 3 && minor >= 4
})
val project = Project("javaLibraryProject", gradleVersion)
Assume.assumeTrue("The java-library plugin is supported only in Gradle 3.4+ (current: $gradleVersion)",
project.testGradleVersionAtLeast("3.4"))
val compileKotlinTasks = listOf(":libA:compileKotlin", ":libB:compileKotlin", ":app:compileKotlin")
project.build("build") {
assertSuccessful()
@@ -121,7 +121,7 @@ class UpToDateIT : BaseGradleIT() {
override fun mutateProject(project: Project) = with(project) {
val kotlinOutputPath =
if (GradleVersion.version(project.chooseWrapperVersionOrFinishTest()) >= GradleVersion.version("4.0"))
if (testGradleVersionAtLeast("4.0"))
project.classesDir() else
// Before 4.0, we should delete the classes from the temporary dir to make compileKotlin rerun:
"build/kotlin-classes/main/"