[Wasm] Add box tests for kotlin.test

This commit is contained in:
Igor Laevsky
2021-09-23 21:11:26 +03:00
committed by TeamCityServer
parent 14eee7c539
commit dcdc7e4633
6 changed files with 109 additions and 9 deletions
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.js.test.ir.semantics.*
import org.jetbrains.kotlin.js.test.semantics.*
import org.jetbrains.kotlin.js.test.wasm.semantics.AbstractIrCodegenBoxWasmTest
import org.jetbrains.kotlin.js.test.wasm.semantics.AbstractIrCodegenWasmJsInteropWasmTest
import org.jetbrains.kotlin.js.test.wasm.semantics.AbstractKotlinTestBoxWasmTest
import org.jetbrains.kotlin.test.TargetBackend
fun main(args: Array<String>) {
@@ -31,6 +32,10 @@ fun main(args: Array<String>) {
model("box/", pattern = "^([^_](.+))\\.kt$", targetBackend = TargetBackend.JS)
}
testClass<AbstractKotlinTestBoxWasmTest> {
model("box/kotlin.test/", pattern = "^([^_](.+))\\.kt$", targetBackend = TargetBackend.WASM)
}
testClass<AbstractIrBoxJsTest> {
model("box/", pattern = "^([^_](.+))\\.kt$", targetBackend = TargetBackend.JS_IR)
}
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.idea.KotlinFileType
import org.jetbrains.kotlin.ir.backend.js.loadKlib
import org.jetbrains.kotlin.ir.backend.js.prepareAnalyzedSourceModule
import org.jetbrains.kotlin.ir.backend.js.utils.sanitizeName
@@ -35,9 +36,6 @@ import org.jetbrains.kotlin.test.util.KtTestUtil
import java.io.Closeable
import java.io.File
private val wasmRuntimeKlib =
loadKlib(System.getProperty("kotlin.wasm.stdlib.path"))
abstract class BasicWasmBoxTest(
private val pathToTestDir: String,
testGroupOutputDirPrefix: String,
@@ -47,6 +45,13 @@ abstract class BasicWasmBoxTest(
private val spiderMonkey by lazy { SpiderMonkeyEngine() }
private val COMMON_FILES_NAME = "_common"
@Suppress("UNUSED_PARAMETER")
fun doTestWithCoroutinesPackageReplacement(filePath: String, coroutinesPackage: String) {
TODO("TestWithCoroutinesPackageReplacement are not supported")
}
fun doTest(filePath: String) {
val file = File(filePath)
@@ -81,7 +86,12 @@ abstract class BasicWasmBoxTest(
}
}
val psiFiles = createPsiFiles(kotlinFiles.map { File(it).canonicalPath }.sorted())
val localCommonFile = file.parent + "/" + COMMON_FILES_NAME + "." + KotlinFileType.EXTENSION
val localCommonFiles = if (File(localCommonFile).exists()) listOf(localCommonFile) else emptyList()
val allSourceFiles = kotlinFiles + localCommonFiles
val psiFiles = createPsiFiles(allSourceFiles.map { File(it).canonicalPath }.sorted())
val config = createConfig(languageVersionSettings)
translateFiles(
file,
@@ -159,7 +169,7 @@ abstract class BasicWasmBoxTest(
filesToCompile,
config.configuration,
// TODO: Bypass the resolver fow wasm.
listOf(System.getProperty("kotlin.wasm.stdlib.path")!!),
listOf(System.getProperty("kotlin.wasm.stdlib.path")!!, System.getProperty("kotlin.wasm.kotlin.test.path")!!),
emptyList(),
AnalyzerWithCompilerReport(config.configuration)
)
@@ -15,4 +15,9 @@ abstract class AbstractIrCodegenBoxWasmTest : BasicWasmBoxTest(
abstract class AbstractIrCodegenWasmJsInteropWasmTest : BasicWasmBoxTest(
"compiler/testData/codegen/wasmJsInterop",
"codegen/wasmJsInteropJs"
)
)
abstract class AbstractKotlinTestBoxWasmTest : BasicWasmBoxTest(
"js/js.translator/testData/box/kotlin.test",
"codegen/wasmBoxKotlinTest"
)