[LL FIR] add script tests for AbstractFileBasedKotlinDeclarationProviderTest

^KT-60728
This commit is contained in:
Dmitrii Gridin
2023-07-26 19:29:10 +02:00
committed by Space Team
parent aa36e2ef5b
commit e248d1a588
5 changed files with 52 additions and 13 deletions
@@ -19,4 +19,6 @@ typealias MyString = String
fun foo() {}
val bar: String = "bar"
val bar: String = "bar"
foo()
@@ -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
}
@@ -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");
}
}
@@ -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 {
@@ -119,8 +119,12 @@ internal fun TestGroupSuite.generateFirLowLevelApiTests() {
model("getOrBuildFirForStdLib")
}
testClass<AbstractFileBasedKotlinDeclarationProviderTest> {
model("fileBasedDeclarationProvider", pattern = TestGeneratorUtil.KT_OR_KTS)
testClass<AbstractSourceFileBasedKotlinDeclarationProviderTest> {
model("fileBasedDeclarationProvider", pattern = TestGeneratorUtil.KT)
}
testClass<AbstractScriptFileBasedKotlinDeclarationProviderTest> {
model("fileBasedDeclarationProvider", pattern = TestGeneratorUtil.KTS)
}
testClass<AbstractSourceNonLocalDeclarationAnchorTest> {