Add few tests on internal visibility in MPP
This commit is contained in:
@@ -0,0 +1 @@
|
||||
internal fun internalFromCommon() { }
|
||||
@@ -0,0 +1,4 @@
|
||||
MODULE common { platform=[JVM, JS, Native]; root=common }
|
||||
MODULE jvm { platform=[JVM]; root=jvm }
|
||||
|
||||
jvm -> common { kind=DEPENDS_ON }
|
||||
@@ -0,0 +1,3 @@
|
||||
fun usage() {
|
||||
internalFromCommon()
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
internal fun internalFromCommon() { }
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
MODULE common { platform=[JVM, JS, Native]; root=common }
|
||||
MODULE jvm { platform=[JVM]; root=jvmMain; testRoot=jvmTest }
|
||||
|
||||
jvm -> common { kind=DEPENDS_ON }
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun usageInTest() {
|
||||
internalFromCommon()
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
MODULE module { platform=[JVM]; root=moduleMain; testRoot=moduleTest }
|
||||
@@ -0,0 +1 @@
|
||||
internal fun internalFromMain() { }
|
||||
@@ -0,0 +1,3 @@
|
||||
fun usage() {
|
||||
internalFromMain()
|
||||
}
|
||||
+22
-7
@@ -5,18 +5,19 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.caches.resolve
|
||||
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.openapi.module.ModuleManager
|
||||
import com.intellij.openapi.vfs.VfsUtilCore
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.psi.PsiManager
|
||||
import com.intellij.util.io.exists
|
||||
import org.jetbrains.kotlin.checkers.BaseDiagnosticsTest
|
||||
import org.jetbrains.kotlin.checkers.utils.CheckerTestUtil
|
||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||
import org.jetbrains.kotlin.idea.multiplatform.setupMppProjectFromTextFile
|
||||
import org.jetbrains.kotlin.idea.project.platform
|
||||
import org.jetbrains.kotlin.idea.resolve.frontendService
|
||||
import org.jetbrains.kotlin.idea.stubs.AbstractMultiModuleTest
|
||||
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
||||
import org.jetbrains.kotlin.idea.test.allKotlinFiles
|
||||
import org.jetbrains.kotlin.idea.util.module
|
||||
import org.jetbrains.kotlin.idea.util.sourceRoots
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
@@ -35,13 +36,23 @@ abstract class AbstractMultiModuleIdeResolveTest : AbstractMultiModuleTest() {
|
||||
// This will implicitly copy all source files to temporary directory, clearing them from diagnostic markup in process
|
||||
setupMppProjectFromTextFile(testRoot)
|
||||
|
||||
for (tempFile in project.allKotlinFiles()) {
|
||||
checkFile(tempFile, tempFile.findCorrespondingFileInTestDir(testRoot))
|
||||
project.allKotlinFiles()
|
||||
|
||||
for (module in ModuleManager.getInstance(project).modules) {
|
||||
for (sourceRoot in module.sourceRoots) {
|
||||
VfsUtilCore.processFilesRecursively(sourceRoot) { file ->
|
||||
if (file.isDirectory) return@processFilesRecursively true
|
||||
|
||||
val tempSourceKtFile = PsiManager.getInstance(project).findFile(file) as KtFile
|
||||
checkFile(tempSourceKtFile, tempSourceKtFile.findCorrespondingFileInTestDir(sourceRoot, testRoot))
|
||||
true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun KtFile.findCorrespondingFileInTestDir(testDir: File): File {
|
||||
val tempRootPath = Paths.get(this.module!!.sourceRoots.single().path)
|
||||
private fun KtFile.findCorrespondingFileInTestDir(containingRoot: VirtualFile, testDir: File): File {
|
||||
val tempRootPath = Paths.get(containingRoot.path)
|
||||
val tempProjectDirPath = tempRootPath.parent
|
||||
val tempSourcePath = Paths.get(this.virtualFilePath)
|
||||
|
||||
@@ -92,4 +103,8 @@ abstract class AbstractMultiModuleIdeResolveTest : AbstractMultiModuleTest() {
|
||||
|
||||
abstract class AbstractHierarchicalExpectActualTest : AbstractMultiModuleIdeResolveTest() {
|
||||
override fun getTestDataPath(): String = "${PluginTestCaseBase.getTestDataPathBase()}/hierarchicalExpectActual"
|
||||
}
|
||||
|
||||
abstract class AbstractMultiplatformAnalysisTest : AbstractMultiModuleIdeResolveTest() {
|
||||
override fun getTestDataPath(): String = "${PluginTestCaseBase.getTestDataPathBase()}/multiplatform"
|
||||
}
|
||||
Generated
+2
-1
@@ -61,7 +61,8 @@ public class MultiplatformAnalysisTestGenerated extends AbstractMultiplatformAna
|
||||
}
|
||||
|
||||
public void testAllFilesPresentInMultiplatformTypeRefinement() throws Exception {
|
||||
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/multiplatformTypeRefinement"), Pattern.compile("^([^\\.]+)$"), TargetBackend.ANY, false);
|
||||
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/multiplatformTypeRefinement"),
|
||||
Pattern.compile("^([^\\.]+)$"), TargetBackend.ANY, false);
|
||||
}
|
||||
|
||||
@TestMetadata("callableReferences")
|
||||
|
||||
Reference in New Issue
Block a user