[Tests] Introduce transformers functions object
This commit is contained in:
+9
-4
@@ -129,7 +129,12 @@ object NewTestGeneratorImpl : TestGenerator(METHOD_GENERATORS) {
|
||||
p.println("import ${KtTestUtil::class.java.canonicalName};")
|
||||
|
||||
for (clazz in testClassModels.flatMapTo(mutableSetOf()) { classModel -> classModel.imports }) {
|
||||
p.println("import ${clazz.name};")
|
||||
val realName = when (clazz) {
|
||||
TransformingTestMethodModel.TransformerFunctionsClassPlaceHolder::class.java ->
|
||||
"org.jetbrains.kotlin.test.runners.TransformersFunctions"
|
||||
else -> clazz.name
|
||||
}
|
||||
p.println("import $realName;")
|
||||
}
|
||||
|
||||
if (suiteClassPackage != baseTestClassPackage) {
|
||||
@@ -208,7 +213,7 @@ object NewTestGeneratorImpl : TestGenerator(METHOD_GENERATORS) {
|
||||
|
||||
var first = true
|
||||
|
||||
val transformers = testClassModel.predefinedTransformers(false)
|
||||
val transformers = testClassModel.predefinedNativeTransformers(false)
|
||||
|
||||
if (transformers.isNotEmpty()) {
|
||||
p.println("public ${testClassModel.name}() {")
|
||||
@@ -286,8 +291,8 @@ object NewTestGeneratorImpl : TestGenerator(METHOD_GENERATORS) {
|
||||
return false
|
||||
}
|
||||
|
||||
private fun TestClassModel.predefinedTransformers(recursive: Boolean): List<Pair<String, String>> =
|
||||
private fun TestClassModel.predefinedNativeTransformers(recursive: Boolean): List<Pair<String, String>> =
|
||||
methods.mapNotNull { method ->
|
||||
(method as? TransformingTestMethodModel)?.takeIf { it.isNative }?.let { it.source.file.path to it.transformer }
|
||||
} + if (recursive) innerTestClasses.flatMap { it.predefinedTransformers(recursive) } else listOf()
|
||||
} + if (recursive) innerTestClasses.flatMap { it.predefinedNativeTransformers(recursive) } else listOf()
|
||||
}
|
||||
|
||||
+3
@@ -16,8 +16,11 @@ abstract class TransformingTestMethodModel(val source: SimpleTestMethodModel, va
|
||||
override val tags: List<String>
|
||||
get() = source.tags
|
||||
|
||||
object TransformerFunctionsClassPlaceHolder
|
||||
object Kind : MethodModel.Kind()
|
||||
|
||||
override fun imports(): Collection<Class<*>> = super.imports() + TransformerFunctionsClassPlaceHolder::class.java
|
||||
|
||||
internal val isNative
|
||||
get() = source.targetBackend in listOf(TargetBackend.NATIVE, TargetBackend.ANY)
|
||||
// Native tests load sources before runTest call if more than 1 test is called, so we need to register it before.
|
||||
|
||||
+2
-1
@@ -10,7 +10,8 @@ class WithoutJvmInlineTestMethodModel(
|
||||
val withAnnotation: Boolean
|
||||
) : TransformingTestMethodModel(
|
||||
source,
|
||||
transformer = "s -> s.replaceAll(\"OPTIONAL_JVM_INLINE_ANNOTATION\", \"${if (withAnnotation) "@kotlin.jvm.JvmInline" else ""}\")"
|
||||
transformer = "TransformersFunctions::" +
|
||||
if (withAnnotation) "replaceOptionalJvmInlineAnnotationWithReal" else "removeOptionalJvmInlineAnnotation"
|
||||
) {
|
||||
override val name: String = source.name + if (withAnnotation) "" else "_valueClasses"
|
||||
}
|
||||
Reference in New Issue
Block a user