From df393e18feed97c63ad88396bee2a41986d8b4d6 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 27 Jun 2017 16:44:02 +0300 Subject: [PATCH] Configure AbstractInspectionTest with project descriptors Previous implements produced flaky tests when non-js tests were executed after js. --- .../kotlin/idea/test/ConfigLibraryUtil.java | 8 ++--- .../{js => }/inspectionData/expected.xml | 0 .../{js => }/inspectionData/inspections.test | 1 + .../inspections/dynamic/{js => }/test.kt | 0 .../inspectionData/inspections.test | 1 + .../class/inspectionData/inspections.test | 1 + .../object/inspectionData/inspections.test | 1 + .../inspectionData/inspections.test | 1 + .../inspectionData/inspections.test | 1 + .../inspectionData/inspections.test | 1 + .../inspectionData/inspections.test | 1 + .../inspectionData/inspections.test | 1 + .../codeInsight/AbstractInspectionTest.kt | 29 ------------------- .../codeInsight/InspectionTestGenerated.java | 6 ++-- .../inspectionData/inspections.test | 3 +- 15 files changed, 16 insertions(+), 39 deletions(-) rename idea/testData/inspections/dynamic/{js => }/inspectionData/expected.xml (100%) rename idea/testData/inspections/dynamic/{js => }/inspectionData/inspections.test (94%) rename idea/testData/inspections/dynamic/{js => }/test.kt (100%) diff --git a/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/ConfigLibraryUtil.java b/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/ConfigLibraryUtil.java index d72e11bc2c8..3d2c5937b48 100644 --- a/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/ConfigLibraryUtil.java +++ b/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/ConfigLibraryUtil.java @@ -62,7 +62,8 @@ public class ConfigLibraryUtil { public static void configureKotlinJsRuntimeAndSdk(Module module, Sdk sdk) { configureSdk(module, sdk); - configureKotlinJsRuntime(module); + addLibrary(getKotlinRuntimeLibEditor(DEFAULT_KOTLIN_JS_STDLIB_NAME, + PathUtil.getKotlinPathsForDistDirectory().getJsStdLibJarPath()), module); } public static void configureKotlinRuntime(Module module) { @@ -72,11 +73,6 @@ public class ConfigLibraryUtil { module); } - public static void configureKotlinJsRuntime(Module module) { - addLibrary(getKotlinRuntimeLibEditor(DEFAULT_KOTLIN_JS_STDLIB_NAME, - PathUtil.getKotlinPathsForDistDirectory().getJsStdLibJarPath()), module); - } - public static void unConfigureKotlinRuntime(Module module) { removeLibrary(module, DEFAULT_JAVA_RUNTIME_LIB_NAME); removeLibrary(module, DEFAULT_KOTLIN_TEST_LIB_NAME); diff --git a/idea/testData/inspections/dynamic/js/inspectionData/expected.xml b/idea/testData/inspections/dynamic/inspectionData/expected.xml similarity index 100% rename from idea/testData/inspections/dynamic/js/inspectionData/expected.xml rename to idea/testData/inspections/dynamic/inspectionData/expected.xml diff --git a/idea/testData/inspections/dynamic/js/inspectionData/inspections.test b/idea/testData/inspections/dynamic/inspectionData/inspections.test similarity index 94% rename from idea/testData/inspections/dynamic/js/inspectionData/inspections.test rename to idea/testData/inspections/dynamic/inspectionData/inspections.test index f04022532d2..b6802894710 100644 --- a/idea/testData/inspections/dynamic/js/inspectionData/inspections.test +++ b/idea/testData/inspections/dynamic/inspectionData/inspections.test @@ -1 +1,2 @@ // INSPECTION_CLASS: org.jetbrains.kotlin.idea.inspections.UnsafeCastFromDynamicInspection +// JS \ No newline at end of file diff --git a/idea/testData/inspections/dynamic/js/test.kt b/idea/testData/inspections/dynamic/test.kt similarity index 100% rename from idea/testData/inspections/dynamic/js/test.kt rename to idea/testData/inspections/dynamic/test.kt diff --git a/idea/testData/inspections/unusedImport/inspectionData/inspections.test b/idea/testData/inspections/unusedImport/inspectionData/inspections.test index 2159a0ea1f9..06b8a58c057 100644 --- a/idea/testData/inspections/unusedImport/inspectionData/inspections.test +++ b/idea/testData/inspections/unusedImport/inspectionData/inspections.test @@ -1 +1,2 @@ // INSPECTION_CLASS: org.jetbrains.kotlin.idea.inspections.KotlinUnusedImportInspection +// RUNTIME_WITH_FULL_JDK \ No newline at end of file diff --git a/idea/testData/inspections/unusedSymbol/class/inspectionData/inspections.test b/idea/testData/inspections/unusedSymbol/class/inspectionData/inspections.test index 02aea1c357e..4374402ca8b 100644 --- a/idea/testData/inspections/unusedSymbol/class/inspectionData/inspections.test +++ b/idea/testData/inspections/unusedSymbol/class/inspectionData/inspections.test @@ -1 +1,2 @@ // INSPECTION_CLASS: org.jetbrains.kotlin.idea.inspections.UnusedSymbolInspection +// RUNTIME_WITH_FULL_JDK diff --git a/idea/testData/inspections/unusedSymbol/object/inspectionData/inspections.test b/idea/testData/inspections/unusedSymbol/object/inspectionData/inspections.test index 02aea1c357e..870169db2ee 100644 --- a/idea/testData/inspections/unusedSymbol/object/inspectionData/inspections.test +++ b/idea/testData/inspections/unusedSymbol/object/inspectionData/inspections.test @@ -1 +1,2 @@ // INSPECTION_CLASS: org.jetbrains.kotlin.idea.inspections.UnusedSymbolInspection +// WITH_RUNTIME diff --git a/idea/testData/intentions/branched/ifThenToElvis/inspectionData/inspections.test b/idea/testData/intentions/branched/ifThenToElvis/inspectionData/inspections.test index 717942c3f28..316e8697da5 100644 --- a/idea/testData/intentions/branched/ifThenToElvis/inspectionData/inspections.test +++ b/idea/testData/intentions/branched/ifThenToElvis/inspectionData/inspections.test @@ -1 +1,2 @@ // INSPECTION_CLASS: org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.IfThenToElvisInspection +// WITH_RUNTIME diff --git a/idea/testData/intentions/branched/ifThenToSafeAccess/inspectionData/inspections.test b/idea/testData/intentions/branched/ifThenToSafeAccess/inspectionData/inspections.test index ab7a3fbec9a..d4f8867a75a 100644 --- a/idea/testData/intentions/branched/ifThenToSafeAccess/inspectionData/inspections.test +++ b/idea/testData/intentions/branched/ifThenToSafeAccess/inspectionData/inspections.test @@ -1 +1,2 @@ // INSPECTION_CLASS: org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.IfThenToSafeAccessInspection +// WITH_RUNTIME \ No newline at end of file diff --git a/idea/testData/intentions/destructuringInLambda/inspectionData/inspections.test b/idea/testData/intentions/destructuringInLambda/inspectionData/inspections.test index 911aacda32e..e9b13da7f12 100644 --- a/idea/testData/intentions/destructuringInLambda/inspectionData/inspections.test +++ b/idea/testData/intentions/destructuringInLambda/inspectionData/inspections.test @@ -1 +1,2 @@ // INSPECTION_CLASS: org.jetbrains.kotlin.idea.intentions.DestructureInspection +// WITH_RUNTIME diff --git a/idea/testData/intentions/iterationOverMap/inspectionData/inspections.test b/idea/testData/intentions/iterationOverMap/inspectionData/inspections.test index 911aacda32e..e9b13da7f12 100644 --- a/idea/testData/intentions/iterationOverMap/inspectionData/inspections.test +++ b/idea/testData/intentions/iterationOverMap/inspectionData/inspections.test @@ -1 +1,2 @@ // INSPECTION_CLASS: org.jetbrains.kotlin.idea.intentions.DestructureInspection +// WITH_RUNTIME diff --git a/idea/testData/intentions/removeExplicitTypeArguments/inspectionData/inspections.test b/idea/testData/intentions/removeExplicitTypeArguments/inspectionData/inspections.test index 5c06704b32e..e933c84dff2 100644 --- a/idea/testData/intentions/removeExplicitTypeArguments/inspectionData/inspections.test +++ b/idea/testData/intentions/removeExplicitTypeArguments/inspectionData/inspections.test @@ -1 +1,2 @@ // INSPECTION_CLASS: org.jetbrains.kotlin.idea.intentions.RemoveExplicitTypeArgumentsInspection +// WITH_RUNTIME \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractInspectionTest.kt b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractInspectionTest.kt index be56051ed67..0b0beba3405 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractInspectionTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractInspectionTest.kt @@ -35,8 +35,6 @@ abstract class AbstractInspectionTest : KotlinLightCodeInsightFixtureTestCase() val ENTRY_POINT_ANNOTATION = "test.anno.EntryPoint" } - override fun getProjectDescriptor(): LightProjectDescriptor = KotlinLightProjectDescriptor.INSTANCE - override fun setUp() { super.setUp() EntryPointsManagerBase.getInstance(project).ADDITIONAL_ANNOTATIONS.add(ENTRY_POINT_ANNOTATION) @@ -90,27 +88,7 @@ abstract class AbstractInspectionTest : KotlinLightCodeInsightFixtureTestCase() } }.toList() - val isJs = srcDir.endsWith("js") - - val isWithRuntime = psiFiles.any { InTextDirectivesUtils.findStringWithPrefixes(it.text, "// WITH_RUNTIME") != null } - val fullJdk = psiFiles.any { InTextDirectivesUtils.findStringWithPrefixes(it.text, "// FULL_JDK") != null } - - if (isJs) { - assertFalse(isWithRuntime) - assertFalse(fullJdk) - } - try { - if (isJs) { - ConfigLibraryUtil.configureKotlinJsRuntime(myFixture.module) - } - if (isWithRuntime) { - ConfigLibraryUtil.configureKotlinRuntimeAndSdk( - myFixture.module, - if (fullJdk) PluginTestCaseBase.fullJdk() else PluginTestCaseBase.mockJdk() - ) - } - fixtureClasses.forEach { TestFixtureExtension.loadFixture(it, myFixture.module) } configExtra(psiFiles, options) @@ -137,13 +115,6 @@ abstract class AbstractInspectionTest : KotlinLightCodeInsightFixtureTestCase() } finally { fixtureClasses.forEach { TestFixtureExtension.unloadFixture(it) } - - if (isWithRuntime) { - ConfigLibraryUtil.unConfigureKotlinRuntimeAndSdk(myFixture.module, IdeaTestUtil.getMockJdk17()) - } - if (isJs) { - ConfigLibraryUtil.unConfigureKotlinJsRuntimeAndSdk(myFixture.module, IdeaTestUtil.getMockJdk17()) - } } } } diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/InspectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/InspectionTestGenerated.java index 9ae9a9d1e48..1a66544dd51 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/InspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/InspectionTestGenerated.java @@ -191,9 +191,9 @@ public class InspectionTestGenerated extends AbstractInspectionTest { doTest(fileName); } - @TestMetadata("dynamic/js/inspectionData/inspections.test") - public void testDynamic_js_inspectionData_Inspections_test() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspections/dynamic/js/inspectionData/inspections.test"); + @TestMetadata("dynamic/inspectionData/inspections.test") + public void testDynamic_inspectionData_Inspections_test() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspections/dynamic/inspectionData/inspections.test"); doTest(fileName); } diff --git a/ultimate/testData/inspections/spring/autowiring/inspectionData/inspections.test b/ultimate/testData/inspections/spring/autowiring/inspectionData/inspections.test index f046004bc8e..f3e24f5d25c 100644 --- a/ultimate/testData/inspections/spring/autowiring/inspectionData/inspections.test +++ b/ultimate/testData/inspections/spring/autowiring/inspectionData/inspections.test @@ -1,3 +1,4 @@ // INSPECTION_CLASS: org.jetbrains.kotlin.idea.spring.inspections.SpringKotlinAutowiringInspection // FIXTURE_CLASS: org.jetbrains.kotlin.idea.spring.tests.SpringTestFixtureExtension -// CONFIGURE_SPRING_FILE_SET \ No newline at end of file +// CONFIGURE_SPRING_FILE_SET +// RUNTIME_WITH_FULL_JDK \ No newline at end of file