From acf828621abb1f863318e5b33c38d421430a8f49 Mon Sep 17 00:00:00 2001 From: Marco Pennekamp Date: Wed, 31 Jan 2024 21:12:15 +0100 Subject: [PATCH] [LL] Support `SKIP_WHEN_OUT_OF_CONTENT_ROOT` in multi-module out-of-content-root tests containing library modules - If we don't override `createModules`, library module creation will fail with an exception before `SKIP_WHEN_OUT_OF_CONTENT_ROOT` is ever checked. - I don't think it makes sense to add library compilation support to out-of-content-root tests, since out-of-content-root files should not be able to depend on any library. ^KT-63330 --- ...AnalysisApiFirOutOfContentRootTestConfigurator.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirOutOfContentRootTestConfigurator.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirOutOfContentRootTestConfigurator.kt index dcd37ec68ef..108ae62a09e 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirOutOfContentRootTestConfigurator.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirOutOfContentRootTestConfigurator.kt @@ -9,6 +9,7 @@ import com.intellij.openapi.Disposable import com.intellij.openapi.project.Project import com.intellij.psi.PsiFile import com.intellij.psi.search.GlobalSearchScope +import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.KtModuleProjectStructure import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.KtModuleWithFiles import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.LLFirBuiltinsSessionFactory import org.jetbrains.kotlin.analysis.project.structure.KtModule @@ -23,6 +24,7 @@ import org.jetbrains.kotlin.test.directives.model.DirectiveApplicability import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer import org.jetbrains.kotlin.test.getAnalyzerServices import org.jetbrains.kotlin.test.model.TestModule +import org.jetbrains.kotlin.test.services.TestModuleStructure import org.jetbrains.kotlin.test.services.TestServices object AnalysisApiFirOutOfContentRootTestConfigurator : AnalysisApiFirSourceLikeTestConfigurator(false) { @@ -38,12 +40,16 @@ object AnalysisApiFirOutOfContentRootTestConfigurator : AnalysisApiFirSourceLike } } - override fun prepareFilesInModule(files: List, module: TestModule, testServices: TestServices) { - if (Directives.SKIP_WHEN_OUT_OF_CONTENT_ROOT in module.directives) { + override fun createModules( + moduleStructure: TestModuleStructure, + testServices: TestServices, + project: Project + ): KtModuleProjectStructure { + if (Directives.SKIP_WHEN_OUT_OF_CONTENT_ROOT in moduleStructure.allDirectives) { throw SkipWhenOutOfContentRootException() } - super.prepareFilesInModule(files, module, testServices) + return super.createModules(moduleStructure, testServices, project) } object Directives : SimpleDirectivesContainer() {