Override system-wide cache, simplify version checks,
This commit is contained in:
+1
-1
@@ -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")
|
||||
|
||||
+14
-7
@@ -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")
|
||||
|
||||
+6
-1
@@ -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")
|
||||
|
||||
+8
-9
@@ -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()
|
||||
|
||||
+1
-1
@@ -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/"
|
||||
|
||||
Reference in New Issue
Block a user