From 6c7247cbd35ac80010b2d64c95403477457b0d8b Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Tue, 24 Nov 2020 10:36:46 +0100 Subject: [PATCH] syncKotlinAndAndroidSourceSets: Don't register Kotlin source dirs in Android java source dirs --- .../AbstractKotlinAndroidGradleTests.kt | 24 ++++++---------- .../SyncKotlinAndAndroidSourceSetsTest.kt | 28 +++++++------------ .../mpp/syncKotlinAndAndroidSourceSets.kt | 2 -- 3 files changed, 19 insertions(+), 35 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt index 2973827e45d..5f32b0f5f83 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt @@ -25,14 +25,6 @@ open class KotlinAndroid36GradleIT : KotlinAndroid33GradleIT() { fun testAndroidMppSourceSets(): Unit = with(Project("new-mpp-android-source-sets", GradleVersionRequired.FOR_MPP_SUPPORT)) { build("sourceSets") { assertSuccessful() - assertContains("Java sources: [lib/src/androidTest/java, lib/src/androidAndroidTest/kotlin]") - assertContains("Java sources: [lib/src/androidTestDebug/java, lib/src/androidAndroidTestDebug/kotlin]") - assertContains("Java sources: [lib/src/debug/java, lib/src/androidDebug/kotlin, lib/src/debug/kotlin]") - assertContains("Java sources: [lib/src/main/java, lib/src/androidMain/kotlin, lib/src/main/kotlin]") - assertContains("Java sources: [lib/src/release/java, lib/src/androidRelease/kotlin, lib/src/release/kotlin]") - assertContains("Java sources: [lib/src/test/java, lib/src/androidTest/kotlin, lib/src/test/kotlin]") - assertContains("Java sources: [lib/src/testDebug/java, lib/src/androidTestDebug/kotlin, lib/src/testDebug/kotlin]") - assertContains("Java sources: [lib/src/testRelease/java, lib/src/androidTestRelease/kotlin, lib/src/testRelease/kotlin]") assertContains("Android resources: [lib/src/main/res, lib/src/androidMain/res]") assertContains("Assets: [lib/src/main/assets, lib/src/androidMain/assets]") @@ -50,14 +42,13 @@ open class KotlinAndroid36GradleIT : KotlinAndroid33GradleIT() { assertContains("JNI libraries: [lib/src/androidTestDebug/jniLibs, lib/src/androidAndroidTestDebug/jniLibs]") assertContains("Java-style resources: [lib/src/androidTestDebug/resources, lib/src/androidAndroidTestDebug/resources]") - assertContains("Java sources: [lib/betaSrc/paidBeta/java, lib/src/androidPaidBeta/kotlin, lib/src/paidBeta/kotlin]") - assertContains("Java sources: [lib/betaSrc/paidBetaDebug/java, lib/src/androidPaidBetaDebug/kotlin, lib/src/paidBetaDebug/kotlin]") - assertContains("Java sources: [lib/betaSrc/paidBetaRelease/java, lib/src/androidPaidBetaRelease/kotlin, lib/src/paidBetaRelease/kotlin]") - - assertContains("Java sources: [lib/betaSrc/freeBeta/java, lib/src/androidFreeBeta/kotlin, lib/src/freeBeta/kotlin]") - assertContains("Java sources: [lib/betaSrc/freeBetaDebug/java, lib/src/androidFreeBetaDebug/kotlin, lib/src/freeBetaDebug/kotlin]") - assertContains("Java sources: [lib/betaSrc/freeBetaRelease/java, lib/src/androidFreeBetaRelease/kotlin, lib/src/freeBetaRelease/kotlin]") + assertContains("Java-style resources: [lib/betaSrc/paidBeta/resources, lib/src/androidPaidBeta/resources]") + assertContains("Java-style resources: [lib/betaSrc/paidBetaDebug/resources, lib/src/androidPaidBetaDebug/resources]") + assertContains("Java-style resources: [lib/betaSrc/paidBetaRelease/resources, lib/src/androidPaidBetaRelease/resources]") + assertContains("Java-style resources: [lib/betaSrc/freeBeta/resources, lib/src/androidFreeBeta/resources]") + assertContains("Java-style resources: [lib/betaSrc/freeBetaDebug/resources, lib/src/androidFreeBetaDebug/resources]") + assertContains("Java-style resources: [lib/betaSrc/freeBetaRelease/resources, lib/src/androidFreeBetaRelease/resources]") } build("testFreeBetaDebug") { @@ -73,10 +64,13 @@ open class KotlinAndroid36GradleIT : KotlinAndroid33GradleIT() { } // Test for KT-35016: MPP should recognize android instrumented tests correctly + // TODO: https://issuetracker.google.com/issues/173770818 enable after fix in AGP + /* build("connectedAndroidTest") { assertFailed() assertContains("No connected devices!") } + */ } @Test diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/SyncKotlinAndAndroidSourceSetsTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/SyncKotlinAndAndroidSourceSetsTest.kt index fcbbaf40fbe..dd0bc6c5eec 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/SyncKotlinAndAndroidSourceSetsTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/SyncKotlinAndAndroidSourceSetsTest.kt @@ -45,10 +45,11 @@ class SyncKotlinAndAndroidSourceSetsTest { val kotlinAndroidMainSourceSet = kotlin.sourceSets.getByName("androidMain") val androidMainSourceSet = android.sourceSets.getByName("main") - assertEquals( - androidMainSourceSet.java.srcDirs.toSet(), - kotlinAndroidMainSourceSet.kotlin.srcDirs.toSet(), - "Expected all source directories being present in all models" + assertTrue( + kotlinAndroidMainSourceSet.kotlin.srcDirs.containsAll(androidMainSourceSet.java.srcDirs), + "Expected all Android java srcDirs in Kotlin source set.\n" + + "Kotlin=${kotlinAndroidMainSourceSet.kotlin.srcDirs}\n" + + "Android=${androidMainSourceSet.java.srcDirs}" ) } @@ -59,10 +60,11 @@ class SyncKotlinAndAndroidSourceSetsTest { val kotlinAndroidTestSourceSet = kotlin.sourceSets.getByName("androidTest") val testSourceSet = android.sourceSets.getByName("test") - assertEquals( - testSourceSet.java.srcDirs.toSet(), - kotlinAndroidTestSourceSet.kotlin.srcDirs.toSet(), - "Expected all source directories being present in all models" + assertTrue( + kotlinAndroidTestSourceSet.kotlin.srcDirs.containsAll(testSourceSet.java.srcDirs), + "Expected all Android java srcDirs in Kotlin source set.\n" + + "Kotlin=${kotlinAndroidTestSourceSet.kotlin.srcDirs}\n" + + "Android=${testSourceSet.java.srcDirs}" ) } @@ -73,11 +75,6 @@ class SyncKotlinAndAndroidSourceSetsTest { val kotlinAndroidAndroidTestSourceSet = kotlin.sourceSets.getByName("androidAndroidTest") val androidTestSourceSet = android.sourceSets.getByName("androidTest") - assertTrue( - androidTestSourceSet.java.srcDirs.toSet().containsAll(kotlinAndroidAndroidTestSourceSet.kotlin.srcDirs), - "Expected all kotlin source directories being registered on AGP" - ) - assertTrue( project.file("src/androidTest/kotlin") !in kotlinAndroidAndroidTestSourceSet.kotlin.srcDirs, "Expected no source directory of 'androidTest' kotlin source set (Unit Test) " + @@ -172,11 +169,6 @@ class SyncKotlinAndAndroidSourceSetsTest { kotlinAndroidMain.kotlin.srcDirs.containsAll(setOf(project.file("fromKotlin"), project.file("fromAndroid"))), "Expected custom configured source directories being present on kotlin source set after evaluation" ) - - assertTrue( - androidMain.java.srcDirs.containsAll(setOf(project.file("fromKotlin"), project.file("fromAndroid"))), - "Expected custom configured source directories being present on android source set after evaluation" - ) } @Test diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/syncKotlinAndAndroidSourceSets.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/syncKotlinAndAndroidSourceSets.kt index 59f4696bee6..53a6f32c2f4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/syncKotlinAndAndroidSourceSets.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/syncKotlinAndAndroidSourceSets.kt @@ -79,7 +79,6 @@ private fun syncKotlinAndAndroidSourceDirs( } kotlinSourceSet.kotlin.srcDirs(*androidSourceSet.java.srcDirs.toTypedArray()) - androidSourceSet.java.srcDirs(*kotlinSourceSet.kotlin.srcDirs.toTypedArray()) /* Make sure to include user configuration as well. @@ -88,7 +87,6 @@ private fun syncKotlinAndAndroidSourceDirs( */ target.project.whenEvaluated { kotlinSourceSet.kotlin.srcDirs(*androidSourceSet.java.srcDirs.toTypedArray()) - androidSourceSet.java.srcDirs(*kotlinSourceSet.kotlin.srcDirs.toTypedArray()) } }