Add kotlin stdlib to psi tests
This commit is contained in:
committed by
Yan Zhulanow
parent
5502d62471
commit
dd05a9b11b
@@ -4,14 +4,18 @@ package com.intellij.debugger.streams.kotlin
|
|||||||
import com.intellij.debugger.streams.test.StreamChainBuilderTestCase
|
import com.intellij.debugger.streams.test.StreamChainBuilderTestCase
|
||||||
import com.intellij.debugger.streams.wrapper.StreamChain
|
import com.intellij.debugger.streams.wrapper.StreamChain
|
||||||
import com.intellij.debugger.streams.wrapper.StreamChainBuilder
|
import com.intellij.debugger.streams.wrapper.StreamChainBuilder
|
||||||
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.projectRoots.Sdk
|
import com.intellij.openapi.projectRoots.Sdk
|
||||||
|
import com.intellij.openapi.roots.impl.libraries.ProjectLibraryTable
|
||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
|
import com.intellij.openapi.vfs.newvfs.impl.VfsRootAccess
|
||||||
import com.intellij.psi.PsiManager
|
import com.intellij.psi.PsiManager
|
||||||
import com.intellij.psi.impl.PsiManagerEx
|
import com.intellij.psi.impl.PsiManagerEx
|
||||||
import com.intellij.psi.impl.file.impl.FileManagerImpl
|
import com.intellij.psi.impl.file.impl.FileManagerImpl
|
||||||
import com.intellij.psi.impl.source.PsiFileImpl
|
import com.intellij.psi.impl.source.PsiFileImpl
|
||||||
import com.intellij.testFramework.LightPlatformTestCase
|
import com.intellij.testFramework.LightPlatformTestCase
|
||||||
|
import com.intellij.testFramework.PsiTestUtil
|
||||||
import junit.framework.TestCase
|
import junit.framework.TestCase
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.LibraryModificationTracker
|
import org.jetbrains.kotlin.idea.caches.resolve.LibraryModificationTracker
|
||||||
import org.jetbrains.kotlin.idea.decompiler.KotlinDecompiledFileViewProvider
|
import org.jetbrains.kotlin.idea.decompiler.KotlinDecompiledFileViewProvider
|
||||||
@@ -27,8 +31,8 @@ abstract class KotlinPsiChainBuilderTestCase(private val relativePath: String) :
|
|||||||
override fun getTestDataPath(): String = Paths.get(File("").absolutePath, "/testData/psi/$relativeTestPath/").toString()
|
override fun getTestDataPath(): String = Paths.get(File("").absolutePath, "/testData/psi/$relativeTestPath/").toString()
|
||||||
override fun getFileExtension(): String = ".kt"
|
override fun getFileExtension(): String = ".kt"
|
||||||
abstract val kotlinChainBuilder: StreamChainBuilder
|
abstract val kotlinChainBuilder: StreamChainBuilder
|
||||||
|
|
||||||
override final fun getChainBuilder(): StreamChainBuilder = kotlinChainBuilder
|
override final fun getChainBuilder(): StreamChainBuilder = kotlinChainBuilder
|
||||||
|
private val stdLibName = "kotlin-stdlib"
|
||||||
|
|
||||||
protected abstract fun doTest()
|
protected abstract fun doTest()
|
||||||
|
|
||||||
@@ -40,9 +44,17 @@ abstract class KotlinPsiChainBuilderTestCase(private val relativePath: String) :
|
|||||||
|
|
||||||
override fun setUp() {
|
override fun setUp() {
|
||||||
super.setUp()
|
super.setUp()
|
||||||
|
ApplicationManager.getApplication().runWriteAction {
|
||||||
|
if (ProjectLibraryTable.getInstance(LightPlatformTestCase.getProject()).getLibraryByName(stdLibName) == null) {
|
||||||
|
VfsRootAccess.allowRootAccess(LibraryUtil.LIBRARIES_DIRECTORY)
|
||||||
|
PsiTestUtil.addLibrary(testRootDisposable, LightPlatformTestCase.getModule(), stdLibName,
|
||||||
|
LibraryUtil.LIBRARIES_DIRECTORY, LibraryUtil.KOTLIN_STD_LIBRARY_JAR_NAME)
|
||||||
|
}
|
||||||
|
}
|
||||||
LibraryModificationTracker.getInstance(LightPlatformTestCase.getProject()).incModificationCount()
|
LibraryModificationTracker.getInstance(LightPlatformTestCase.getProject()).incModificationCount()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
override fun getProjectJDK(): Sdk {
|
override fun getProjectJDK(): Sdk {
|
||||||
return JdkManager.mockJdk18
|
return JdkManager.mockJdk18
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,5 +9,5 @@ import java.io.File
|
|||||||
object LibraryUtil {
|
object LibraryUtil {
|
||||||
val LIBRARIES_DIRECTORY: String = File("lib").absolutePath
|
val LIBRARIES_DIRECTORY: String = File("lib").absolutePath
|
||||||
|
|
||||||
val KOTLIN_STD_LIBRARY = "kotlin-stdlib.jar"
|
val KOTLIN_STD_LIBRARY_JAR_NAME = "kotlin-stdlib.jar"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user