Test: speed up tests by minimizing number of tasks to run
E.g. avoid building release variants for Android (extremely slow due to proguard minification, optimization)
This commit is contained in:
+16
-7
@@ -58,14 +58,14 @@ class BuildCacheRelocationIT : BaseGradleIT() {
|
||||
lateinit var firstOutputHashes: List<Pair<File, Int>>
|
||||
|
||||
workingDir = workingDirs[0]
|
||||
firstProject.build("build") {
|
||||
firstProject.build(*testCase.taskToExecute) {
|
||||
assertSuccessful()
|
||||
firstOutputHashes = hashOutputFiles(outputRoots)
|
||||
cacheableTaskNames.forEach { assertContains("Packing task ':$it") }
|
||||
}
|
||||
|
||||
workingDir = workingDirs[1]
|
||||
secondProject.build("build") {
|
||||
secondProject.build(*testCase.taskToExecute) {
|
||||
assertSuccessful()
|
||||
val secondOutputHashes = hashOutputFiles(outputRoots)
|
||||
assertEquals(firstOutputHashes, secondOutputHashes)
|
||||
@@ -82,7 +82,8 @@ class BuildCacheRelocationIT : BaseGradleIT() {
|
||||
val cacheableTaskNames: List<String>,
|
||||
val projectDirectoryPrefix: String? = null,
|
||||
val outputRootPaths: List<String> = listOf("build"),
|
||||
val initProject: Project.() -> Unit = { }
|
||||
val initProject: Project.() -> Unit = { },
|
||||
val taskToExecute: Array<String>
|
||||
) {
|
||||
|
||||
override fun toString(): String = (projectDirectoryPrefix?.plus("/") ?: "") + projectName
|
||||
@@ -99,15 +100,19 @@ class BuildCacheRelocationIT : BaseGradleIT() {
|
||||
fun testCases(): List<Array<TestCase>> = listOf(
|
||||
TestCase(
|
||||
"simpleProject",
|
||||
taskToExecute = arrayOf("classes", "testClasses"),
|
||||
cacheableTaskNames = listOf("compileKotlin", "compileTestKotlin")
|
||||
),
|
||||
TestCase("simple", projectDirectoryPrefix = "kapt2",
|
||||
TestCase("simple",
|
||||
projectDirectoryPrefix = "kapt2",
|
||||
taskToExecute = arrayOf("classes", "testClasses"),
|
||||
cacheableTaskNames = listOf(
|
||||
"kaptKotlin", "kaptGenerateStubsKotlin", "compileKotlin", "compileTestKotlin", "compileJava"
|
||||
),
|
||||
initProject = { File(projectDir, "build.gradle").appendText("\nkapt.useBuildCache = true") }
|
||||
),
|
||||
TestCase("kotlin2JsDceProject",
|
||||
taskToExecute = arrayOf("assemble", "runDceKotlinJs"),
|
||||
cacheableTaskNames = listOf("mainProject", "libraryProject").map { "$it:compileKotlin2Js" } +
|
||||
"mainProject:runDceKotlinJs",
|
||||
initProject = {
|
||||
@@ -121,6 +126,7 @@ class BuildCacheRelocationIT : BaseGradleIT() {
|
||||
}
|
||||
),
|
||||
TestCase("multiplatformProject",
|
||||
taskToExecute = arrayOf("classes", "testClasses"),
|
||||
cacheableTaskNames = listOf(
|
||||
"lib:compileKotlinCommon", "libJvm:compileKotlin", "libJvm:compileTestKotlin",
|
||||
"libJs:compileKotlin2Js", "libJs:compileTestKotlin2Js"
|
||||
@@ -128,17 +134,20 @@ class BuildCacheRelocationIT : BaseGradleIT() {
|
||||
outputRootPaths = listOf("lib", "libJvm", "libJs").map { "$it/build" }
|
||||
),
|
||||
TestCase("AndroidProject",
|
||||
taskToExecute = arrayOf("assembleDebug"),
|
||||
cacheableTaskNames = listOf("Lib", "Android").flatMap { module ->
|
||||
listOf("Flavor1", "Flavor2").flatMap { flavor ->
|
||||
listOf("Debug", "Release").map { buildType ->
|
||||
listOf("Debug").map { buildType ->
|
||||
"$module:compile$flavor${buildType}Kotlin"
|
||||
}
|
||||
}
|
||||
},
|
||||
outputRootPaths = listOf("Lib", "Android", "Test").map { "$it/build" }
|
||||
),
|
||||
TestCase("android-dagger", projectDirectoryPrefix = "kapt2",
|
||||
cacheableTaskNames = listOf("Debug", "Release").flatMap { buildType ->
|
||||
TestCase("android-dagger",
|
||||
taskToExecute = arrayOf("assembleDebug"),
|
||||
projectDirectoryPrefix = "kapt2",
|
||||
cacheableTaskNames = listOf("Debug").flatMap { buildType ->
|
||||
listOf("kapt", "kaptGenerateStubs", "compile").map { kotlinTask ->
|
||||
"app:$kotlinTask${buildType}Kotlin"
|
||||
}
|
||||
|
||||
+27
-27
@@ -33,21 +33,21 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
||||
val project = Project("android-butterknife", GRADLE_VERSION, directoryPrefix = "kapt2")
|
||||
val options = androidBuildOptions()
|
||||
|
||||
project.build("build", options = options) {
|
||||
project.build("assembleDebug", options = options) {
|
||||
assertSuccessful()
|
||||
assertKaptSuccessful()
|
||||
assertFileExists("app/build/generated/source/kapt/release/org/example/kotlin/butterknife/SimpleActivity\$\$ViewBinder.java")
|
||||
assertFileExists("app/build/intermediates/classes/release/org/example/kotlin/butterknife/SimpleActivity\$\$ViewBinder.class")
|
||||
assertFileExists("app/build/tmp/kotlin-classes/release/org/example/kotlin/butterknife/SimpleAdapter\$ViewHolder.class")
|
||||
assertFileExists("app/build/generated/source/kapt/debug/org/example/kotlin/butterknife/SimpleActivity\$\$ViewBinder.java")
|
||||
assertFileExists("app/build/intermediates/classes/debug/org/example/kotlin/butterknife/SimpleActivity\$\$ViewBinder.class")
|
||||
assertFileExists("app/build/tmp/kotlin-classes/debug/org/example/kotlin/butterknife/SimpleAdapter\$ViewHolder.class")
|
||||
if (isLegacyAndroidGradleVersion(androidGradlePluginVersion)) {
|
||||
// we don't copy classes with new AGP
|
||||
assertFileExists("app/build/intermediates/classes/release/org/example/kotlin/butterknife/SimpleAdapter\$ViewHolder.class")
|
||||
assertFileExists("app/build/intermediates/classes/debug/org/example/kotlin/butterknife/SimpleAdapter\$ViewHolder.class")
|
||||
}
|
||||
}
|
||||
|
||||
project.build("build", options = options) {
|
||||
project.build("assembleDebug", options = options) {
|
||||
assertSuccessful()
|
||||
assertTasksUpToDate(":compileReleaseKotlin", ":compileReleaseJavaWithJavac")
|
||||
assertTasksUpToDate(":compileDebugKotlin", ":compileDebugJavaWithJavac")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,16 +56,16 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
||||
val project = Project("android-dagger", GRADLE_VERSION, directoryPrefix = "kapt2")
|
||||
val options = androidBuildOptions()
|
||||
|
||||
project.build("build", options = options) {
|
||||
project.build("assembleDebug", options = options) {
|
||||
assertSuccessful()
|
||||
assertKaptSuccessful()
|
||||
assertFileExists("app/build/generated/source/kapt/release/com/example/dagger/kotlin/DaggerApplicationComponent.java")
|
||||
assertFileExists("app/build/generated/source/kapt/release/com/example/dagger/kotlin/ui/HomeActivity_MembersInjector.java")
|
||||
assertFileExists("app/build/intermediates/classes/release/com/example/dagger/kotlin/DaggerApplicationComponent.class")
|
||||
assertFileExists("app/build/tmp/kotlin-classes/release/com/example/dagger/kotlin/AndroidModule.class")
|
||||
assertFileExists("app/build/generated/source/kapt/debug/com/example/dagger/kotlin/DaggerApplicationComponent.java")
|
||||
assertFileExists("app/build/generated/source/kapt/debug/com/example/dagger/kotlin/ui/HomeActivity_MembersInjector.java")
|
||||
assertFileExists("app/build/intermediates/classes/debug/com/example/dagger/kotlin/DaggerApplicationComponent.class")
|
||||
assertFileExists("app/build/tmp/kotlin-classes/debug/com/example/dagger/kotlin/AndroidModule.class")
|
||||
if (isLegacyAndroidGradleVersion(androidGradlePluginVersion)) {
|
||||
// we don't copy classes with new AGP
|
||||
assertFileExists("app/build/intermediates/classes/release/com/example/dagger/kotlin/AndroidModule.class")
|
||||
assertFileExists("app/build/intermediates/classes/debug/com/example/dagger/kotlin/AndroidModule.class")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -75,7 +75,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
||||
val project = Project("kt15001", GRADLE_VERSION, directoryPrefix = "kapt2")
|
||||
val options = androidBuildOptions()
|
||||
|
||||
project.build("compileReleaseSources", options = options) {
|
||||
project.build("assembleDebug", options = options) {
|
||||
assertSuccessful()
|
||||
assertKaptSuccessful()
|
||||
}
|
||||
@@ -86,13 +86,13 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
||||
val project = Project("android-dbflow", GRADLE_VERSION, directoryPrefix = "kapt2")
|
||||
val options = androidBuildOptions()
|
||||
|
||||
project.build("compileReleaseSources", options = options) {
|
||||
project.build("assembleDebug", options = options) {
|
||||
assertSuccessful()
|
||||
assertKaptSuccessful()
|
||||
assertFileExists("app/build/generated/source/kapt/release/com/raizlabs/android/dbflow/config/GeneratedDatabaseHolder.java")
|
||||
assertFileExists("app/build/generated/source/kapt/release/com/raizlabs/android/dbflow/config/AppDatabaseapp_Database.java")
|
||||
assertFileExists("app/build/generated/source/kapt/release/mobi/porquenao/poc/kotlin/core/Item_Table.java")
|
||||
assertFileExists("app/build/generated/source/kapt/release/mobi/porquenao/poc/kotlin/core/Item_Adapter.java")
|
||||
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/AppDatabaseapp_Database.java")
|
||||
assertFileExists("app/build/generated/source/kapt/debug/mobi/porquenao/poc/kotlin/core/Item_Table.java")
|
||||
assertFileExists("app/build/generated/source/kapt/debug/mobi/porquenao/poc/kotlin/core/Item_Adapter.java")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,13 +101,13 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
||||
val project = Project("android-realm", GRADLE_VERSION, directoryPrefix = "kapt2")
|
||||
val options = androidBuildOptions()
|
||||
|
||||
project.build("compileReleaseSources", options = options) {
|
||||
project.build("assembleDebug", options = options) {
|
||||
assertSuccessful()
|
||||
assertKaptSuccessful()
|
||||
assertFileExists("build/generated/source/kapt/release/io/realm/CatRealmProxy.java")
|
||||
assertFileExists("build/generated/source/kapt/release/io/realm/CatRealmProxyInterface.java")
|
||||
assertFileExists("build/generated/source/kapt/release/io/realm/DefaultRealmModule.java")
|
||||
assertFileExists("build/generated/source/kapt/release/io/realm/DefaultRealmModuleMediator.java")
|
||||
assertFileExists("build/generated/source/kapt/debug/io/realm/CatRealmProxy.java")
|
||||
assertFileExists("build/generated/source/kapt/debug/io/realm/CatRealmProxyInterface.java")
|
||||
assertFileExists("build/generated/source/kapt/debug/io/realm/DefaultRealmModule.java")
|
||||
assertFileExists("build/generated/source/kapt/debug/io/realm/DefaultRealmModuleMediator.java")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,11 +116,11 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
||||
val project = Project("android-databinding", GRADLE_VERSION, directoryPrefix = "kapt2")
|
||||
val options = androidBuildOptions()
|
||||
|
||||
project.build("compileReleaseSources", options = options) {
|
||||
project.build("assembleDebug", options = options) {
|
||||
assertSuccessful()
|
||||
assertKaptSuccessful()
|
||||
assertFileExists("app/build/generated/source/kapt/release/com/example/databinding/BR.java")
|
||||
assertFileExists("app/build/generated/source/kapt/release/com/example/databinding/databinding/ActivityTestBinding.java")
|
||||
assertFileExists("app/build/generated/source/kapt/debug/com/example/databinding/BR.java")
|
||||
assertFileExists("app/build/generated/source/kapt/debug/com/example/databinding/databinding/ActivityTestBinding.java")
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -42,14 +42,14 @@ class UpToDateIT : BaseGradleIT() {
|
||||
}
|
||||
|
||||
private fun testMutations(vararg mutations: ProjectMutation) {
|
||||
val project = Project("simpleProject")
|
||||
val project = Project("kotlinProject")
|
||||
project.setupWorkingDir()
|
||||
mutations.forEach {
|
||||
it.initProject(project)
|
||||
project.build("build") { assertSuccessful() }
|
||||
project.build("classes") { assertSuccessful() }
|
||||
|
||||
it.mutateProject(project)
|
||||
project.build("build") {
|
||||
project.build("classes") {
|
||||
try {
|
||||
assertSuccessful()
|
||||
it.checkAfterRebuild(this)
|
||||
|
||||
Reference in New Issue
Block a user