diff --git a/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/CodegenTestsOnAndroidGenerator.kt b/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/CodegenTestsOnAndroidGenerator.kt index b833f5719b8..810dc7d21c4 100644 --- a/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/CodegenTestsOnAndroidGenerator.kt +++ b/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/CodegenTestsOnAndroidGenerator.kt @@ -27,7 +27,9 @@ import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.model.DependencyKind import org.jetbrains.kotlin.test.model.FrontendKinds import org.jetbrains.kotlin.test.model.ResultingArtifact +import org.jetbrains.kotlin.test.model.TestFile import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerTest +import org.jetbrains.kotlin.test.runners.TransformersFunctions.Android import org.jetbrains.kotlin.test.services.* import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator import org.jetbrains.kotlin.test.services.configuration.JvmEnvironmentConfigurator @@ -412,6 +414,13 @@ class CodegenTestsOnAndroidGenerator private constructor(private val pathManager useAdditionalService(::TemporaryDirectoryManagerImpl) useSourcePreprocessor(*AbstractKotlinCompilerTest.defaultPreprocessors.toTypedArray()) useDirectives(*AbstractKotlinCompilerTest.defaultDirectiveContainers.toTypedArray()) + class AndroidTransformingPreprocessor(testServices: TestServices) : SourceFilePreprocessor(testServices) { + override fun process(file: TestFile, content: String): String { + val transformers = Android.forAll + (Android.forSpecificFile[file.originalFile]?.let { listOf(it) } ?: emptyList()) + return transformers.fold(content) { text, transformer -> transformer(text) } + } + } + useSourcePreprocessor({ AndroidTransformingPreprocessor(it) }) } companion object { diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/TransformersFunctions.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/TransformersFunctions.kt index dcc1ceb77a7..ccd686d3549 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/TransformersFunctions.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/TransformersFunctions.kt @@ -5,6 +5,8 @@ package org.jetbrains.kotlin.test.runners +import java.io.File + object TransformersFunctions { @JvmStatic fun replaceOptionalJvmInlineAnnotationWithReal(source: String): String { @@ -15,4 +17,12 @@ object TransformersFunctions { fun removeOptionalJvmInlineAnnotation(source: String): String { return source.replace("OPTIONAL_JVM_INLINE_ANNOTATION", "") } + + object Android { + val forAll: List<(String) -> String> = listOf( + TransformersFunctions::replaceOptionalJvmInlineAnnotationWithReal, + ) + val forSpecificFile: Map String> = mapOf( + ) + } } \ No newline at end of file