[K/JS, TEST] Enable TS export tests for FIR ^KT-64421 Fixed
This commit is contained in:
@@ -163,10 +163,13 @@ fun main(args: Array<String>) {
|
||||
model("box/", pattern = "^([^_](.+))\\.kt$")
|
||||
}
|
||||
|
||||
// see todo on defining class
|
||||
// testClass<AbstractFirJsTypeScriptExportTest> {
|
||||
// model("typescript-export/", pattern = "^([^_](.+))\\.kt$")
|
||||
// }
|
||||
testClass<AbstractFirJsTypeScriptExportTest> {
|
||||
model("typescript-export/", pattern = "^([^_](.+))\\.kt$")
|
||||
}
|
||||
|
||||
testClass<AbstractFirJsES6TypeScriptExportTest> {
|
||||
model("typescript-export/", pattern = "^([^_](.+))\\.kt$")
|
||||
}
|
||||
|
||||
testClass<AbstractFirJsLineNumberTest> {
|
||||
model("lineNumbers/")
|
||||
|
||||
@@ -9,7 +9,12 @@ import org.jetbrains.kotlin.js.test.handlers.JsDebugRunner
|
||||
import org.jetbrains.kotlin.js.test.handlers.JsIrRecompiledArtifactsIdentityHandler
|
||||
import org.jetbrains.kotlin.js.test.handlers.JsWrongModuleHandler
|
||||
import org.jetbrains.kotlin.js.test.handlers.createFirJsLineNumberHandler
|
||||
import org.jetbrains.kotlin.js.test.handlers.createIrJsLineNumberHandler
|
||||
import org.jetbrains.kotlin.js.test.ir.AbstractJsIrES6Test
|
||||
import org.jetbrains.kotlin.js.test.ir.AbstractJsIrTest
|
||||
import org.jetbrains.kotlin.js.test.utils.configureJsTypeScriptExportTest
|
||||
import org.jetbrains.kotlin.js.test.utils.configureLineNumberTests
|
||||
import org.jetbrains.kotlin.js.test.utils.configureSteppingTests
|
||||
import org.jetbrains.kotlin.parsing.parseBoolean
|
||||
import org.jetbrains.kotlin.test.Constructor
|
||||
import org.jetbrains.kotlin.test.FirParser
|
||||
@@ -134,16 +139,25 @@ open class AbstractFirJsCodegenInlineTest : AbstractFirJsTest(
|
||||
testGroupOutputDirPrefix = "codegen/firBoxInline/"
|
||||
)
|
||||
|
||||
// TODO: implement method order independent comparison to reuse testdata, disabled for now
|
||||
//open class AbstractFirJsTypeScriptExportTest : AbstractFirJsTest(
|
||||
// pathToTestDir = "${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/typescript-export/",
|
||||
// testGroupOutputDirPrefix = "typescript-export/"
|
||||
//) {
|
||||
// override fun configure(builder: TestConfigurationBuilder) {
|
||||
// super.configure(builder)
|
||||
// configureIrJsTypeScriptExportTest(builder)
|
||||
// }
|
||||
//}
|
||||
open class AbstractFirJsTypeScriptExportTest : AbstractFirJsTest(
|
||||
pathToTestDir = "${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/typescript-export/",
|
||||
testGroupOutputDirPrefix = "typescript-export/fir/"
|
||||
) {
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
builder.configureJsTypeScriptExportTest()
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractFirJsES6TypeScriptExportTest : AbstractFirJsES6Test(
|
||||
pathToTestDir = "${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/typescript-export/",
|
||||
testGroupOutputDirPrefix = "typescript-export/fir-es6"
|
||||
) {
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
builder.configureJsTypeScriptExportTest()
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractFirJsLineNumberTest : AbstractFirJsTest(
|
||||
pathToTestDir = "${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/lineNumbers/",
|
||||
@@ -151,17 +165,7 @@ open class AbstractFirJsLineNumberTest : AbstractFirJsTest(
|
||||
) {
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
with(builder) {
|
||||
defaultDirectives {
|
||||
+JsEnvironmentConfigurationDirectives.KJS_WITH_FULL_RUNTIME
|
||||
+JsEnvironmentConfigurationDirectives.NO_COMMON_FILES
|
||||
-JsEnvironmentConfigurationDirectives.GENERATE_NODE_JS_RUNNER
|
||||
JsEnvironmentConfigurationDirectives.DONT_RUN_GENERATED_CODE.with(listOf("JS", "JS_IR", "JS_IR_ES6"))
|
||||
}
|
||||
configureJsArtifactsHandlersStep {
|
||||
useHandlers(::createFirJsLineNumberHandler)
|
||||
}
|
||||
}
|
||||
builder.configureLineNumberTests(::createFirJsLineNumberHandler)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -202,15 +206,7 @@ open class AbstractFirJsSteppingTest : AbstractFirJsTest(
|
||||
) {
|
||||
override fun TestConfigurationBuilder.configuration() {
|
||||
commonConfigurationForJsBlackBoxCodegenTest()
|
||||
defaultDirectives {
|
||||
+JsEnvironmentConfigurationDirectives.NO_COMMON_FILES
|
||||
}
|
||||
useAdditionalSourceProviders(::JsSteppingTestAdditionalSourceProvider)
|
||||
jsArtifactsHandlersStep {
|
||||
useHandlers(
|
||||
::JsDebugRunner.bind(false)
|
||||
)
|
||||
}
|
||||
configureSteppingTests()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,9 @@ import org.jetbrains.kotlin.js.test.converters.JsIrBackendFacade
|
||||
import org.jetbrains.kotlin.js.test.converters.JsKlibBackendFacade
|
||||
import org.jetbrains.kotlin.js.test.converters.incremental.RecompileModuleJsIrBackendFacade
|
||||
import org.jetbrains.kotlin.js.test.handlers.*
|
||||
import org.jetbrains.kotlin.js.test.utils.configureJsTypeScriptExportTest
|
||||
import org.jetbrains.kotlin.js.test.utils.configureLineNumberTests
|
||||
import org.jetbrains.kotlin.js.test.utils.configureSteppingTests
|
||||
import org.jetbrains.kotlin.parsing.parseBoolean
|
||||
import org.jetbrains.kotlin.test.Constructor
|
||||
import org.jetbrains.kotlin.test.TargetBackend
|
||||
@@ -99,36 +102,21 @@ open class AbstractIrJsCodegenInlineTest : AbstractJsIrTest(
|
||||
|
||||
open class AbstractIrJsTypeScriptExportTest : AbstractJsIrTest(
|
||||
pathToTestDir = "${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/typescript-export/",
|
||||
testGroupOutputDirPrefix = "typescript-export/"
|
||||
testGroupOutputDirPrefix = "typescript-export/ir/"
|
||||
) {
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
configureIrJsTypeScriptExportTest(builder)
|
||||
builder.configureJsTypeScriptExportTest()
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractIrJsES6TypeScriptExportTest : AbstractJsIrES6Test(
|
||||
pathToTestDir = "${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/typescript-export/",
|
||||
testGroupOutputDirPrefix = "es6-typescript-export/"
|
||||
testGroupOutputDirPrefix = "typescript-export/ir-es6/"
|
||||
) {
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
configureIrJsTypeScriptExportTest(builder)
|
||||
}
|
||||
}
|
||||
|
||||
private fun configureIrJsTypeScriptExportTest(builder: TestConfigurationBuilder) {
|
||||
with(builder) {
|
||||
defaultDirectives {
|
||||
+JsEnvironmentConfigurationDirectives.GENERATE_DTS
|
||||
if (getBoolean("kotlin.js.updateReferenceDtsFiles")) +JsEnvironmentConfigurationDirectives.UPDATE_REFERENCE_DTS_FILES
|
||||
}
|
||||
|
||||
configureJsArtifactsHandlersStep {
|
||||
useHandlers(
|
||||
::JsDtsHandler
|
||||
)
|
||||
}
|
||||
builder.configureJsTypeScriptExportTest()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,17 +126,7 @@ open class AbstractJsIrLineNumberTest : AbstractJsIrTest(
|
||||
) {
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
with(builder) {
|
||||
defaultDirectives {
|
||||
+JsEnvironmentConfigurationDirectives.KJS_WITH_FULL_RUNTIME
|
||||
+JsEnvironmentConfigurationDirectives.NO_COMMON_FILES
|
||||
-JsEnvironmentConfigurationDirectives.GENERATE_NODE_JS_RUNNER
|
||||
JsEnvironmentConfigurationDirectives.DONT_RUN_GENERATED_CODE.with(listOf("JS", "JS_IR", "JS_IR_ES6"))
|
||||
}
|
||||
configureJsArtifactsHandlersStep {
|
||||
useHandlers(::createIrJsLineNumberHandler)
|
||||
}
|
||||
}
|
||||
builder.configureLineNumberTests(::createIrJsLineNumberHandler)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -209,15 +187,7 @@ open class AbstractIrJsSteppingTest : AbstractJsIrTest(
|
||||
) {
|
||||
override fun TestConfigurationBuilder.configuration() {
|
||||
commonConfigurationForJsBlackBoxCodegenTest()
|
||||
defaultDirectives {
|
||||
+JsEnvironmentConfigurationDirectives.NO_COMMON_FILES
|
||||
}
|
||||
useAdditionalSourceProviders(::JsSteppingTestAdditionalSourceProvider)
|
||||
jsArtifactsHandlersStep {
|
||||
useHandlers(
|
||||
::JsDebugRunner.bind(false)
|
||||
)
|
||||
}
|
||||
configureSteppingTests()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.js.test.utils
|
||||
|
||||
import org.jetbrains.kotlin.js.test.JsSteppingTestAdditionalSourceProvider
|
||||
import org.jetbrains.kotlin.js.test.handlers.JsDebugRunner
|
||||
import org.jetbrains.kotlin.js.test.handlers.JsDtsHandler
|
||||
import org.jetbrains.kotlin.test.backend.handlers.JsBinaryArtifactHandler
|
||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
import org.jetbrains.kotlin.test.builders.configureJsArtifactsHandlersStep
|
||||
import org.jetbrains.kotlin.test.builders.jsArtifactsHandlersStep
|
||||
import org.jetbrains.kotlin.test.directives.JsEnvironmentConfigurationDirectives
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.utils.bind
|
||||
import java.lang.Boolean.getBoolean
|
||||
|
||||
fun TestConfigurationBuilder.configureLineNumberTests(createLineNumberHandler: (testServices: TestServices) -> JsBinaryArtifactHandler) {
|
||||
defaultDirectives {
|
||||
+JsEnvironmentConfigurationDirectives.KJS_WITH_FULL_RUNTIME
|
||||
+JsEnvironmentConfigurationDirectives.NO_COMMON_FILES
|
||||
-JsEnvironmentConfigurationDirectives.GENERATE_NODE_JS_RUNNER
|
||||
JsEnvironmentConfigurationDirectives.DONT_RUN_GENERATED_CODE.with(listOf("JS", "JS_IR", "JS_IR_ES6"))
|
||||
}
|
||||
configureJsArtifactsHandlersStep {
|
||||
useHandlers(createLineNumberHandler)
|
||||
}
|
||||
}
|
||||
|
||||
fun TestConfigurationBuilder.configureSteppingTests() {
|
||||
defaultDirectives {
|
||||
+JsEnvironmentConfigurationDirectives.NO_COMMON_FILES
|
||||
}
|
||||
useAdditionalSourceProviders(::JsSteppingTestAdditionalSourceProvider)
|
||||
jsArtifactsHandlersStep {
|
||||
useHandlers(::JsDebugRunner.bind(false))
|
||||
}
|
||||
}
|
||||
|
||||
fun TestConfigurationBuilder.configureJsTypeScriptExportTest() {
|
||||
defaultDirectives {
|
||||
+JsEnvironmentConfigurationDirectives.GENERATE_DTS
|
||||
if (getBoolean("kotlin.js.updateReferenceDtsFiles")) +JsEnvironmentConfigurationDirectives.UPDATE_REFERENCE_DTS_FILES
|
||||
}
|
||||
configureJsArtifactsHandlersStep {
|
||||
useHandlers(::JsDtsHandler)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user