From 8d89a93c44c6fd69e510a83a43aed9fadbe45cc8 Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Mon, 23 Apr 2018 22:56:53 +0300 Subject: [PATCH] [IR JS BE] Add core.kt to list of compiling files for JS IR BE tests --- .../jetbrains/kotlin/js/test/BasicBoxTest.kt | 2 +- .../kotlin/js/test/BasicIrBoxTest.kt | 24 ++++++++++++++----- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicBoxTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicBoxTest.kt index ea879fc0e0f..40389a90f9c 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicBoxTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicBoxTest.kt @@ -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) diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicIrBoxTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicIrBoxTest.kt index b0a8c57fdfc..2bbd43adfa4 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicIrBoxTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicIrBoxTest.kt @@ -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)