diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/compiler/based/FirIdeDirectives.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/compiler/based/FirIdeDirectives.kt deleted file mode 100644 index 2c8fcb67c5f..00000000000 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/compiler/based/FirIdeDirectives.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based - -import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer -import org.jetbrains.kotlin.test.directives.model.DirectiveApplicability.Global - -object FirIdeDirectives : SimpleDirectivesContainer() { - val FIR_IDE_IGNORE by directive( - description = "Test is ignored in FIR IDE", - applicability = Global - ) -} \ No newline at end of file diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/compiler/based/IdeTestIgnoreHandler.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/compiler/based/IdeTestIgnoreHandler.kt deleted file mode 100644 index 4e2b1232665..00000000000 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/compiler/based/IdeTestIgnoreHandler.kt +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based - -import org.jetbrains.kotlin.test.WrappedException -import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder -import org.jetbrains.kotlin.test.directives.model.DirectivesContainer -import org.jetbrains.kotlin.test.model.AfterAnalysisChecker -import org.jetbrains.kotlin.test.services.TestServices -import org.jetbrains.kotlin.test.services.moduleStructure -import org.jetbrains.kotlin.test.utils.removeDirectiveFromFile - -class IdeTestIgnoreHandler(testServices: TestServices) : AfterAnalysisChecker(testServices) { - companion object { - private val isTeamCityBuild: Boolean = System.getenv("TEAMCITY_VERSION") != null - } - - override val directiveContainers: List - get() = listOf(FirIdeDirectives) - - override fun check(failedAssertions: List) { - if (!isFirIdeIgnoreDirectivePresent()) return - if (failedAssertions.isNotEmpty()) return - val testDataFile = testServices.moduleStructure.originalTestDataFiles.first() - - if (!isTeamCityBuild) { - testDataFile.removeDirectiveFromFile(FirIdeDirectives.FIR_IDE_IGNORE) - } - - val message = if (isTeamCityBuild) { - "Please remove // ${FirIdeDirectives.FIR_IDE_IGNORE} from the test source" - } else { - "Removed // ${FirIdeDirectives.FIR_IDE_IGNORE} from the test source" - } - throw TestWithFirIdeIgnoreAnnotationPassesException( - """ - Test pass in FIR IDE - $message - Please re-run the test now - """.trimIndent() - ) - } - - - override fun suppressIfNeeded(failedAssertions: List): List { - return if (isFirIdeIgnoreDirectivePresent()) - failedAssertions.filter{ it.cause is TestWithFirIdeIgnoreAnnotationPassesException } - else failedAssertions - } - - private fun isFirIdeIgnoreDirectivePresent(): Boolean { - val moduleStructure = testServices.moduleStructure - return FirIdeDirectives.FIR_IDE_IGNORE in moduleStructure.allDirectives - } -} - -fun TestConfigurationBuilder.addIdeTestIgnoreHandler() { - /* IdeTestIgnoreHandler should be executed after FirFailingTestSuppressor, - otherwise IdeTestIgnoreHandler will suppress exceptions and FirFailingTestSuppressor will throw error - saying that file .fir.fail exists but test passes - */ - forTestsMatching("*") { - useAfterAnalysisCheckers( - ::IdeTestIgnoreHandler - ) - } -} - -class TestWithFirIdeIgnoreAnnotationPassesException(override val message: String) : IllegalStateException() diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractDiagnosisCompilerTestDataSpecTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractDiagnosisCompilerTestDataSpecTest.kt index e73f508c192..58b971bec84 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractDiagnosisCompilerTestDataSpecTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractDiagnosisCompilerTestDataSpecTest.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.based import org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based.AbstractCompilerBasedTestForFir -import org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based.addIdeTestIgnoreHandler import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.runners.baseFirDiagnosticTestConfiguration import org.jetbrains.kotlin.test.runners.baseFirSpecDiagnosticTestConfiguration @@ -15,6 +14,5 @@ abstract class AbstractDiagnosisCompilerTestDataSpecTest : AbstractCompilerBased override fun TestConfigurationBuilder.configureTest() { baseFirDiagnosticTestConfiguration(frontendFacade = ::LowLevelFirFrontendFacade) baseFirSpecDiagnosticTestConfiguration() - addIdeTestIgnoreHandler() } } diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractDiagnosisCompilerTestDataTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractDiagnosisCompilerTestDataTest.kt index 74575df34e6..feadc9b54b1 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractDiagnosisCompilerTestDataTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractDiagnosisCompilerTestDataTest.kt @@ -6,13 +6,11 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.based import org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based.AbstractCompilerBasedTestForFir -import org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based.addIdeTestIgnoreHandler import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.runners.baseFirDiagnosticTestConfiguration abstract class AbstractDiagnosisCompilerTestDataTest : AbstractCompilerBasedTestForFir() { override fun TestConfigurationBuilder.configureTest() { baseFirDiagnosticTestConfiguration(frontendFacade = ::LowLevelFirFrontendFacade) - addIdeTestIgnoreHandler() } }