Test kapt with workers
This commit is contained in:
+10
-2
@@ -158,7 +158,7 @@ abstract class BaseGradleIT {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// the second parameter is for using with ToolingAPI, that do not like --daemon/--no-daemon options at all
|
// the second parameter is for using with ToolingAPI, that do not like --daemon/--no-daemon options at all
|
||||||
data class BuildOptions(
|
data class BuildOptions constructor(
|
||||||
val withDaemon: Boolean = false,
|
val withDaemon: Boolean = false,
|
||||||
val daemonOptionSupported: Boolean = true,
|
val daemonOptionSupported: Boolean = true,
|
||||||
val incremental: Boolean? = null,
|
val incremental: Boolean? = null,
|
||||||
@@ -171,9 +171,12 @@ abstract class BaseGradleIT {
|
|||||||
val kotlinVersion: String = KOTLIN_VERSION,
|
val kotlinVersion: String = KOTLIN_VERSION,
|
||||||
val kotlinDaemonDebugPort: Int? = null,
|
val kotlinDaemonDebugPort: Int? = null,
|
||||||
val usePreciseJavaTracking: Boolean? = null,
|
val usePreciseJavaTracking: Boolean? = null,
|
||||||
val withBuildCache: Boolean = false
|
val withBuildCache: Boolean = false,
|
||||||
|
val kaptOptions: KaptOptions? = null
|
||||||
)
|
)
|
||||||
|
|
||||||
|
data class KaptOptions(val verbose: Boolean, val useWorkers: Boolean)
|
||||||
|
|
||||||
open inner class Project(
|
open inner class Project(
|
||||||
val projectName: String,
|
val projectName: String,
|
||||||
val gradleVersionRequirement: GradleVersionRequired = GradleVersionRequired.None,
|
val gradleVersionRequirement: GradleVersionRequired = GradleVersionRequired.None,
|
||||||
@@ -525,6 +528,11 @@ abstract class BaseGradleIT {
|
|||||||
add("-Dorg.gradle.caching=false")
|
add("-Dorg.gradle.caching=false")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
options.kaptOptions?.also { kaptOptions ->
|
||||||
|
add("-Pkapt.verbose=${kaptOptions.verbose}")
|
||||||
|
add("-Pkapt.use.worker.api=${kaptOptions.useWorkers}")
|
||||||
|
}
|
||||||
|
|
||||||
// Workaround: override a console type set in the user machine gradle.properties (since Gradle 4.3):
|
// Workaround: override a console type set in the user machine gradle.properties (since Gradle 4.3):
|
||||||
add("--console=plain")
|
add("--console=plain")
|
||||||
|
|
||||||
|
|||||||
+16
-22
@@ -4,9 +4,13 @@ import org.jetbrains.kotlin.gradle.util.isLegacyAndroidGradleVersion
|
|||||||
import org.jetbrains.kotlin.gradle.util.modify
|
import org.jetbrains.kotlin.gradle.util.modify
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import java.io.File
|
|
||||||
|
|
||||||
class Kapt3Android32IT : Kapt3AndroidIT() {
|
class Kapt3WorkersAndroid32IT : Kapt3Android32IT() {
|
||||||
|
override fun kaptOptions(): KaptOptions =
|
||||||
|
super.kaptOptions().copy(useWorkers = true)
|
||||||
|
}
|
||||||
|
|
||||||
|
open class Kapt3Android32IT : Kapt3AndroidIT() {
|
||||||
override val androidGradlePluginVersion: String
|
override val androidGradlePluginVersion: String
|
||||||
get() = "3.2.0-beta01"
|
get() = "3.2.0-beta01"
|
||||||
|
|
||||||
@@ -21,22 +25,17 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
|||||||
protected open val gradleVersion: GradleVersionRequired
|
protected open val gradleVersion: GradleVersionRequired
|
||||||
get() = GradleVersionRequired.AtLeast("4.1")
|
get() = GradleVersionRequired.AtLeast("4.1")
|
||||||
|
|
||||||
private fun androidBuildOptions() =
|
override fun defaultBuildOptions() =
|
||||||
BuildOptions(
|
super.defaultBuildOptions().copy(
|
||||||
withDaemon = true,
|
|
||||||
androidHome = KotlinTestUtils.findAndroidSdk(),
|
androidHome = KotlinTestUtils.findAndroidSdk(),
|
||||||
androidGradlePluginVersion = androidGradlePluginVersion,
|
androidGradlePluginVersion = androidGradlePluginVersion
|
||||||
freeCommandLineArgs = listOf("-Pkapt.verbose=true")
|
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun defaultBuildOptions() = androidBuildOptions()
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testButterKnife() {
|
fun testButterKnife() {
|
||||||
val project = Project("android-butterknife", gradleVersion, directoryPrefix = "kapt2")
|
val project = Project("android-butterknife", gradleVersion, directoryPrefix = "kapt2")
|
||||||
val options = androidBuildOptions()
|
|
||||||
|
|
||||||
project.build("assembleDebug", options = options) {
|
project.build("assembleDebug") {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
assertKaptSuccessful()
|
assertKaptSuccessful()
|
||||||
assertFileExists("app/build/generated/source/kapt/debug/org/example/kotlin/butterknife/SimpleActivity\$\$ViewBinder.java")
|
assertFileExists("app/build/generated/source/kapt/debug/org/example/kotlin/butterknife/SimpleActivity\$\$ViewBinder.java")
|
||||||
@@ -57,7 +56,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
project.build("assembleDebug", options = options) {
|
project.build("assembleDebug") {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
assertTasksUpToDate(":compileDebugKotlin", ":compileDebugJavaWithJavac")
|
assertTasksUpToDate(":compileDebugKotlin", ":compileDebugJavaWithJavac")
|
||||||
}
|
}
|
||||||
@@ -66,9 +65,8 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
|||||||
@Test
|
@Test
|
||||||
fun testDagger() {
|
fun testDagger() {
|
||||||
val project = Project("android-dagger", gradleVersion, directoryPrefix = "kapt2")
|
val project = Project("android-dagger", gradleVersion, directoryPrefix = "kapt2")
|
||||||
val options = androidBuildOptions()
|
|
||||||
|
|
||||||
project.build("assembleDebug", options = options) {
|
project.build("assembleDebug") {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
assertKaptSuccessful()
|
assertKaptSuccessful()
|
||||||
assertFileExists("app/build/generated/source/kapt/debug/com/example/dagger/kotlin/DaggerApplicationComponent.java")
|
assertFileExists("app/build/generated/source/kapt/debug/com/example/dagger/kotlin/DaggerApplicationComponent.java")
|
||||||
@@ -93,9 +91,8 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
|||||||
@Test
|
@Test
|
||||||
fun testKt15001() {
|
fun testKt15001() {
|
||||||
val project = Project("kt15001", gradleVersion, directoryPrefix = "kapt2")
|
val project = Project("kt15001", gradleVersion, directoryPrefix = "kapt2")
|
||||||
val options = androidBuildOptions()
|
|
||||||
|
|
||||||
project.build("assembleDebug", options = options) {
|
project.build("assembleDebug") {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
assertKaptSuccessful()
|
assertKaptSuccessful()
|
||||||
}
|
}
|
||||||
@@ -104,9 +101,8 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
|||||||
@Test
|
@Test
|
||||||
fun testDbFlow() {
|
fun testDbFlow() {
|
||||||
val project = Project("android-dbflow", gradleVersion, directoryPrefix = "kapt2")
|
val project = Project("android-dbflow", gradleVersion, directoryPrefix = "kapt2")
|
||||||
val options = androidBuildOptions()
|
|
||||||
|
|
||||||
project.build("assembleDebug", options = options) {
|
project.build("assembleDebug") {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
assertKaptSuccessful()
|
assertKaptSuccessful()
|
||||||
assertFileExists("app/build/generated/source/kapt/debug/com/raizlabs/android/dbflow/config/GeneratedDatabaseHolder.java")
|
assertFileExists("app/build/generated/source/kapt/debug/com/raizlabs/android/dbflow/config/GeneratedDatabaseHolder.java")
|
||||||
@@ -119,9 +115,8 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
|||||||
@Test
|
@Test
|
||||||
fun testRealm() {
|
fun testRealm() {
|
||||||
val project = Project("android-realm", gradleVersion, directoryPrefix = "kapt2")
|
val project = Project("android-realm", gradleVersion, directoryPrefix = "kapt2")
|
||||||
val options = androidBuildOptions()
|
|
||||||
|
|
||||||
project.build("assembleDebug", options = options) {
|
project.build("assembleDebug") {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
assertKaptSuccessful()
|
assertKaptSuccessful()
|
||||||
assertFileExists("build/generated/source/kapt/debug/io/realm/CatRealmProxy.java")
|
assertFileExists("build/generated/source/kapt/debug/io/realm/CatRealmProxy.java")
|
||||||
@@ -134,7 +129,6 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
|||||||
@Test
|
@Test
|
||||||
open fun testDatabinding() {
|
open fun testDatabinding() {
|
||||||
val project = Project("android-databinding", gradleVersion, directoryPrefix = "kapt2")
|
val project = Project("android-databinding", gradleVersion, directoryPrefix = "kapt2")
|
||||||
val options = androidBuildOptions()
|
|
||||||
|
|
||||||
if (!isLegacyAndroidGradleVersion(androidGradlePluginVersion)) {
|
if (!isLegacyAndroidGradleVersion(androidGradlePluginVersion)) {
|
||||||
project.setupWorkingDir()
|
project.setupWorkingDir()
|
||||||
@@ -156,7 +150,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
project.build("assembleDebug", options = options) {
|
project.build("assembleDebug") {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
assertKaptSuccessful()
|
assertKaptSuccessful()
|
||||||
assertFileExists("app/build/generated/source/kapt/debug/com/example/databinding/BR.java")
|
assertFileExists("app/build/generated/source/kapt/debug/com/example/databinding/BR.java")
|
||||||
|
|||||||
+9
-1
@@ -29,13 +29,21 @@ abstract class Kapt3BaseIT : BaseGradleIT() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun defaultBuildOptions(): BuildOptions =
|
override fun defaultBuildOptions(): BuildOptions =
|
||||||
super.defaultBuildOptions().copy(withDaemon = true)
|
super.defaultBuildOptions().copy(kaptOptions = kaptOptions())
|
||||||
|
|
||||||
|
protected open fun kaptOptions(): KaptOptions =
|
||||||
|
KaptOptions(verbose = true, useWorkers = false)
|
||||||
|
|
||||||
fun CompiledProject.assertKaptSuccessful() {
|
fun CompiledProject.assertKaptSuccessful() {
|
||||||
KAPT_SUCCESSFUL_REGEX.findAll(this.output).count() > 0
|
KAPT_SUCCESSFUL_REGEX.findAll(this.output).count() > 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class Kapt3WorkersIT : Kapt3IT() {
|
||||||
|
override fun kaptOptions(): KaptOptions =
|
||||||
|
super.kaptOptions().copy(useWorkers = true)
|
||||||
|
}
|
||||||
|
|
||||||
open class Kapt3IT : Kapt3BaseIT() {
|
open class Kapt3IT : Kapt3BaseIT() {
|
||||||
@Test
|
@Test
|
||||||
fun testAnnotationProcessorAsFqName() {
|
fun testAnnotationProcessorAsFqName() {
|
||||||
|
|||||||
Reference in New Issue
Block a user