[IR JS BE] Add core.kt to list of compiling files for JS IR BE tests

This commit is contained in:
Zalim Bashorov
2018-04-23 22:56:53 +03:00
parent 9c25b21510
commit 8d89a93c44
2 changed files with 19 additions and 7 deletions
@@ -542,7 +542,7 @@ abstract class BasicBoxTest(
})
}
private fun createPsiFile(fileName: String): KtFile {
protected fun createPsiFile(fileName: String): KtFile {
val psiManager = PsiManager.getInstance(project)
val fileSystem = VirtualFileManager.getInstance().getFileSystem(StandardFileSystems.FILE_PROTOCOL)
@@ -43,15 +43,27 @@ abstract class BasicIrBoxTest(
testPackage: String?,
testFunction: String
) {
val runtime = listOf(
"libraries/stdlib/js/src/kotlin/core.kt"
).map { createPsiFile(it) }
val filesToIgnore = listOf(
// TODO: temporary ignore some files from _commonFiles directory since they can't be compiled correctly by JS IR BE yet.
// Also, some declarations depends on stdlib but we don't have any library support in JS IR BE yet
// and probably it will be better to avoid using stdlib in testData as much as possible.
"js/js.translator/testData/_commonFiles/arrayAsserts.kt",
"js/js.translator/testData/_commonFiles/fail.kt"
)
val filesToCompile = units
.map { (it as TranslationUnit.SourceFile).file }
.filter { file -> filesToIgnore.none { file.virtualFilePath.endsWith(it) } }
val code = compile(
config.project,
units.map { (it as TranslationUnit.SourceFile).file }
// TODO: temporary ignore _commonFiles/asserts.kt since it depends on stdlib but we don't have any library support in JS IR BE yet
// and probably it will be better to avoid using stdlib in testData as much as possible.
.filter { !it.virtualFilePath.endsWith("js/js.translator/testData/_commonFiles/arrayAsserts.kt") }
.filter { !it.virtualFilePath.endsWith("js/js.translator/testData/_commonFiles/fail.kt") },
runtime + filesToCompile,
config.configuration,
FqName((testPackage?.let { it + "." } ?: "") + testFunction))
FqName((testPackage?.let { "$it." } ?: "") + testFunction))
outputFile.parentFile.mkdirs()
outputFile.writeText(code)