diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidIT.kt index f03deffafc5..71aae9bd80e 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidIT.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.gradle.testbase.* import org.jetbrains.kotlin.gradle.util.* import org.junit.jupiter.api.DisplayName import kotlin.io.path.appendText +import kotlin.io.path.readText import kotlin.io.path.writeText @DisplayName("android with kapt3 tests") @@ -291,4 +292,39 @@ class Kapt3AndroidIT : Kapt3BaseIT() { ) } } + + @DisplayName("KT-55334: Kapt generate stubs and related KotlinCompile tasks are using similar -module-name value") + @GradleAndroidTest + fun kaptGenerateStubsModuleName( + gradleVersion: GradleVersion, + agpVersion: String, + jdkVersion: JdkVersions.ProvidedJdk + ) { + project( + "kapt2/android-dagger", + gradleVersion, + buildOptions = defaultBuildOptions.copy(androidVersion = agpVersion), + buildJdk = jdkVersion.location + ) { + build(":app:compileDebugAndroidTestKotlin") { + val stubsFile = subProject("app") + .projectPath + .resolve("build/tmp/kapt3/stubs/debugAndroidTest/com/example/dagger/kotlin/TestClass.java") + assertFileExists(stubsFile) + assertFileContains( + stubsFile, + "public final void bar${'$'}app_debugAndroidTest() {" + ) + + val compiledClassFile = subProject("app") + .projectPath + .resolve("build/tmp/kotlin-classes/debugAndroidTest/com/example/dagger/kotlin/TestClass.class") + assertFileExists(compiledClassFile) + checkBytecodeContains( + compiledClassFile.toFile(), + "public final bar${'$'}app_debugAndroidTest()V" + ) + } + } + } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/build.gradle index 79fe0851c1a..e4f67982bd8 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/build.gradle @@ -36,5 +36,7 @@ dependencies { implementation 'com.google.dagger:dagger:2.9' kapt 'com.google.dagger:dagger-compiler:2.9' kapt 'javax.annotation:javax.annotation-api:1.3.2' + kaptAndroidTest 'com.google.dagger:dagger-compiler:2.9' + kaptAndroidTest 'javax.annotation:javax.annotation-api:1.3.2' compileOnly 'org.glassfish:javax.annotation:10.0-b28' } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/src/androidTest/java/com/example/dagger/kotlin/TestClass.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/src/androidTest/java/com/example/dagger/kotlin/TestClass.kt new file mode 100644 index 00000000000..8502f89ce38 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/src/androidTest/java/com/example/dagger/kotlin/TestClass.kt @@ -0,0 +1,12 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package com.example.dagger.kotlin + +class TestClass { + internal fun bar() { + + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/src/androidTest/java/com/example/dagger/kotlin/TestComponent.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/src/androidTest/java/com/example/dagger/kotlin/TestComponent.kt new file mode 100644 index 00000000000..ff9f79653a7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/src/androidTest/java/com/example/dagger/kotlin/TestComponent.kt @@ -0,0 +1,16 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package com.example.dagger.kotlin + +import com.example.dagger.kotlin.ui.HomeActivity +import dagger.Component +import javax.inject.Singleton + +@Singleton +@Component +interface TestComponent { + fun inject(application: BaseApplication) +}