From 722687acd6515e64c5d28c5f887f85a36d3bb736 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Thu, 13 Apr 2017 16:29:09 +0300 Subject: [PATCH] Refactor multiplatform test cases in MultiModuleHighlightingTest Groupt multiplatform test cases in a nested class, get rid of duplicated code, rename "header" -> "common" where it relates to the common module --- .../basic/common/common.kt} | 0 .../basic}/jvm/jvm.kt | 0 .../headerClass/common/common.kt} | 0 .../headerClass}/jvm/jvm.kt | 0 .../headerFunctionProperty/common/common.kt} | 0 .../headerFunctionProperty}/jvm/jvm.kt | 0 .../common/common.kt} | 0 .../headerPartiallyImplemented}/jvm/jvm.kt | 0 .../common/common.kt} | 0 .../headerWithoutImplForBoth}/js/dummy.kt | 0 .../headerWithoutImplForBoth}/jvm/dummy.kt | 0 .../common/common.kt} | 0 .../suppressHeaderWithoutImpl}/jvm/dummy.kt | 0 .../resolve/MultiModuleHighlightingTest.kt | 102 +++++++----------- 14 files changed, 36 insertions(+), 66 deletions(-) rename idea/testData/multiModuleHighlighting/{platformBasic/header/header.kt => multiplatform/basic/common/common.kt} (100%) rename idea/testData/multiModuleHighlighting/{platformBasic => multiplatform/basic}/jvm/jvm.kt (100%) rename idea/testData/multiModuleHighlighting/{platformClass/header/header.kt => multiplatform/headerClass/common/common.kt} (100%) rename idea/testData/multiModuleHighlighting/{platformClass => multiplatform/headerClass}/jvm/jvm.kt (100%) rename idea/testData/multiModuleHighlighting/{platformFunctionProperty/header/header.kt => multiplatform/headerFunctionProperty/common/common.kt} (100%) rename idea/testData/multiModuleHighlighting/{platformFunctionProperty => multiplatform/headerFunctionProperty}/jvm/jvm.kt (100%) rename idea/testData/multiModuleHighlighting/{platformPartiallyImplemented/header/header.kt => multiplatform/headerPartiallyImplemented/common/common.kt} (100%) rename idea/testData/multiModuleHighlighting/{platformPartiallyImplemented => multiplatform/headerPartiallyImplemented}/jvm/jvm.kt (100%) rename idea/testData/multiModuleHighlighting/{platformNotImplementedForBoth/header/header.kt => multiplatform/headerWithoutImplForBoth/common/common.kt} (100%) rename idea/testData/multiModuleHighlighting/{platformNotImplementedForBoth => multiplatform/headerWithoutImplForBoth}/js/dummy.kt (100%) rename idea/testData/multiModuleHighlighting/{platformNotImplementedForBoth => multiplatform/headerWithoutImplForBoth}/jvm/dummy.kt (100%) rename idea/testData/multiModuleHighlighting/{platformSuppress/header/header.kt => multiplatform/suppressHeaderWithoutImpl/common/common.kt} (100%) rename idea/testData/multiModuleHighlighting/{platformSuppress => multiplatform/suppressHeaderWithoutImpl}/jvm/dummy.kt (100%) diff --git a/idea/testData/multiModuleHighlighting/platformBasic/header/header.kt b/idea/testData/multiModuleHighlighting/multiplatform/basic/common/common.kt similarity index 100% rename from idea/testData/multiModuleHighlighting/platformBasic/header/header.kt rename to idea/testData/multiModuleHighlighting/multiplatform/basic/common/common.kt diff --git a/idea/testData/multiModuleHighlighting/platformBasic/jvm/jvm.kt b/idea/testData/multiModuleHighlighting/multiplatform/basic/jvm/jvm.kt similarity index 100% rename from idea/testData/multiModuleHighlighting/platformBasic/jvm/jvm.kt rename to idea/testData/multiModuleHighlighting/multiplatform/basic/jvm/jvm.kt diff --git a/idea/testData/multiModuleHighlighting/platformClass/header/header.kt b/idea/testData/multiModuleHighlighting/multiplatform/headerClass/common/common.kt similarity index 100% rename from idea/testData/multiModuleHighlighting/platformClass/header/header.kt rename to idea/testData/multiModuleHighlighting/multiplatform/headerClass/common/common.kt diff --git a/idea/testData/multiModuleHighlighting/platformClass/jvm/jvm.kt b/idea/testData/multiModuleHighlighting/multiplatform/headerClass/jvm/jvm.kt similarity index 100% rename from idea/testData/multiModuleHighlighting/platformClass/jvm/jvm.kt rename to idea/testData/multiModuleHighlighting/multiplatform/headerClass/jvm/jvm.kt diff --git a/idea/testData/multiModuleHighlighting/platformFunctionProperty/header/header.kt b/idea/testData/multiModuleHighlighting/multiplatform/headerFunctionProperty/common/common.kt similarity index 100% rename from idea/testData/multiModuleHighlighting/platformFunctionProperty/header/header.kt rename to idea/testData/multiModuleHighlighting/multiplatform/headerFunctionProperty/common/common.kt diff --git a/idea/testData/multiModuleHighlighting/platformFunctionProperty/jvm/jvm.kt b/idea/testData/multiModuleHighlighting/multiplatform/headerFunctionProperty/jvm/jvm.kt similarity index 100% rename from idea/testData/multiModuleHighlighting/platformFunctionProperty/jvm/jvm.kt rename to idea/testData/multiModuleHighlighting/multiplatform/headerFunctionProperty/jvm/jvm.kt diff --git a/idea/testData/multiModuleHighlighting/platformPartiallyImplemented/header/header.kt b/idea/testData/multiModuleHighlighting/multiplatform/headerPartiallyImplemented/common/common.kt similarity index 100% rename from idea/testData/multiModuleHighlighting/platformPartiallyImplemented/header/header.kt rename to idea/testData/multiModuleHighlighting/multiplatform/headerPartiallyImplemented/common/common.kt diff --git a/idea/testData/multiModuleHighlighting/platformPartiallyImplemented/jvm/jvm.kt b/idea/testData/multiModuleHighlighting/multiplatform/headerPartiallyImplemented/jvm/jvm.kt similarity index 100% rename from idea/testData/multiModuleHighlighting/platformPartiallyImplemented/jvm/jvm.kt rename to idea/testData/multiModuleHighlighting/multiplatform/headerPartiallyImplemented/jvm/jvm.kt diff --git a/idea/testData/multiModuleHighlighting/platformNotImplementedForBoth/header/header.kt b/idea/testData/multiModuleHighlighting/multiplatform/headerWithoutImplForBoth/common/common.kt similarity index 100% rename from idea/testData/multiModuleHighlighting/platformNotImplementedForBoth/header/header.kt rename to idea/testData/multiModuleHighlighting/multiplatform/headerWithoutImplForBoth/common/common.kt diff --git a/idea/testData/multiModuleHighlighting/platformNotImplementedForBoth/js/dummy.kt b/idea/testData/multiModuleHighlighting/multiplatform/headerWithoutImplForBoth/js/dummy.kt similarity index 100% rename from idea/testData/multiModuleHighlighting/platformNotImplementedForBoth/js/dummy.kt rename to idea/testData/multiModuleHighlighting/multiplatform/headerWithoutImplForBoth/js/dummy.kt diff --git a/idea/testData/multiModuleHighlighting/platformNotImplementedForBoth/jvm/dummy.kt b/idea/testData/multiModuleHighlighting/multiplatform/headerWithoutImplForBoth/jvm/dummy.kt similarity index 100% rename from idea/testData/multiModuleHighlighting/platformNotImplementedForBoth/jvm/dummy.kt rename to idea/testData/multiModuleHighlighting/multiplatform/headerWithoutImplForBoth/jvm/dummy.kt diff --git a/idea/testData/multiModuleHighlighting/platformSuppress/header/header.kt b/idea/testData/multiModuleHighlighting/multiplatform/suppressHeaderWithoutImpl/common/common.kt similarity index 100% rename from idea/testData/multiModuleHighlighting/platformSuppress/header/header.kt rename to idea/testData/multiModuleHighlighting/multiplatform/suppressHeaderWithoutImpl/common/common.kt diff --git a/idea/testData/multiModuleHighlighting/platformSuppress/jvm/dummy.kt b/idea/testData/multiModuleHighlighting/multiplatform/suppressHeaderWithoutImpl/jvm/dummy.kt similarity index 100% rename from idea/testData/multiModuleHighlighting/platformSuppress/jvm/dummy.kt rename to idea/testData/multiModuleHighlighting/multiplatform/suppressHeaderWithoutImpl/jvm/dummy.kt diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiModuleHighlightingTest.kt b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiModuleHighlightingTest.kt index 6e193529b9b..8ce3691e8e0 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiModuleHighlightingTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiModuleHighlightingTest.kt @@ -61,80 +61,50 @@ class MultiModuleHighlightingTest : AbstractMultiModuleHighlightingTest() { checkHighlightingInAllFiles() } - fun testPlatformBasic() { - val header = module("header") - header.createFacet(TargetPlatformKind.Common) + class MultiPlatform : AbstractMultiModuleHighlightingTest() { + override val testPath get() = super.testPath + "multiplatform/" - val jvm = module("jvm") - jvm.createFacet(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]) - jvm.enableMultiPlatform() - jvm.addDependency(header) + private fun doTest(vararg platforms: TargetPlatformKind<*>) { + val commonModule = module("common") + commonModule.createFacet(TargetPlatformKind.Common) - checkHighlightingInAllFiles() - } + for (platform in platforms) { + val path = when (platform) { + is TargetPlatformKind.Jvm -> "jvm" + is TargetPlatformKind.JavaScript -> "js" + else -> error("Unsupported platform: $platform") + } + val platformModule = module(path) + platformModule.createFacet(platform) + platformModule.enableMultiPlatform() + platformModule.addDependency(commonModule) + } - fun testPlatformClass() { - val header = module("header") - header.createFacet(TargetPlatformKind.Common) + checkHighlightingInAllFiles() + } - val jvm = module("jvm") - jvm.createFacet(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]) - jvm.enableMultiPlatform() - jvm.addDependency(header) + fun testBasic() { + doTest(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]) + } - checkHighlightingInAllFiles() - } + fun testHeaderClass() { + doTest(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]) + } - fun testPlatformNotImplementedForBoth() { - val header = module("header") - header.createFacet(TargetPlatformKind.Common) + fun testHeaderWithoutImplForBoth() { + doTest(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6], TargetPlatformKind.JavaScript) + } - val jvm = module("jvm") - jvm.createFacet(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]) - jvm.enableMultiPlatform() - jvm.addDependency(header) + fun testHeaderPartiallyImplemented() { + doTest(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]) + } - val js = module("js") - js.createFacet(TargetPlatformKind.JavaScript) - js.enableMultiPlatform() - js.addDependency(header) + fun testHeaderFunctionProperty() { + doTest(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]) + } - checkHighlightingInAllFiles() - } - - fun testPlatformPartiallyImplemented() { - val header = module("header") - header.createFacet(TargetPlatformKind.Common) - - val jvm = module("jvm") - jvm.createFacet(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]) - jvm.enableMultiPlatform() - jvm.addDependency(header) - - checkHighlightingInAllFiles() - } - - fun testPlatformFunctionProperty() { - val header = module("header") - header.createFacet(TargetPlatformKind.Common) - - val jvm = module("jvm") - jvm.createFacet(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]) - jvm.enableMultiPlatform() - jvm.addDependency(header) - - checkHighlightingInAllFiles() - } - - fun testPlatformSuppress() { - val header = module("header") - header.createFacet(TargetPlatformKind.Common) - - val jvm = module("jvm") - jvm.createFacet(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]) - jvm.enableMultiPlatform() - jvm.addDependency(header) - - checkHighlightingInAllFiles() + fun testSuppressHeaderWithoutImpl() { + doTest(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]) + } } }