Skip to content

Commit 5b6ae92

Browse files
author
Marcel Schnelle
authored
Refactor plugin tests (#158)
* Remove separate test plugin project & move to test projects No file generation is needed anymore for our functional tests, which will improve their execution time greatly. Also, a cleaner way to separate different AGP environments is implemented. * Remove old project from Circle CI config * Add functional tests for Android Gradle Plugin 3.5.x
1 parent c048a60 commit 5b6ae92

File tree

65 files changed

+1060
-1121
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+1060
-1121
lines changed

.circleci/config.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ defaults: &defaults
77
GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx4g -XX:+HeapDumpOnOutOfMemoryError"'
88

99
cache_key: &cache_key
10-
key: jars-{{ checksum "build.gradle.kts" }}-{{ checksum "plugin/android-junit5/build.gradle.kts" }}-{{ checksum "plugin/android-junit5-tests/build.gradle.kts" }}-{{ checksum "instrumentation/api/build.gradle.kts" }}-{{ checksum "instrumentation/runner/build.gradle.kts" }}-{{ checksum "instrumentation/sample/build.gradle.kts" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}-{{ checksum "buildSrc/src/main/kotlin/Artifacts.kt" }}-{{ checksum "buildSrc/src/main/kotlin/Libs.kt" }}-{{ checksum "buildSrc/src/main/kotlin/Versions.kt" }}
10+
key: jars-{{ checksum "build.gradle.kts" }}-{{ checksum "plugin/android-junit5/build.gradle.kts" }}-{{ checksum "instrumentation/api/build.gradle.kts" }}-{{ checksum "instrumentation/runner/build.gradle.kts" }}-{{ checksum "instrumentation/sample/build.gradle.kts" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}-{{ checksum "buildSrc/src/main/kotlin/Artifacts.kt" }}-{{ checksum "buildSrc/src/main/kotlin/Libs.kt" }}-{{ checksum "buildSrc/src/main/kotlin/Versions.kt" }}
1111

1212
version: 2
1313
jobs:
@@ -23,14 +23,14 @@ jobs:
2323
command: cd plugin && ./gradlew :android-junit5:assemble --stacktrace --no-daemon
2424
- run:
2525
name: (Plugin) Test
26-
command: cd plugin && ./gradlew :android-junit5-tests:check --stacktrace --no-daemon
26+
command: cd plugin && ./gradlew :android-junit5:check --stacktrace --no-daemon
2727

2828
- persist_to_workspace:
2929
root: ~/root
3030
paths:
3131
- project
3232
- store_artifacts:
33-
path: plugin/android-junit5-tests/build/reports/tests/test
33+
path: plugin/android-junit5/build/reports/tests/test
3434
destination: plugin
3535

3636
build_instrumentation:

buildSrc/src/main/kotlin/Libs.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,14 @@ object Libs {
2929
* https://developer.android.com/studio */
3030
const val com_android_tools_build_gradle: String = "com.android.tools.build:gradle:" +
3131
Versions.com_android_tools_build_gradle
32+
const val com_android_tools_build_gradle_32x: String = "com.android.tools.build:gradle:" +
33+
Versions.com_android_tools_build_gradle_32x
34+
const val com_android_tools_build_gradle_33x: String = "com.android.tools.build:gradle:" +
35+
Versions.com_android_tools_build_gradle_33x
36+
const val com_android_tools_build_gradle_34x: String = "com.android.tools.build:gradle:" +
37+
Versions.com_android_tools_build_gradle_34x
38+
const val com_android_tools_build_gradle_35x: String = "com.android.tools.build:gradle:" +
39+
Versions.com_android_tools_build_gradle_35x
3240

3341
/**
3442
* https://developer.android.com/studio */

buildSrc/src/main/kotlin/Tasks.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import org.gradle.api.DefaultTask
2-
import org.gradle.api.file.FileCollection
32
import org.gradle.api.tasks.InputFiles
43
import org.gradle.api.tasks.OutputDirectory
54
import org.gradle.api.tasks.TaskAction
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import org.gradle.api.Project
2+
import org.gradle.api.tasks.compile.AbstractCompile
3+
4+
fun Project.fixCompileTaskChain() {
5+
setupCompileChain(
6+
sourceCompileName = "compileKotlin",
7+
targetCompileName = "compileGroovy",
8+
javaCompileName = "compileJava",
9+
classesTaskName = "classes")
10+
11+
setupCompileChain(
12+
sourceCompileName = "compileTestGroovy",
13+
targetCompileName = "compileTestKotlin",
14+
javaCompileName = "compileTestJava",
15+
classesTaskName = "testClasses")
16+
}
17+
18+
/**
19+
* @param sourceCompileName The sources in this task may call into the target
20+
* @param targetCompileName The sources in this task must not call into the source
21+
* @param javaCompileName Name of the neutral Java task
22+
* @param classesTaskName Name of the neutral classes task
23+
*/
24+
private fun Project.setupCompileChain(sourceCompileName: String,
25+
targetCompileName: String,
26+
javaCompileName: String,
27+
classesTaskName: String) {
28+
val targetCompile = tasks.getByName(targetCompileName) as AbstractCompile
29+
val sourceCompile = tasks.getByName(sourceCompileName) as AbstractCompile
30+
val classesTask = tasks.getByName(classesTaskName)
31+
32+
logger.info("Remove dependency '$targetCompile' -> '$javaCompileName'")
33+
targetCompile.dependsOn.remove(javaCompileName)
34+
35+
logger.info("Add dependency '$sourceCompile' -> '$targetCompile' (can call from left into right)")
36+
sourceCompile.dependsOn.add(targetCompile)
37+
38+
sourceCompile.classpath += project.files(targetCompile.destinationDir)
39+
classesTask.dependsOn.add(sourceCompile)
40+
}

buildSrc/src/main/kotlin/Versions.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ object Versions {
1616
const val aapt2: String = "3.2.1-4818971"
1717

1818
const val com_android_tools_build_gradle: String = "3.4.0-rc02"
19+
const val com_android_tools_build_gradle_32x: String = "3.2.1"
20+
const val com_android_tools_build_gradle_33x: String = "3.3.2"
21+
const val com_android_tools_build_gradle_34x: String = "3.4.0-rc02"
22+
const val com_android_tools_build_gradle_35x: String = "3.5.0-alpha07"
1923

2024
const val lint_gradle: String = "26.2.1"
2125

plugin/.idea/runConfigurations/Plugin__Run_Unit_Tests__No_Functional_.xml renamed to plugin/.idea/runConfigurations/Plugin__Run_Unit_Tests.xml

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugin/.idea/runConfigurations/Plugin__Run_Unit_Tests__All_.xml

Lines changed: 0 additions & 21 deletions
This file was deleted.

plugin/android-junit5-tests/build.gradle.kts

Lines changed: 0 additions & 174 deletions
This file was deleted.

0 commit comments

Comments
 (0)