From a707a7a65ab737cdafd38a1883862914144febe8 Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Mon, 13 Dec 2021 18:13:48 +0300 Subject: [PATCH] [Native][tests] Use single instance of AbstractExternalNativeBlackBoxTest for consistent caching of source transformers This also makes sense for all inner classes under AbstractExternalNativeBlackBoxTest. --- .../kotlin/generators/tests/GenerateNativeBlackboxTests.kt | 4 +++- .../konan/blackboxtest/AbstractExternalNativeBlackBoxTest.kt | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/native/native.tests/tests/org/jetbrains/kotlin/generators/tests/GenerateNativeBlackboxTests.kt b/native/native.tests/tests/org/jetbrains/kotlin/generators/tests/GenerateNativeBlackboxTests.kt index 21e2b58cf10..c01f1ff264c 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/generators/tests/GenerateNativeBlackboxTests.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/generators/tests/GenerateNativeBlackboxTests.kt @@ -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( suiteTestClassName = "ExternalTestGenerated", - annotations = listOf(external(), provider()) + annotations = listOf(external(), provider(), testInstancePerClass()) ) { model("codegen/box", targetBackend = TargetBackend.NATIVE) model("codegen/boxInline", targetBackend = TargetBackend.NATIVE) @@ -46,3 +47,4 @@ private inline fun 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) diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractExternalNativeBlackBoxTest.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractExternalNativeBlackBoxTest.kt index b6252fccf07..13fb583375c 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractExternalNativeBlackBoxTest.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractExternalNativeBlackBoxTest.kt @@ -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> = ThreadSafeCache()