[Testing] Support diagnostics filters in MultiModuleIdeResolveTest
This commit is contained in:
@@ -405,7 +405,7 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava<TestModule, Tes
|
|||||||
|
|
||||||
val RENDER_DIAGNOSTICS_MESSAGES = "RENDER_DIAGNOSTICS_MESSAGES"
|
val RENDER_DIAGNOSTICS_MESSAGES = "RENDER_DIAGNOSTICS_MESSAGES"
|
||||||
|
|
||||||
private fun parseDiagnosticFilterDirective(
|
fun parseDiagnosticFilterDirective(
|
||||||
directiveMap: Map<String, String>,
|
directiveMap: Map<String, String>,
|
||||||
allowUnderscoreUsage: Boolean
|
allowUnderscoreUsage: Boolean
|
||||||
): Condition<Diagnostic> {
|
): Condition<Diagnostic> {
|
||||||
|
|||||||
+5
-1
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.idea.caches.resolve
|
|||||||
|
|
||||||
import com.intellij.psi.PsiFile
|
import com.intellij.psi.PsiFile
|
||||||
import com.intellij.util.io.exists
|
import com.intellij.util.io.exists
|
||||||
|
import org.jetbrains.kotlin.checkers.BaseDiagnosticsTest
|
||||||
import org.jetbrains.kotlin.checkers.utils.CheckerTestUtil
|
import org.jetbrains.kotlin.checkers.utils.CheckerTestUtil
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
import org.jetbrains.kotlin.idea.multiplatform.setupMppProjectFromTextFile
|
import org.jetbrains.kotlin.idea.multiplatform.setupMppProjectFromTextFile
|
||||||
@@ -60,6 +61,9 @@ abstract class AbstractMultiModuleIdeResolveTest : AbstractMultiModuleTest() {
|
|||||||
val resolutionFacade = file.getResolutionFacade()
|
val resolutionFacade = file.getResolutionFacade()
|
||||||
val (bindingContext, moduleDescriptor) = resolutionFacade.analyzeWithAllCompilerChecks(listOf(file))
|
val (bindingContext, moduleDescriptor) = resolutionFacade.analyzeWithAllCompilerChecks(listOf(file))
|
||||||
|
|
||||||
|
val directives = KotlinTestUtils.parseDirectives(file.text)
|
||||||
|
val diagnosticsFilter = BaseDiagnosticsTest.parseDiagnosticFilterDirective(directives, allowUnderscoreUsage = false)
|
||||||
|
|
||||||
val actualDiagnostics = CheckerTestUtil.getDiagnosticsIncludingSyntaxErrors(
|
val actualDiagnostics = CheckerTestUtil.getDiagnosticsIncludingSyntaxErrors(
|
||||||
bindingContext,
|
bindingContext,
|
||||||
file,
|
file,
|
||||||
@@ -70,7 +74,7 @@ abstract class AbstractMultiModuleIdeResolveTest : AbstractMultiModuleTest() {
|
|||||||
languageVersionSettings = resolutionFacade.frontendService(),
|
languageVersionSettings = resolutionFacade.frontendService(),
|
||||||
dataFlowValueFactory = resolutionFacade.frontendService(),
|
dataFlowValueFactory = resolutionFacade.frontendService(),
|
||||||
moduleDescriptor = moduleDescriptor as ModuleDescriptorImpl
|
moduleDescriptor = moduleDescriptor as ModuleDescriptorImpl
|
||||||
)
|
).filter { diagnosticsFilter.value(it.diagnostic) }
|
||||||
|
|
||||||
val actualTextWithDiagnostics = CheckerTestUtil.addDiagnosticMarkersToText(
|
val actualTextWithDiagnostics = CheckerTestUtil.addDiagnosticMarkersToText(
|
||||||
file,
|
file,
|
||||||
|
|||||||
Reference in New Issue
Block a user