From e248d1a58827b8cdf56cd7f5f6ee75f2ee15baa0 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Wed, 26 Jul 2023 19:29:10 +0200 Subject: [PATCH] [LL FIR] add script tests for AbstractFileBasedKotlinDeclarationProviderTest ^KT-60728 --- .../fileBasedDeclarationProvider/script.kts | 4 ++- ...tFileBasedKotlinDeclarationProviderTest.kt | 11 +++++-- ...otlinDeclarationProviderTestGenerated.java | 32 +++++++++++++++++++ ...tlinDeclarationProviderTestGenerated.java} | 10 ++---- .../tests/analysis/api/firLowLevel.kt | 8 +++-- 5 files changed, 52 insertions(+), 13 deletions(-) create mode 100644 analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ScriptFileBasedKotlinDeclarationProviderTestGenerated.java rename analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/{FileBasedKotlinDeclarationProviderTestGenerated.java => SourceFileBasedKotlinDeclarationProviderTestGenerated.java} (84%) diff --git a/analysis/low-level-api-fir/testdata/fileBasedDeclarationProvider/script.kts b/analysis/low-level-api-fir/testdata/fileBasedDeclarationProvider/script.kts index 2d02eeb7c65..6a1795273e5 100644 --- a/analysis/low-level-api-fir/testdata/fileBasedDeclarationProvider/script.kts +++ b/analysis/low-level-api-fir/testdata/fileBasedDeclarationProvider/script.kts @@ -19,4 +19,6 @@ typealias MyString = String fun foo() {} -val bar: String = "bar" \ No newline at end of file +val bar: String = "bar" + +foo() \ No newline at end of file diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFileBasedKotlinDeclarationProviderTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFileBasedKotlinDeclarationProviderTest.kt index 4c1c9f09bb8..2e513e8a77e 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFileBasedKotlinDeclarationProviderTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFileBasedKotlinDeclarationProviderTest.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir import com.intellij.psi.util.PsiTreeUtil import org.jetbrains.kotlin.analysis.providers.impl.declarationProviders.FileBasedKotlinDeclarationProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.AbstractLowLevelApiSingleFileTest +import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirScriptTestConfigurator import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirSourceTestConfigurator import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.ClassId @@ -22,8 +23,6 @@ import kotlin.test.assertContains import kotlin.test.assertNotNull abstract class AbstractFileBasedKotlinDeclarationProviderTest : AbstractLowLevelApiSingleFileTest() { - override val configurator = AnalysisApiFirSourceTestConfigurator(analyseInDependentSession = false) - override fun configureTest(builder: TestConfigurationBuilder) { super.configureTest(builder) with(builder) { @@ -151,4 +150,12 @@ private fun parseCallableId(rawString: String): CallableId { rawQualifier.endsWith('/') -> CallableId(FqName(rawQualifier.dropLast(1).replace('/', '.')), callableName) else -> CallableId(ClassId.fromString(rawQualifier, false), callableName) } +} + +abstract class AbstractSourceFileBasedKotlinDeclarationProviderTest : AbstractFileBasedKotlinDeclarationProviderTest() { + override val configurator = AnalysisApiFirSourceTestConfigurator(analyseInDependentSession = false) +} + +abstract class AbstractScriptFileBasedKotlinDeclarationProviderTest : AbstractFileBasedKotlinDeclarationProviderTest() { + override val configurator get() = AnalysisApiFirScriptTestConfigurator } \ No newline at end of file diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ScriptFileBasedKotlinDeclarationProviderTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ScriptFileBasedKotlinDeclarationProviderTestGenerated.java new file mode 100644 index 00000000000..12fc0dfbdf5 --- /dev/null +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ScriptFileBasedKotlinDeclarationProviderTestGenerated.java @@ -0,0 +1,32 @@ +/* + * Copyright 2010-2023 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; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/low-level-api-fir/testdata/fileBasedDeclarationProvider") +@TestDataPath("$PROJECT_ROOT") +public class ScriptFileBasedKotlinDeclarationProviderTestGenerated extends AbstractScriptFileBasedKotlinDeclarationProviderTest { + @Test + public void testAllFilesPresentInFileBasedDeclarationProvider() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/fileBasedDeclarationProvider"), Pattern.compile("^(.+)\\.(kts)$"), null, true); + } + + @Test + @TestMetadata("script.kts") + public void testScript() throws Exception { + runTest("analysis/low-level-api-fir/testdata/fileBasedDeclarationProvider/script.kts"); + } +} diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FileBasedKotlinDeclarationProviderTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceFileBasedKotlinDeclarationProviderTestGenerated.java similarity index 84% rename from analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FileBasedKotlinDeclarationProviderTestGenerated.java rename to analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceFileBasedKotlinDeclarationProviderTestGenerated.java index 2c38abc8dbd..25169f9ac9e 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FileBasedKotlinDeclarationProviderTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceFileBasedKotlinDeclarationProviderTestGenerated.java @@ -18,10 +18,10 @@ import java.util.regex.Pattern; @SuppressWarnings("all") @TestMetadata("analysis/low-level-api-fir/testdata/fileBasedDeclarationProvider") @TestDataPath("$PROJECT_ROOT") -public class FileBasedKotlinDeclarationProviderTestGenerated extends AbstractFileBasedKotlinDeclarationProviderTest { +public class SourceFileBasedKotlinDeclarationProviderTestGenerated extends AbstractSourceFileBasedKotlinDeclarationProviderTest { @Test public void testAllFilesPresentInFileBasedDeclarationProvider() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/fileBasedDeclarationProvider"), Pattern.compile("^(.+)\\.(kt|kts)$"), null, true); + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/fileBasedDeclarationProvider"), Pattern.compile("^(.+)\\.(kt)$"), null, true); } @Test @@ -48,12 +48,6 @@ public class FileBasedKotlinDeclarationProviderTestGenerated extends AbstractFil runTest("analysis/low-level-api-fir/testdata/fileBasedDeclarationProvider/sameNames.kt"); } - @Test - @TestMetadata("script.kts") - public void testScript() throws Exception { - runTest("analysis/low-level-api-fir/testdata/fileBasedDeclarationProvider/script.kts"); - } - @Test @TestMetadata("simple.kt") public void testSimple() throws Exception { diff --git a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/firLowLevel.kt b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/firLowLevel.kt index 1b9124f2e76..51b821d758e 100644 --- a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/firLowLevel.kt +++ b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/firLowLevel.kt @@ -119,8 +119,12 @@ internal fun TestGroupSuite.generateFirLowLevelApiTests() { model("getOrBuildFirForStdLib") } - testClass { - model("fileBasedDeclarationProvider", pattern = TestGeneratorUtil.KT_OR_KTS) + testClass { + model("fileBasedDeclarationProvider", pattern = TestGeneratorUtil.KT) + } + + testClass { + model("fileBasedDeclarationProvider", pattern = TestGeneratorUtil.KTS) } testClass {