From 18ad0fb0e57fdcbbe3df1e8ae462f0f2b5b044b9 Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Thu, 5 Oct 2023 20:22:31 +0530 Subject: [PATCH] tests(tooling-api): do add unresolved dependency when config cache is enabled --- .../tooling/impl/MultiModuleAndroidProjectTest.kt | 4 +++- .../tooling/testing/ToolingApiTestLauncher.kt | 13 ++++++++++++- .../app/{build.gradle => build.gradle.in} | 3 ++- 3 files changed, 17 insertions(+), 3 deletions(-) rename tests/test-project/app/{build.gradle => build.gradle.in} (95%) diff --git a/subprojects/tooling-api-impl/src/test/java/com/itsaky/androidide/tooling/impl/MultiModuleAndroidProjectTest.kt b/subprojects/tooling-api-impl/src/test/java/com/itsaky/androidide/tooling/impl/MultiModuleAndroidProjectTest.kt index 8166a6db1..854a63335 100644 --- a/subprojects/tooling-api-impl/src/test/java/com/itsaky/androidide/tooling/impl/MultiModuleAndroidProjectTest.kt +++ b/subprojects/tooling-api-impl/src/test/java/com/itsaky/androidide/tooling/impl/MultiModuleAndroidProjectTest.kt @@ -59,7 +59,9 @@ class MultiModuleAndroidProjectTest { // Issue #1173 val taskPaths = mutableListOf() - val client = object : MultiVersionTestClient() { + + // do not add unresolved dependency so that teh configuration cache is properly created + val client = object : MultiVersionTestClient(excludeUnresolvedDependency = true) { override fun getBuildArguments(): CompletableFuture> { return CompletableFuture.completedFuture(super.getBuildArguments().get().toMutableList() diff --git a/subprojects/tooling-api-testing/src/main/java/com/itsaky/androidide/tooling/testing/ToolingApiTestLauncher.kt b/subprojects/tooling-api-testing/src/main/java/com/itsaky/androidide/tooling/testing/ToolingApiTestLauncher.kt index d67cfdf49..96219f1e1 100644 --- a/subprojects/tooling-api-testing/src/main/java/com/itsaky/androidide/tooling/testing/ToolingApiTestLauncher.kt +++ b/subprojects/tooling-api-testing/src/main/java/com/itsaky/androidide/tooling/testing/ToolingApiTestLauncher.kt @@ -128,7 +128,8 @@ class ToolingApiTestLauncher { var agpVersion: String = DEFAULT_AGP_VERSION, var gradleVersion: String = DEFAULT_GRADLE_VERSION, private val log: ILogger = ILogger.newInstance(MultiVersionTestClient::class.simpleName), - private val extraArgs : List = emptyList() + private val extraArgs : List = emptyList(), + private var excludeUnresolvedDependency: Boolean = false ) : IToolingApiClient { val gradleDistParams: GradleDistributionParams @@ -139,6 +140,9 @@ class ToolingApiTestLauncher { const val buildFile = "build.gradle" const val buildFileIn = "$buildFile.in" + const val appBuildFile = "app/build.gradle" + const val appBuildFileIn = "$appBuildFile.in" + const val DEFAULT_AGP_VERSION = "7.2.0" const val DEFAULT_GRADLE_VERSION = "7.3.3" @@ -163,6 +167,12 @@ class ToolingApiTestLauncher { projectDir.resolve(buildFileIn) .replaceContents(dest = projectDir.resolve(buildFile), candidate = "@@TOOLING_API_TEST_AGP_VERSION@@" to this.agpVersion) + + if (!excludeUnresolvedDependency) { + projectDir.resolve(appBuildFileIn) + .replaceContents(dest = projectDir.resolve(appBuildFile), + candidate = "@@UNRESOLVED_DEPENDENCY@@" to "implementation 'unresolved:unresolved:unresolved'") + } } override fun onBuildSuccessful(result: BuildResult) { @@ -175,6 +185,7 @@ class ToolingApiTestLauncher { private fun onBuildResult(result: BuildResult) { projectDir.resolve(buildFile).deleteIfExists() + projectDir.resolve(appBuildFile).deleteIfExists() } override fun onProgressEvent(event: ProgressEvent) {} diff --git a/tests/test-project/app/build.gradle b/tests/test-project/app/build.gradle.in similarity index 95% rename from tests/test-project/app/build.gradle rename to tests/test-project/app/build.gradle.in index 60ae79efb..30c36c722 100644 --- a/tests/test-project/app/build.gradle +++ b/tests/test-project/app/build.gradle.in @@ -64,9 +64,10 @@ dependencies { implementation 'com.google.android.material:material:1.8.0-alpha01' implementation 'androidx.coordinatorlayout:coordinatorlayout:1.2.0' - implementation 'unresolved:unresolved:unresolved' implementation project (path: ':another-android-library') implementation platform('com.google.firebase:firebase-bom:30.5.0') + + @@UNRESOLVED_DEPENDENCY@@ }