[Testing] Support diagnostics filters in MultiModuleIdeResolveTest

This commit is contained in:
Dmitry Savvinov
2019-06-05 12:01:34 +03:00
parent 68c1a7cedd
commit 43ef0ffa50
2 changed files with 6 additions and 2 deletions
@@ -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> {
@@ -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,