From ba82882bdd52f759c61dc02c8a8669717d565e4a Mon Sep 17 00:00:00 2001 From: Stefan Wolf Date: Wed, 13 Nov 2019 17:25:49 +0100 Subject: [PATCH 1/2] Add Android smoke test for incremental Java compilation #11330 --- subprojects/smoke-test/smoke-test.gradle.kts | 3 +++ .../smoketests/AndroidPluginsSmokeTest.groovy | 23 ++++++++++++++--- .../AndroidSantaTrackerSmokeTest.groovy | 25 +++++++++++++++++++ 3 files changed, 47 insertions(+), 4 deletions(-) diff --git a/subprojects/smoke-test/smoke-test.gradle.kts b/subprojects/smoke-test/smoke-test.gradle.kts index 49124c93a684..ec7ec7efcfe9 100644 --- a/subprojects/smoke-test/smoke-test.gradle.kts +++ b/subprojects/smoke-test/smoke-test.gradle.kts @@ -55,6 +55,9 @@ dependencies { smokeTestImplementation(project(":persistentCache")) smokeTestImplementation(library("commons_io")) smokeTestImplementation(library("jgit")) + smokeTestImplementation(library("gradleProfiler")) { + because("Using build mutators to change a Java file") + } smokeTestImplementation(testLibrary("spock")) val allTestRuntimeDependencies: DependencySet by rootProject.extra diff --git a/subprojects/smoke-test/src/smokeTest/groovy/org/gradle/smoketests/AndroidPluginsSmokeTest.groovy b/subprojects/smoke-test/src/smokeTest/groovy/org/gradle/smoketests/AndroidPluginsSmokeTest.groovy index 28b68a77349e..9e0611521bf6 100644 --- a/subprojects/smoke-test/src/smokeTest/groovy/org/gradle/smoketests/AndroidPluginsSmokeTest.groovy +++ b/subprojects/smoke-test/src/smokeTest/groovy/org/gradle/smoketests/AndroidPluginsSmokeTest.groovy @@ -123,6 +123,12 @@ class AndroidPluginsSmokeTest extends AbstractSmokeTest { """.stripIndent() writeActivity(app, appPackage, appActivity) + file("${app}/src/main/java/UsesLibraryActivity.java") << """ + public class UsesLibraryActivity { + public void consume(${libPackage}.${libraryActivity} activity) { + } + } + """ file("${app}/src/main/AndroidManifest.xml") << """ @@ -192,6 +198,14 @@ class AndroidPluginsSmokeTest extends AbstractSmokeTest { expectNoDeprecationWarnings(result) } + when: + writeActivity(library, libPackage, libraryActivity, true) + result = runner('build', '-x', 'lint').build() + + then: + result.task(':library:compileReleaseJavaWithJavac').outcome == TaskOutcome.SUCCESS + result.task(':app:compileReleaseJavaWithJavac').outcome == TaskOutcome.SUCCESS + where: pluginVersion << TestedVersions.androidGradle } @@ -219,10 +233,10 @@ class AndroidPluginsSmokeTest extends AbstractSmokeTest { """.stripIndent() } - private writeActivity(String basedir, String packageName, String className) { + private writeActivity(String basedir, String packageName, String className, changed = false) { String resourceName = className.toLowerCase() - file("${basedir}/src/main/java/${packageName.replaceAll('\\.', '/')}/HelloActivity.java") << """ + file("${basedir}/src/main/java/${packageName.replaceAll('\\.', '/')}/${className}.java").text = """ package ${packageName}; import org.joda.time.LocalTime; @@ -231,7 +245,7 @@ class AndroidPluginsSmokeTest extends AbstractSmokeTest { import android.os.Bundle; import android.widget.TextView; - public class HelloActivity extends Activity { + public class ${className} extends Activity { @Override public void onCreate(Bundle savedInstanceState) { @@ -247,9 +261,10 @@ class AndroidPluginsSmokeTest extends AbstractSmokeTest { textView.setText("The current local time is: " + currentTime); } + ${changed ? "public void doStuff() {}" : ""} }""".stripIndent() - file("${basedir}/src/main/res/layout/${resourceName}_layout.xml") << ''' + file("${basedir}/src/main/res/layout/${resourceName}_layout.xml").text = ''' Date: Fri, 15 Nov 2019 09:20:02 +0100 Subject: [PATCH 2/2] Clarify smoke test about incremental build --- .../org/gradle/smoketests/AndroidPluginsSmokeTest.groovy | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/subprojects/smoke-test/src/smokeTest/groovy/org/gradle/smoketests/AndroidPluginsSmokeTest.groovy b/subprojects/smoke-test/src/smokeTest/groovy/org/gradle/smoketests/AndroidPluginsSmokeTest.groovy index 9e0611521bf6..7fabe4acb9fd 100644 --- a/subprojects/smoke-test/src/smokeTest/groovy/org/gradle/smoketests/AndroidPluginsSmokeTest.groovy +++ b/subprojects/smoke-test/src/smokeTest/groovy/org/gradle/smoketests/AndroidPluginsSmokeTest.groovy @@ -198,11 +198,11 @@ class AndroidPluginsSmokeTest extends AbstractSmokeTest { expectNoDeprecationWarnings(result) } - when: + when: 'abi change on library' writeActivity(library, libPackage, libraryActivity, true) result = runner('build', '-x', 'lint').build() - then: + then: 'dependent sources are recompiled' result.task(':library:compileReleaseJavaWithJavac').outcome == TaskOutcome.SUCCESS result.task(':app:compileReleaseJavaWithJavac').outcome == TaskOutcome.SUCCESS