From ce291b45b957cae5edb2fab578d0eb1b6bd5e524 Mon Sep 17 00:00:00 2001 From: Alexander Shabalin Date: Fri, 26 Jan 2024 14:45:32 +0100 Subject: [PATCH] [K/N][tests] Cache executors based on testTarget --- .../test/blackbox/support/runner/TestRunners.kt | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/runner/TestRunners.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/runner/TestRunners.kt index 4efaadc622a..c7dc40ed712 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/runner/TestRunners.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/runner/TestRunners.kt @@ -17,26 +17,23 @@ internal object TestRunners { if (get().value) { NoopTestRunner } else with(get()) { - val configurables = configurables - - val executor = cached( + val executor = executorCache.computeIfAbsent(testTarget) { + val configurables = configurables when { - testTarget == hostTarget -> HostExecutor() + configurables.target == hostTarget -> HostExecutor() configurables is ConfigurablesWithEmulator -> EmulatorExecutor(configurables) configurables is AppleConfigurables && configurables.targetTriple.isSimulator -> XcodeSimulatorExecutor(configurables) configurables is AppleConfigurables && RosettaExecutor.availableFor(configurables) -> RosettaExecutor(configurables) else -> runningOnUnsupportedTarget() } - ) + } + RunnerWithExecutor(executor, testRun) } } - private val runnersCache: ConcurrentHashMap = ConcurrentHashMap() - - private inline fun cached(executor: T): Executor = - runnersCache.computeIfAbsent(T::class.java.simpleName) { executor } + private val executorCache: ConcurrentHashMap = ConcurrentHashMap() // Currently, only local test name extractor is supported. fun extractTestNames(executable: TestExecutable, settings: Settings): Collection = with(settings) {