[AA] Fix compilation facility "multi binary module" test module structure

- The module structure for these tests was set up backwards: We should
  keep the test module kind of the main module flexible (as it is
  configured by test configurators), but keep the module kinds of the
  binary libraries fixed.

^KT-65960
^KT-64994
This commit is contained in:
Marco Pennekamp
2024-02-26 16:37:39 +01:00
committed by Space Team
parent 4ea3de1760
commit b5eccd63b1
17 changed files with 43 additions and 95 deletions
@@ -1,60 +0,0 @@
/*
* Copyright 2010-2024 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.api.fir.test.cases.generated.cases.components.compilerFacility;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.util.KtTestUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.analysis.api.fir.test.configurators.AnalysisApiFirTestConfiguratorFactory;
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfiguratorFactoryData;
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator;
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind;
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind;
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode;
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode;
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.compilerFacility.AbstractMultiModuleCompilerFacilityTest;
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/analysis-api/testData/components/compilerFacility/compilationMultiBinaryModule")
@TestDataPath("$PROJECT_ROOT")
public class FirIdeNormalAnalysisLibraryBinaryModuleMultiModuleCompilerFacilityTestGenerated extends AbstractMultiModuleCompilerFacilityTest {
@NotNull
@Override
public AnalysisApiTestConfigurator getConfigurator() {
return AnalysisApiFirTestConfiguratorFactory.INSTANCE.createConfigurator(
new AnalysisApiTestConfiguratorFactoryData(
FrontendKind.Fir,
TestModuleKind.LibraryBinary,
AnalysisSessionMode.Normal,
AnalysisApiMode.Ide
)
);
}
@Test
public void testAllFilesPresentInCompilationMultiBinaryModule() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilationMultiBinaryModule"), Pattern.compile("^(.+)\\.(kt)$"), null, true);
}
@Test
@TestMetadata("dependencyBetweenBinaryLibraries.kt")
public void testDependencyBetweenBinaryLibraries() {
runTest("analysis/analysis-api/testData/components/compilerFacility/compilationMultiBinaryModule/dependencyBetweenBinaryLibraries.kt");
}
@Test
@TestMetadata("javaAnnotationWithVararg.kt")
public void testJavaAnnotationWithVararg() {
runTest("analysis/analysis-api/testData/components/compilerFacility/compilationMultiBinaryModule/javaAnnotationWithVararg.kt");
}
}
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModul
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind;
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode;
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode;
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.compilerFacility.AbstractFirPluginPrototypeMultiBinaryModuleCompilerFacilityTest;
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.compilerFacility.AbstractFirPluginPrototypeMultiModuleCompilerFacilityTest;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
@@ -25,16 +25,16 @@ 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/analysis-api/testData/components/compilerFacility/firPluginPrototypeMultiBinaryModule")
@TestMetadata("analysis/analysis-api/testData/components/compilerFacility/firPluginPrototypeMultiModule")
@TestDataPath("$PROJECT_ROOT")
public class FirIdeNormalAnalysisLibraryBinaryModuleFirPluginPrototypeMultiBinaryModuleCompilerFacilityTestGenerated extends AbstractFirPluginPrototypeMultiBinaryModuleCompilerFacilityTest {
public class FirIdeNormalAnalysisSourceModuleFirPluginPrototypeMultiModuleCompilerFacilityTestGenerated extends AbstractFirPluginPrototypeMultiModuleCompilerFacilityTest {
@NotNull
@Override
public AnalysisApiTestConfigurator getConfigurator() {
return AnalysisApiFirTestConfiguratorFactory.INSTANCE.createConfigurator(
new AnalysisApiTestConfiguratorFactoryData(
FrontendKind.Fir,
TestModuleKind.LibraryBinary,
TestModuleKind.Source,
AnalysisSessionMode.Normal,
AnalysisApiMode.Ide
)
@@ -42,19 +42,19 @@ public class FirIdeNormalAnalysisLibraryBinaryModuleFirPluginPrototypeMultiBinar
}
@Test
public void testAllFilesPresentInFirPluginPrototypeMultiBinaryModule() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/firPluginPrototypeMultiBinaryModule"), Pattern.compile("^(.+)\\.(kt)$"), null, true);
public void testAllFilesPresentInFirPluginPrototypeMultiModule() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/firPluginPrototypeMultiModule"), Pattern.compile("^(.+)\\.(kt)$"), null, true);
}
@Test
@TestMetadata("composableFunctionMultiModules.kt")
public void testComposableFunctionMultiModules() {
runTest("analysis/analysis-api/testData/components/compilerFacility/firPluginPrototypeMultiBinaryModule/composableFunctionMultiModules.kt");
runTest("analysis/analysis-api/testData/components/compilerFacility/firPluginPrototypeMultiModule/composableFunctionMultiModules.kt");
}
@Test
@TestMetadata("composableFunctionMultiModules2.kt")
public void testComposableFunctionMultiModules2() {
runTest("analysis/analysis-api/testData/components/compilerFacility/firPluginPrototypeMultiBinaryModule/composableFunctionMultiModules2.kt");
runTest("analysis/analysis-api/testData/components/compilerFacility/firPluginPrototypeMultiModule/composableFunctionMultiModules2.kt");
}
}
@@ -58,12 +58,24 @@ public class FirIdeNormalAnalysisSourceModuleMultiModuleCompilerFacilityTestGene
runTest("analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/defaultParameterValue.kt");
}
@Test
@TestMetadata("dependencyBetweenBinaryLibraries.kt")
public void testDependencyBetweenBinaryLibraries() {
runTest("analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/dependencyBetweenBinaryLibraries.kt");
}
@Test
@TestMetadata("internalUsage.kt")
public void testInternalUsage() {
runTest("analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/internalUsage.kt");
}
@Test
@TestMetadata("javaAnnotationWithVararg.kt")
public void testJavaAnnotationWithVararg() {
runTest("analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/javaAnnotationWithVararg.kt");
}
@Nested
@TestMetadata("analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/codeFragments")
@TestDataPath("$PROJECT_ROOT")
@@ -48,7 +48,7 @@ import kotlin.test.assertFalse
abstract class AbstractMultiModuleCompilerFacilityTest : AbstractCompilerFacilityTest()
abstract class AbstractFirPluginPrototypeMultiBinaryModuleCompilerFacilityTest : AbstractCompilerFacilityTest() {
abstract class AbstractFirPluginPrototypeMultiModuleCompilerFacilityTest : AbstractCompilerFacilityTest() {
override fun extraCustomRuntimeClasspathProviders(): Array<Constructor<RuntimeClasspathProvider>> =
arrayOf(::PluginRuntimeAnnotationsProvider)
}
@@ -1,16 +1,19 @@
// MODULE: lib
// MODULE_KIND: LibraryBinary
// FILE: p3/foo.kt
package p3;
package p3
fun foo() = 3
// MODULE: lib2(lib)
// MODULE_KIND: LibraryBinary
// FILE: p2/bar.kt
package p2;
package p2
fun bar() = 4 + p3.foo()
// MODULE: main(lib, lib2)
// MODULE_KIND: Source
// FILE: main.kt
import p2.bar
fun test() = bar()
fun test() = bar()
@@ -1,4 +1,5 @@
// MODULE: lib
// MODULE_KIND: LibraryBinary
// FILE: p3/Anno.java
package p3;
@@ -13,7 +14,9 @@ import static java.lang.annotation.ElementType.*;
public @interface Anno {
String[] value();
}
// MODULE: lib2(lib)
// MODULE_KIND: LibraryBinary
// FILE: p2/Parent.java
package p2;
@@ -27,8 +30,8 @@ public class Parent {
public void setContentView(@Anno({"UnknownNullness", "MissingNullability"}) int id) {
}
}
// MODULE: main(lib, lib2)
// MODULE_KIND: Source
// FILE: main.kt
import p2.Parent
@@ -39,4 +42,4 @@ class Child: Parent() {
}
private fun bar() {}
}
}
@@ -3,4 +3,4 @@ public final class Child {
public method <init>(): void
private final method bar(): void
protected method onCreate(): void
}
}
@@ -2,9 +2,9 @@
// DUMP_IR
// MODULE: lib
// MODULE_KIND: LibraryBinary
// FILE: p3/foo.kt
package p3;
package p3
import org.jetbrains.kotlin.fir.plugin.MyComposable
@@ -14,9 +14,7 @@ public fun Foo(
) {}
// MODULE: main(lib)
// MODULE_KIND: Source
// FILE: main.kt
import org.jetbrains.kotlin.fir.plugin.MyComposable
import p3.Foo
@@ -25,4 +23,4 @@ public fun Bar() {
Foo(
text = {}, // @Composable invocations can only happen from the context of a @Composable function
)
}
}
@@ -2,9 +2,9 @@
// DUMP_IR
// MODULE: lib
// MODULE_KIND: LibraryBinary
// FILE: p3/foo.kt
package p3;
package p3
import org.jetbrains.kotlin.fir.plugin.MyComposable
@@ -14,9 +14,7 @@ fun setContent(content: @MyComposable () -> Unit): Int {
}
// MODULE: main(lib)
// MODULE_KIND: Source
// FILE: main.kt
import org.jetbrains.kotlin.fir.plugin.MyComposable
import p3.setContent
@@ -31,4 +29,4 @@ fun Greeting(name: String) {
show("hi $name!")
}
fun show(str: String) {}
fun show(str: String) {}
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.callRes
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.callResolver.AbstractResolveCandidatesTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.compileTimeConstantProvider.AbstractCompileTimeConstantEvaluatorTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.compilerFacility.AbstractCompilerFacilityTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.compilerFacility.AbstractFirPluginPrototypeMultiBinaryModuleCompilerFacilityTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.compilerFacility.AbstractFirPluginPrototypeMultiModuleCompilerFacilityTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.compilerFacility.AbstractMultiModuleCompilerFacilityTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.containingDeclarationProvider.AbstractContainingDeclarationProviderByDelegatedMemberScopeTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.containingDeclarationProvider.AbstractContainingDeclarationProviderByMemberScopeTest
@@ -114,14 +114,8 @@ internal fun AnalysisApiTestGroup.generateAnalysisApiTests() {
model("compilationMultiModule", pattern = TestGeneratorUtil.KT)
}
test(AbstractMultiModuleCompilerFacilityTest::class, filter = testModuleKindIs(TestModuleKind.LibraryBinary)) {
model("compilationMultiBinaryModule", pattern = TestGeneratorUtil.KT)
}
test(
AbstractFirPluginPrototypeMultiBinaryModuleCompilerFacilityTest::class, filter = testModuleKindIs(TestModuleKind.LibraryBinary)
) {
model("firPluginPrototypeMultiBinaryModule", pattern = TestGeneratorUtil.KT)
test(AbstractFirPluginPrototypeMultiModuleCompilerFacilityTest::class, filter = testModuleKindIs(TestModuleKind.Source)) {
model("firPluginPrototypeMultiModule", pattern = TestGeneratorUtil.KT)
}
}