[FIR] Migrate fir plugin prototype tests to new test infrastructure
This commit is contained in:
committed by
TeamCityServer
parent
e56c87a17a
commit
6d42914e56
@@ -1,3 +1,5 @@
|
||||
import org.jetbrains.kotlin.ideaExt.idea
|
||||
|
||||
plugins {
|
||||
kotlin("jvm")
|
||||
id("jps-compatible")
|
||||
@@ -8,36 +10,54 @@ dependencies {
|
||||
api(project(":compiler:fir:tree"))
|
||||
api(project(":compiler:fir:resolve"))
|
||||
api(project(":compiler:fir:checkers"))
|
||||
api(project(":compiler:frontend"))
|
||||
api(intellijCoreDep()) { includeJars("intellij-core") }
|
||||
|
||||
compileOnly(project(":kotlin-reflect-api"))
|
||||
compileOnly(intellijCoreDep()) { includeJars("intellij-core", "guava", rootProject = rootProject) }
|
||||
|
||||
testApi(intellijDep())
|
||||
|
||||
testApi(commonDep("junit:junit"))
|
||||
testCompileOnly(project(":kotlin-test:kotlin-test-jvm"))
|
||||
testCompileOnly(project(":kotlin-test:kotlin-test-junit"))
|
||||
testApi(projectTests(":compiler:tests-common"))
|
||||
testApiJUnit5()
|
||||
testApi(projectTests(":compiler:tests-common-new"))
|
||||
testApi(projectTests(":compiler:test-infrastructure"))
|
||||
testApi(projectTests(":compiler:test-infrastructure-utils"))
|
||||
testApi(project(":compiler:fir:checkers"))
|
||||
testApi(project(":compiler:fir:checkers:checkers.jvm"))
|
||||
testApi(projectTests(":compiler:fir:analysis-tests:legacy-fir-tests"))
|
||||
testApi(project(":compiler:frontend"))
|
||||
|
||||
testCompileOnly(project(":kotlin-reflect-api"))
|
||||
testRuntimeOnly(project(":kotlin-reflect"))
|
||||
testRuntimeOnly(project(":core:descriptors.runtime"))
|
||||
|
||||
testCompileOnly(intellijCoreDep()) { includeJars("intellij-core") }
|
||||
testRuntimeOnly(intellijCoreDep()) { includeJars("intellij-core") }
|
||||
testRuntimeOnly(intellijDep()) {
|
||||
includeJars("jna", rootProject = rootProject)
|
||||
}
|
||||
|
||||
testRuntimeOnly(intellijDep()) { includeJars(
|
||||
"intellij-deps-fastutil-8.4.1-4",
|
||||
"trove4j",
|
||||
"jdom"
|
||||
) }
|
||||
testRuntimeOnly(toolsJar())
|
||||
}
|
||||
|
||||
val generationRoot = projectDir.resolve("tests-gen")
|
||||
|
||||
sourceSets {
|
||||
"main" { projectDefault() }
|
||||
"test" { projectDefault() }
|
||||
"main" {
|
||||
projectDefault()
|
||||
}
|
||||
"test" {
|
||||
projectDefault()
|
||||
this.java.srcDir(generationRoot.name)
|
||||
}
|
||||
}
|
||||
|
||||
projectTest(parallel = true) {
|
||||
if (kotlinBuildProperties.isInJpsBuildIdeaSync) {
|
||||
apply(plugin = "idea")
|
||||
idea {
|
||||
this.module.generatedSourceDirs.add(generationRoot)
|
||||
}
|
||||
}
|
||||
|
||||
projectTest(parallel = true, jUnit5Enabled = true) {
|
||||
workingDir = rootDir
|
||||
jvmArgs!!.removeIf { it.contains("-Xmx") }
|
||||
maxHeapSize = "3g"
|
||||
|
||||
@@ -3,6 +3,9 @@ plugins {
|
||||
id("jps-compatible")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
api(kotlinStdlib())
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
"main" { projectDefault() }
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ FILE: functionForProperty.kt
|
||||
|
||||
}
|
||||
public final fun test_1(a: R|A|): R|kotlin/Unit| {
|
||||
R|<local>/a|.R|/A.helloX|()
|
||||
R|<local>/a|.<Unresolved name: helloX>#()
|
||||
}
|
||||
public final fun test_2(b: R|B|): R|kotlin/Unit| {
|
||||
R|<local>/b|.<Unresolved name: helloX>#()
|
||||
@@ -0,0 +1,37 @@
|
||||
FILE: nestedClass.kt
|
||||
public final fun <T> R|T|.also(block: R|(T) -> kotlin/Unit|): R|T| {
|
||||
^also this@R|/also|
|
||||
}
|
||||
@R|org/jetbrains/kotlin/fir/plugin/WithNestedFoo|() public final class A : R|kotlin/Any| {
|
||||
public constructor(): R|A| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
private final fun test(): R|A.Foo| {
|
||||
^test <Resolution to classifier>#().<None of the following candidates is applicable because of receiver type mismatch: [/also]>#<R|A.Foo|>(<L> = also@fun <anonymous>(it: R|A.Foo|): R|kotlin/Unit| <inline=Unknown> {
|
||||
R|<local>/it|.<Unresolved name: hello>#()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
private final inner class Foo {
|
||||
public constructor(): R|A.Foo|
|
||||
|
||||
public final fun hello(): R|kotlin/Int|
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public final class B : R|kotlin/Any| {
|
||||
public constructor(): R|B| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
private final fun test(): <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
^test <Unresolved name: Foo>#().<None of the following candidates is applicable because of receiver type mismatch: [/also]>#<R|ERROR CLASS: Cannot infer argument for type parameter T|>(<L> = also@fun <anonymous>(it: <ERROR TYPE REF: Cannot infer argument for type parameter T>): R|kotlin/Unit| <inline=Unknown> {
|
||||
R|<local>/it|.<Unresolved name: hello>#()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
FILE: nestedClass.kt
|
||||
public final fun <T> R|T|.also(block: R|(T) -> kotlin/Unit|): R|T| {
|
||||
^also this@R|/also|
|
||||
}
|
||||
@R|org/jetbrains/kotlin/fir/plugin/WithNestedFoo|() public final class A : R|kotlin/Any| {
|
||||
public constructor(): R|A| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
private final fun test(): R|A.Foo| {
|
||||
^test R|/A.Foo.Foo|().R|/also|<R|A.Foo|>(<L> = also@fun <anonymous>(it: R|A.Foo|): R|kotlin/Unit| {
|
||||
^ R|<local>/it|.R|/A.Foo.hello|()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
private final inner class Foo {
|
||||
public constructor(): R|A.Foo|
|
||||
|
||||
public final fun hello(): R|kotlin/Int|
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public final class B : R|kotlin/Any| {
|
||||
public constructor(): R|B| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
private final fun test(): R|ERROR CLASS: Symbol not found, for `Foo`| {
|
||||
^test <Unresolved name: Foo>#().<Inapplicable(WRONG_RECEIVER): [/also]>#(<L> = also@fun <anonymous>(): R|ERROR CLASS: Unresolved name: hello| {
|
||||
^ <Unresolved name: it>#.<Unresolved name: hello>#()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
+1
-1
@@ -15,5 +15,5 @@ FILE: recursiveNestedClasses.kt
|
||||
}
|
||||
public final fun test_2(x: R|SomeClass.Nested.Nested|): R|kotlin/Unit| {
|
||||
}
|
||||
public final fun test_3(x: R|ERROR CLASS: Symbol not found, for `SomeClass.Nested.Nested.Nested`|): R|kotlin/Unit| {
|
||||
public final fun test_3(x: <ERROR TYPE REF: Symbol not found for SomeClass.Nested.Nested.Nested>): R|kotlin/Unit| {
|
||||
}
|
||||
+1
-1
@@ -6,7 +6,7 @@ FILE: topLevelClass.kt
|
||||
|
||||
}
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
Q|TopLevelSomeClass|.R|/TopLevelSomeClass.hello|()
|
||||
Q|TopLevelSomeClass|.<Unresolved name: hello>#()
|
||||
}
|
||||
public final object TopLevelSomeClass {
|
||||
public final fun hello(): R|kotlin/Int|
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
FILE: visibilityTransformation.kt
|
||||
@R|org/jetbrains/kotlin/fir/plugin/AllPublic|(visibility = Q|org/jetbrains/kotlin/fir/plugin/Visibility|.R|org/jetbrains/kotlin/fir/plugin/Visibility.Protected|) public final class A : R|kotlin/Any| {
|
||||
public constructor(): R|A| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val x: R|kotlin/String| = String()
|
||||
public get(): R|kotlin/String|
|
||||
|
||||
public final fun foo(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
public final class Nested : R|kotlin/Any| {
|
||||
public constructor(): R|A.Nested| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final fun bar(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@R|org/jetbrains/kotlin/fir/plugin/AllPublic|(visibility = Q|org/jetbrains/kotlin/fir/plugin/Visibility|.R|org/jetbrains/kotlin/fir/plugin/Visibility.Private|) public final class B : R|kotlin/Any| {
|
||||
public constructor(): R|B| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val x: R|kotlin/String| = String()
|
||||
public get(): R|kotlin/String|
|
||||
|
||||
public final fun foo(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
public final class Nested : R|kotlin/Any| {
|
||||
public constructor(): R|B.Nested| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final fun bar(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
-45
@@ -1,45 +0,0 @@
|
||||
FILE: visibilityTransformation.kt
|
||||
@R|org/jetbrains/kotlin/fir/plugin/AllPublic|(Q|org/jetbrains/kotlin/fir/plugin/Visibility|.R|org/jetbrains/kotlin/fir/plugin/Visibility.Protected|) protected final class A : R|kotlin/Any| {
|
||||
protected constructor(): R|A| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
protected final val x: R|kotlin/String|
|
||||
public get(): R|kotlin/String|
|
||||
|
||||
protected final fun foo(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
protected final class Nested : R|kotlin/Any| {
|
||||
protected constructor(): R|A.Nested| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
protected final fun bar(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@R|org/jetbrains/kotlin/fir/plugin/AllPublic|(Q|org/jetbrains/kotlin/fir/plugin/Visibility|.R|org/jetbrains/kotlin/fir/plugin/Visibility.Private|) private final class B : R|kotlin/Any| {
|
||||
private constructor(): R|B| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
private final val x: R|kotlin/String|
|
||||
public get(): R|kotlin/String|
|
||||
|
||||
private final fun foo(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
private final class Nested : R|kotlin/Any| {
|
||||
private constructor(): R|B.Nested| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
private final fun bar(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+3
-3
@@ -4,15 +4,15 @@ FILE: simple.kt
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final class MyNested : R|org/jetbrains/kotlin/fir/plugin/LibraryClassWithNestedClass.NestedClass| {
|
||||
public final class MyNested : <ERROR TYPE REF: Symbol not found for NestedClass> {
|
||||
public constructor(): R|A.MyNested| {
|
||||
super<R|ERROR CLASS: Symbol not found, for `NestedClass`|>()
|
||||
super<<ERROR TYPE REF: Symbol not found for NestedClass>>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
R|/A.MyNested.MyNested|().R|org/jetbrains/kotlin/fir/plugin/LibraryClassWithNestedClass.NestedClass.foo|()
|
||||
R|/A.MyNested.MyNested|().<Unresolved name: foo>#()
|
||||
}
|
||||
|
||||
}
|
||||
+25
-33
@@ -6,120 +6,112 @@
|
||||
package org.jetbrains.kotlin.fir.plugin;
|
||||
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||
import org.jetbrains.kotlin.test.TestMetadata;
|
||||
import org.junit.runner.RunWith;
|
||||
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.TestsPackage}. DO NOT MODIFY MANUALLY */
|
||||
/** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */
|
||||
@SuppressWarnings("all")
|
||||
@TestMetadata("plugins/fir/fir-plugin-prototype/testData")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public class FirAllOpenDiagnosticTestGenerated extends AbstractFirAllOpenDiagnosticTest {
|
||||
private void runTest(String testDataFilePath) throws Exception {
|
||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAllFilesPresentInTestData() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/fir/fir-plugin-prototype/testData"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("plugins/fir/fir-plugin-prototype/testData/checkers")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public static class Checkers extends AbstractFirAllOpenDiagnosticTest {
|
||||
private void runTest(String testDataFilePath) throws Exception {
|
||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||
}
|
||||
|
||||
public class Checkers {
|
||||
@Test
|
||||
public void testAllFilesPresentInCheckers() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/fir/fir-plugin-prototype/testData/checkers"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("simple.kt")
|
||||
public void testSimple() throws Exception {
|
||||
runTest("plugins/fir/fir-plugin-prototype/testData/checkers/simple.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("plugins/fir/fir-plugin-prototype/testData/memberGen")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public static class MemberGen extends AbstractFirAllOpenDiagnosticTest {
|
||||
private void runTest(String testDataFilePath) throws Exception {
|
||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||
}
|
||||
|
||||
public class MemberGen {
|
||||
@Test
|
||||
public void testAllFilesPresentInMemberGen() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/fir/fir-plugin-prototype/testData/memberGen"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("functionForProperty.kt")
|
||||
public void testFunctionForProperty() throws Exception {
|
||||
runTest("plugins/fir/fir-plugin-prototype/testData/memberGen/functionForProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nestedClass.kt")
|
||||
public void testNestedClass() throws Exception {
|
||||
runTest("plugins/fir/fir-plugin-prototype/testData/memberGen/nestedClass.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("recursiveNestedClasses.kt")
|
||||
public void testRecursiveNestedClasses() throws Exception {
|
||||
runTest("plugins/fir/fir-plugin-prototype/testData/memberGen/recursiveNestedClasses.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("topLevelClass.kt")
|
||||
public void testTopLevelClass() throws Exception {
|
||||
runTest("plugins/fir/fir-plugin-prototype/testData/memberGen/topLevelClass.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("plugins/fir/fir-plugin-prototype/testData/status")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public static class Status extends AbstractFirAllOpenDiagnosticTest {
|
||||
private void runTest(String testDataFilePath) throws Exception {
|
||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||
}
|
||||
|
||||
public class Status {
|
||||
@Test
|
||||
public void testAllFilesPresentInStatus() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/fir/fir-plugin-prototype/testData/status"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("metaAnnotation.kt")
|
||||
public void testMetaAnnotation() throws Exception {
|
||||
runTest("plugins/fir/fir-plugin-prototype/testData/status/metaAnnotation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("simpleAnnotation.kt")
|
||||
public void testSimpleAnnotation() throws Exception {
|
||||
runTest("plugins/fir/fir-plugin-prototype/testData/status/simpleAnnotation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("visibilityTransformation.kt")
|
||||
public void testVisibilityTransformation() throws Exception {
|
||||
runTest("plugins/fir/fir-plugin-prototype/testData/status/visibilityTransformation.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("plugins/fir/fir-plugin-prototype/testData/supertypes")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public static class Supertypes extends AbstractFirAllOpenDiagnosticTest {
|
||||
private void runTest(String testDataFilePath) throws Exception {
|
||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||
}
|
||||
|
||||
public class Supertypes {
|
||||
@Test
|
||||
public void testAllFilesPresentInSupertypes() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/fir/fir-plugin-prototype/testData/supertypes"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("simple.kt")
|
||||
public void testSimple() throws Exception {
|
||||
runTest("plugins/fir/fir-plugin-prototype/testData/supertypes/simple.kt");
|
||||
+36
-13
@@ -7,24 +7,47 @@ package org.jetbrains.kotlin.fir.plugin
|
||||
|
||||
import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoot
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.fir.AbstractFirDiagnosticsTest
|
||||
import org.jetbrains.kotlin.fir.extensions.BunchOfRegisteredExtensions
|
||||
import org.jetbrains.kotlin.test.Constructor
|
||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.ENABLE_PLUGIN_PHASES
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.FIR_DUMP
|
||||
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerTest
|
||||
import org.jetbrains.kotlin.test.runners.baseFirDiagnosticTestConfiguration
|
||||
import org.jetbrains.kotlin.test.services.EnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.test.services.assertions
|
||||
import java.io.File
|
||||
|
||||
abstract class AbstractFirAllOpenDiagnosticTest : AbstractFirDiagnosticsTest() {
|
||||
override val pluginPhasesEnabled: Boolean
|
||||
get() = true
|
||||
abstract class AbstractFirAllOpenDiagnosticTest : AbstractKotlinCompilerTest() {
|
||||
override fun TestConfigurationBuilder.configuration() {
|
||||
baseFirDiagnosticTestConfiguration(frontendFacade = facade)
|
||||
defaultDirectives {
|
||||
+ENABLE_PLUGIN_PHASES
|
||||
+FIR_DUMP
|
||||
}
|
||||
|
||||
override fun getFirExtensions(): BunchOfRegisteredExtensions {
|
||||
return FirAllOpenComponentRegistrar().configure()
|
||||
useConfigurators(::PluginAnnotationsProvider)
|
||||
}
|
||||
|
||||
override fun updateConfiguration(configuration: CompilerConfiguration) {
|
||||
super.updateConfiguration(configuration)
|
||||
val jar = File("plugins/fir/fir-plugin-prototype/plugin-annotations/build/libs/plugin-annotations-1.5.255-SNAPSHOT.jar")
|
||||
if (!jar.exists()) {
|
||||
throw AssertionError("Jar with annotations does not exist. Please run :plugins:fir:fir-plugin-prototype:plugin-annotations:jar")
|
||||
private val facade: Constructor<FirFrontendFacade>
|
||||
get() = { testServices ->
|
||||
FirFrontendFacade(testServices) {
|
||||
it.registerExtensions(FirAllOpenComponentRegistrar().configure())
|
||||
}
|
||||
}
|
||||
|
||||
class PluginAnnotationsProvider(testServices: TestServices) : EnvironmentConfigurator(testServices) {
|
||||
companion object {
|
||||
const val ANNOTATIONS_JAR =
|
||||
"plugins/fir/fir-plugin-prototype/plugin-annotations/build/libs/plugin-annotations-1.6.255-SNAPSHOT.jar"
|
||||
}
|
||||
|
||||
override fun configureCompilerConfiguration(configuration: CompilerConfiguration, module: TestModule) {
|
||||
val jar = File(ANNOTATIONS_JAR)
|
||||
testServices.assertions.assertTrue(jar.exists()) { "Jar with annotations does not exist. Please run :plugins:fir:fir-plugin-prototype:plugin-annotations:jar" }
|
||||
configuration.addJvmClasspathRoot(jar)
|
||||
}
|
||||
configuration.addJvmClasspathRoot(jar)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user