Skip to content

Commit 6fe35a1

Browse files
committed
Disable Psi-based tests in header mode
^KT-78422
1 parent 23cd30c commit 6fe35a1

File tree

4 files changed

+36
-0
lines changed

4 files changed

+36
-0
lines changed

compiler/tests-common-new/testFixtures/org/jetbrains/kotlin/test/configuration/BaseCodegenConfiguration.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
3232
import org.jetbrains.kotlin.test.model.*
3333
import org.jetbrains.kotlin.test.services.AdditionalSourceProvider
3434
import org.jetbrains.kotlin.test.services.configuration.*
35+
import org.jetbrains.kotlin.test.services.fir.FirSpecificParserSuppressor
3536
import org.jetbrains.kotlin.test.services.sourceProviders.AdditionalDiagnosticsSourceFilesProvider
3637
import org.jetbrains.kotlin.test.services.sourceProviders.CoroutineHelpersSourceFilesProvider
3738
import org.jetbrains.kotlin.utils.bind
@@ -92,6 +93,8 @@ fun TestConfigurationBuilder.commonServicesConfigurationForCodegenAndDebugTest(t
9293
::AdditionalDiagnosticsSourceFilesProvider,
9394
::CoroutineHelpersSourceFilesProvider,
9495
)
96+
97+
useMetaTestConfigurators(::FirSpecificParserSuppressor)
9598
}
9699

97100
/**

compiler/tests-common-new/testFixtures/org/jetbrains/kotlin/test/configuration/BaseDiagnosticConfiguration.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.test.builders.irHandlersStep
2121
import org.jetbrains.kotlin.test.cli.CliDirectives.CHECK_COMPILER_OUTPUT
2222
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_STDLIB
2323
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.DIAGNOSTICS
24+
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.DISABLE_WITH_PARSER
2425
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.DUMP_VFIR
2526
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.TEST_ALONGSIDE_K1_TESTDATA
2627
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.USE_LATEST_LANGUAGE_VERSION
@@ -298,6 +299,7 @@ fun TestConfigurationBuilder.configureCommonDiagnosticTestPaths(
298299
forTestsMatching("compiler/fir/analysis-tests/testData/resolve/headerMode/*") {
299300
defaultDirectives {
300301
+HEADER_MODE
302+
DISABLE_WITH_PARSER with FirParser.Psi
301303
}
302304
}
303305
}

compiler/tests-common-new/testFixtures/org/jetbrains/kotlin/test/directives/FirDiagnosticsDirectives.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,10 @@ object FirDiagnosticsDirectives : SimpleDirectivesContainer() {
157157
val DISABLE_GENERATED_FIR_TAGS by directive(
158158
description = "Disables generating and checking for GENERATED_FIR_TAGS"
159159
)
160+
161+
val DISABLE_WITH_PARSER by enumDirective<FirParser>(
162+
description = "Disables the test if it's analyzed with specified parser"
163+
)
160164
}
161165

162166
object DumpCfgOption {
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
* Copyright 2010-2025 JetBrains s.r.o. and Kotlin Programming Language contributors.
3+
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
4+
*/
5+
6+
package org.jetbrains.kotlin.test.services.fir
7+
8+
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
9+
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.DISABLE_WITH_PARSER
10+
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.FIR_PARSER
11+
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
12+
import org.jetbrains.kotlin.test.directives.model.singleOrZeroValue
13+
import org.jetbrains.kotlin.test.services.MetaTestConfigurator
14+
import org.jetbrains.kotlin.test.services.TestServices
15+
import org.jetbrains.kotlin.test.services.moduleStructure
16+
17+
class FirSpecificParserSuppressor(testServices: TestServices) : MetaTestConfigurator(testServices) {
18+
override val directiveContainers: List<DirectivesContainer>
19+
get() = listOf(FirDiagnosticsDirectives)
20+
21+
override fun shouldSkipTest(): Boolean {
22+
val directives = testServices.moduleStructure.allDirectives
23+
val suppressedParser = directives.singleOrZeroValue(DISABLE_WITH_PARSER) ?: return false
24+
val currentParser = directives.singleOrZeroValue(FIR_PARSER) ?: return false
25+
return currentParser == suppressedParser
26+
}
27+
}

0 commit comments

Comments
 (0)