[Native][tests] Use single instance of AbstractExternalNativeBlackBoxTest for consistent caching of source transformers

This also makes sense for all inner classes under AbstractExternalNativeBlackBoxTest.
This commit is contained in:
Dmitriy Dolovov
2021-12-13 18:13:48 +03:00
parent a440864de4
commit a707a7a65a
2 changed files with 5 additions and 1 deletions
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.konan.blackboxtest.support.group.UseExtTestCaseGroup
import org.jetbrains.kotlin.konan.blackboxtest.support.group.UseStandardTestCaseGroupProvider
import org.jetbrains.kotlin.test.TargetBackend
import org.junit.jupiter.api.Tag
import org.junit.jupiter.api.TestInstance
fun main() {
System.setProperty("java.awt.headless", "true")
@@ -22,7 +23,7 @@ fun main() {
testGroup("native/native.tests/tests-gen", "compiler/testData") {
testClass<AbstractExternalNativeBlackBoxTest>(
suiteTestClassName = "ExternalTestGenerated",
annotations = listOf(external(), provider<UseExtTestCaseGroupProvider>())
annotations = listOf(external(), provider<UseExtTestCaseGroupProvider>(), testInstancePerClass())
) {
model("codegen/box", targetBackend = TargetBackend.NATIVE)
model("codegen/boxInline", targetBackend = TargetBackend.NATIVE)
@@ -46,3 +47,4 @@ private inline fun <reified T : Annotation> provider() = annotation(T::class.jav
private fun external() = annotation(Tag::class.java, "external")
private fun infrastructure() = annotation(Tag::class.java, "infrastructure")
private fun testInstancePerClass() = annotation(TestInstance::class.java, TestInstance.Lifecycle.PER_CLASS)
@@ -11,8 +11,10 @@ import org.jetbrains.kotlin.konan.blackboxtest.support.util.ExternalSourceTransf
import org.jetbrains.kotlin.konan.blackboxtest.support.util.ExternalSourceTransformersProvider
import org.jetbrains.kotlin.konan.blackboxtest.support.util.ThreadSafeCache
import org.jetbrains.kotlin.konan.blackboxtest.support.util.getAbsoluteFile
import org.junit.jupiter.api.TestInstance
import java.io.File
@TestInstance(TestInstance.Lifecycle.PER_CLASS) // Create only one instance of every test class for consistent caching of source transformers.
abstract class AbstractExternalNativeBlackBoxTest : ExternalSourceTransformersProvider, AbstractNativeBlackBoxTest() {
private val registeredSourceTransformers: ThreadSafeCache<File, MutableList<ExternalSourceTransformer>> = ThreadSafeCache()