From 5f6ffc55b8fa010f34f2f3fdd84aabe770badd44 Mon Sep 17 00:00:00 2001 From: Marco Pennekamp Date: Tue, 5 Dec 2023 21:05:49 +0100 Subject: [PATCH] [Test] Wrap `Disposer.dispose` calls in `finally` - This ensures that disposables are disposed on test failure as well. ^KT-64099 --- .../FirResolveModularizedTotalKotlinTest.kt | 18 +++++++++++------- .../NonFirResolveModularizedTotalKotlinTest.kt | 10 ++++++---- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/FirResolveModularizedTotalKotlinTest.kt b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/FirResolveModularizedTotalKotlinTest.kt index aa949733cbc..46736897b57 100644 --- a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/FirResolveModularizedTotalKotlinTest.kt +++ b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/FirResolveModularizedTotalKotlinTest.kt @@ -154,16 +154,20 @@ class FirResolveModularizedTotalKotlinTest : AbstractFrontendModularizedTest() { override fun processModule(moduleData: ModuleData): ProcessorAction { val disposable = Disposer.newDisposable("Disposable for ${FirResolveModularizedTotalKotlinTest::class.simpleName}.processModule") - val configuration = createDefaultConfiguration(moduleData) - configureLanguageVersionSettings(configuration, moduleData, LanguageVersion.fromVersionString(LANGUAGE_VERSION_K2)!!) - val environment = KotlinCoreEnvironment.createForTests(disposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES) - PsiElementFinder.EP.getPoint(environment.project) - .unregisterExtension(JavaElementFinder::class.java) + try { + val configuration = createDefaultConfiguration(moduleData) + configureLanguageVersionSettings(configuration, moduleData, LanguageVersion.fromVersionString(LANGUAGE_VERSION_K2)!!) + val environment = KotlinCoreEnvironment.createForTests(disposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES) - runAnalysis(moduleData, environment) + PsiElementFinder.EP.getPoint(environment.project) + .unregisterExtension(JavaElementFinder::class.java) + + runAnalysis(moduleData, environment) + } finally { + Disposer.dispose(disposable) + } - Disposer.dispose(disposable) if (bench.hasFiles && FAIL_FAST) return ProcessorAction.STOP return ProcessorAction.NEXT } diff --git a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/NonFirResolveModularizedTotalKotlinTest.kt b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/NonFirResolveModularizedTotalKotlinTest.kt index ff614a501dd..3ddeeedd301 100644 --- a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/NonFirResolveModularizedTotalKotlinTest.kt +++ b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/NonFirResolveModularizedTotalKotlinTest.kt @@ -123,11 +123,13 @@ class NonFirResolveModularizedTotalKotlinTest : AbstractFrontendModularizedTest( override fun processModule(moduleData: ModuleData): ProcessorAction { val disposable = Disposer.newDisposable("Disposable for ${NonFirResolveModularizedTotalKotlinTest::class.simpleName}.processModule") - val environment = configureAndSetupEnvironment(moduleData, disposable) + try { + val environment = configureAndSetupEnvironment(moduleData, disposable) + runAnalysis(environment) + } finally { + Disposer.dispose(disposable) + } - runAnalysis(environment) - - Disposer.dispose(disposable) return ProcessorAction.NEXT }