[Analysis API] Add test infrastructure for code fragments
Now, Analysis API tests can define modules with code fragments. The preceding module will be used as a context module.
This commit is contained in:
+14
-3
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.analysis.api.fir.test.configurators
|
||||
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirCodeFragmentTestConfigurator
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirLibraryBinaryTestConfigurator
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirLibrarySourceTestConfigurator
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirScriptTestConfigurator
|
||||
@@ -35,6 +36,11 @@ object AnalysisApiFirTestConfiguratorFactory : AnalysisApiTestConfiguratorFactor
|
||||
require(data.analysisSessionMode == AnalysisSessionMode.Normal)
|
||||
AnalysisApiFirLibrarySourceTestConfigurator
|
||||
}
|
||||
|
||||
TestModuleKind.CodeFragment -> when (data.analysisSessionMode) {
|
||||
AnalysisSessionMode.Normal -> AnalysisApiFirCodeFragmentTestConfigurator(analyseInDependentSession = false)
|
||||
AnalysisSessionMode.Dependent -> AnalysisApiFirCodeFragmentTestConfigurator(analyseInDependentSession = true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,11 +49,16 @@ object AnalysisApiFirTestConfiguratorFactory : AnalysisApiTestConfiguratorFactor
|
||||
data.frontend != FrontendKind.Fir -> false
|
||||
data.analysisApiMode != AnalysisApiMode.Ide -> false
|
||||
else -> when (data.moduleKind) {
|
||||
TestModuleKind.Source, TestModuleKind.ScriptSource -> true
|
||||
TestModuleKind.Source,
|
||||
TestModuleKind.ScriptSource -> {
|
||||
true
|
||||
}
|
||||
|
||||
TestModuleKind.LibraryBinary,
|
||||
TestModuleKind.LibrarySource
|
||||
->
|
||||
TestModuleKind.LibrarySource,
|
||||
TestModuleKind.CodeFragment -> {
|
||||
data.analysisSessionMode == AnalysisSessionMode.Normal
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user