JS tests: split fir, ir, and legacy tests
Also split write FIR output to separate folders
This commit is contained in:
@@ -273,7 +273,7 @@ fun Test.setupV8() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Test.setUpJsBoxTests(jsEnabled: Boolean, jsIrEnabled: Boolean) {
|
fun Test.setUpJsBoxTests(jsEnabled: Boolean, jsIrEnabled: Boolean, firEnabled: Boolean) {
|
||||||
setupV8()
|
setupV8()
|
||||||
if (jsIrEnabled)
|
if (jsIrEnabled)
|
||||||
setupNodeJs()
|
setupNodeJs()
|
||||||
@@ -307,8 +307,20 @@ fun Test.setUpJsBoxTests(jsEnabled: Boolean, jsIrEnabled: Boolean) {
|
|||||||
|
|
||||||
exclude("org/jetbrains/kotlin/js/testOld/wasm/semantics/*")
|
exclude("org/jetbrains/kotlin/js/testOld/wasm/semantics/*")
|
||||||
|
|
||||||
if (jsEnabled && !jsIrEnabled) exclude("org/jetbrains/kotlin/js/test/ir/*")
|
if (jsEnabled && !jsIrEnabled) {
|
||||||
if (!jsEnabled && jsIrEnabled) include("org/jetbrains/kotlin/js/test/ir/*")
|
include("org/jetbrains/kotlin/integration/AntTaskJsTest.class")
|
||||||
|
include("org/jetbrains/kotlin/js/testOld/*")
|
||||||
|
include("org/jetbrains/kotlin/js/testOld/ast/*")
|
||||||
|
include("org/jetbrains/kotlin/js/testOld/optimizer/*")
|
||||||
|
include("org/jetbrains/kotlin/js/test/*")
|
||||||
|
}
|
||||||
|
if (!jsEnabled) {
|
||||||
|
if (firEnabled) {
|
||||||
|
include("org/jetbrains/kotlin/js/test/fir/*")
|
||||||
|
} else {
|
||||||
|
include("org/jetbrains/kotlin/js/test/ir/*")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
jvmArgs("-da:jdk.nashorn.internal.runtime.RecompilableScriptFunctionData") // Disable assertion which fails due to a bug in nashorn (KT-23637)
|
jvmArgs("-da:jdk.nashorn.internal.runtime.RecompilableScriptFunctionData") // Disable assertion which fails due to a bug in nashorn (KT-23637)
|
||||||
setUpBoxTests()
|
setUpBoxTests()
|
||||||
@@ -345,7 +357,7 @@ fun Test.setUpBoxTests() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
projectTest(parallel = true, jUnitMode = JUnitMode.JUnit5, maxHeapSizeMb = 4096) {
|
projectTest(parallel = true, jUnitMode = JUnitMode.JUnit5, maxHeapSizeMb = 4096) {
|
||||||
setUpJsBoxTests(jsEnabled = true, jsIrEnabled = true)
|
setUpJsBoxTests(jsEnabled = true, jsIrEnabled = true, firEnabled = true)
|
||||||
|
|
||||||
inputs.dir(rootDir.resolve("compiler/cli/cli-common/resources")) // compiler.xml
|
inputs.dir(rootDir.resolve("compiler/cli/cli-common/resources")) // compiler.xml
|
||||||
|
|
||||||
@@ -364,17 +376,22 @@ projectTest(parallel = true, jUnitMode = JUnitMode.JUnit5, maxHeapSizeMb = 4096)
|
|||||||
}
|
}
|
||||||
|
|
||||||
projectTest("jsTest", parallel = true, jUnitMode = JUnitMode.JUnit5, maxHeapSizeMb = 4096) {
|
projectTest("jsTest", parallel = true, jUnitMode = JUnitMode.JUnit5, maxHeapSizeMb = 4096) {
|
||||||
setUpJsBoxTests(jsEnabled = true, jsIrEnabled = false)
|
setUpJsBoxTests(jsEnabled = true, jsIrEnabled = false, firEnabled = false)
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
}
|
}
|
||||||
|
|
||||||
projectTest("jsIrTest", true, jUnitMode = JUnitMode.JUnit5, maxHeapSizeMb = 4096) {
|
projectTest("jsIrTest", true, jUnitMode = JUnitMode.JUnit5, maxHeapSizeMb = 4096) {
|
||||||
setUpJsBoxTests(jsEnabled = false, jsIrEnabled = true)
|
setUpJsBoxTests(jsEnabled = false, jsIrEnabled = true, firEnabled = false)
|
||||||
|
useJUnitPlatform()
|
||||||
|
}
|
||||||
|
|
||||||
|
projectTest("jsFirTest", true, jUnitMode = JUnitMode.JUnit5, maxHeapSizeMb = 4096) {
|
||||||
|
setUpJsBoxTests(jsEnabled = false, jsIrEnabled = true, firEnabled = true)
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
}
|
}
|
||||||
|
|
||||||
projectTest("quickTest", parallel = true, jUnitMode = JUnitMode.JUnit5, maxHeapSizeMb = 4096) {
|
projectTest("quickTest", parallel = true, jUnitMode = JUnitMode.JUnit5, maxHeapSizeMb = 4096) {
|
||||||
setUpJsBoxTests(jsEnabled = true, jsIrEnabled = false)
|
setUpJsBoxTests(jsEnabled = true, jsIrEnabled = false, firEnabled = false)
|
||||||
systemProperty("kotlin.js.skipMinificationTest", "true")
|
systemProperty("kotlin.js.skipMinificationTest", "true")
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.generators.generateTestGroupSuiteWithJUnit5
|
|||||||
import org.jetbrains.kotlin.generators.impl.generateTestGroupSuite
|
import org.jetbrains.kotlin.generators.impl.generateTestGroupSuite
|
||||||
import org.jetbrains.kotlin.incremental.AbstractInvalidationTest
|
import org.jetbrains.kotlin.incremental.AbstractInvalidationTest
|
||||||
import org.jetbrains.kotlin.js.test.*
|
import org.jetbrains.kotlin.js.test.*
|
||||||
|
import org.jetbrains.kotlin.js.test.fir.*
|
||||||
import org.jetbrains.kotlin.js.test.ir.*
|
import org.jetbrains.kotlin.js.test.ir.*
|
||||||
import org.jetbrains.kotlin.js.testOld.AbstractDceTest
|
import org.jetbrains.kotlin.js.testOld.AbstractDceTest
|
||||||
import org.jetbrains.kotlin.js.testOld.compatibility.binary.AbstractJsKlibBinaryCompatibilityTest
|
import org.jetbrains.kotlin.js.testOld.compatibility.binary.AbstractJsKlibBinaryCompatibilityTest
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.js.test
|
|||||||
import org.jetbrains.kotlin.js.test.converters.ClassicJsBackendFacade
|
import org.jetbrains.kotlin.js.test.converters.ClassicJsBackendFacade
|
||||||
import org.jetbrains.kotlin.js.test.converters.incremental.RecompileModuleJsBackendFacade
|
import org.jetbrains.kotlin.js.test.converters.incremental.RecompileModuleJsBackendFacade
|
||||||
import org.jetbrains.kotlin.js.test.handlers.*
|
import org.jetbrains.kotlin.js.test.handlers.*
|
||||||
|
import org.jetbrains.kotlin.js.test.ir.AbstractJsBlackBoxCodegenTestBase
|
||||||
import org.jetbrains.kotlin.js.test.utils.JsIncrementalEnvironmentConfigurator
|
import org.jetbrains.kotlin.js.test.utils.JsIncrementalEnvironmentConfigurator
|
||||||
import org.jetbrains.kotlin.test.Constructor
|
import org.jetbrains.kotlin.test.Constructor
|
||||||
import org.jetbrains.kotlin.test.TargetBackend
|
import org.jetbrains.kotlin.test.TargetBackend
|
||||||
|
|||||||
@@ -0,0 +1,153 @@
|
|||||||
|
package org.jetbrains.kotlin.js.test.fir
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.js.test.ir.AbstractJsBlackBoxCodegenTestBase
|
||||||
|
import org.jetbrains.kotlin.js.test.converters.FirJsKlibBackendFacade
|
||||||
|
import org.jetbrains.kotlin.js.test.converters.JsIrBackendFacade
|
||||||
|
import org.jetbrains.kotlin.js.test.converters.incremental.RecompileModuleJsIrBackendFacade
|
||||||
|
import org.jetbrains.kotlin.js.test.handlers.JsIrRecompiledArtifactsIdentityHandler
|
||||||
|
import org.jetbrains.kotlin.parsing.parseBoolean
|
||||||
|
import org.jetbrains.kotlin.test.Constructor
|
||||||
|
import org.jetbrains.kotlin.test.TargetBackend
|
||||||
|
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
||||||
|
import org.jetbrains.kotlin.test.builders.*
|
||||||
|
import org.jetbrains.kotlin.test.directives.JsEnvironmentConfigurationDirectives
|
||||||
|
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives
|
||||||
|
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrJsResultsConverter
|
||||||
|
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
||||||
|
import org.jetbrains.kotlin.test.frontend.fir.FirMetaInfoDiffSuppressor
|
||||||
|
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
||||||
|
import org.jetbrains.kotlin.test.frontend.fir.handlers.*
|
||||||
|
import org.jetbrains.kotlin.test.model.*
|
||||||
|
import org.jetbrains.kotlin.test.runners.codegen.commonFirHandlersForCodegenTest
|
||||||
|
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator
|
||||||
|
import java.lang.Boolean.getBoolean
|
||||||
|
|
||||||
|
|
||||||
|
open class AbstractFirJsTest(
|
||||||
|
pathToTestDir: String = "${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/box/",
|
||||||
|
testGroupOutputDirPrefix: String,
|
||||||
|
) : AbstractJsBlackBoxCodegenTestBase<FirOutputArtifact, IrBackendInput, BinaryArtifacts.KLib>(
|
||||||
|
FrontendKinds.FIR, TargetBackend.JS_IR, pathToTestDir, testGroupOutputDirPrefix, skipMinification = true
|
||||||
|
) {
|
||||||
|
override val frontendFacade: Constructor<FrontendFacade<FirOutputArtifact>>
|
||||||
|
get() = ::FirFrontendFacade
|
||||||
|
|
||||||
|
override val frontendToBackendConverter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
||||||
|
get() = ::Fir2IrJsResultsConverter
|
||||||
|
|
||||||
|
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.KLib>>
|
||||||
|
get() = ::FirJsKlibBackendFacade
|
||||||
|
|
||||||
|
override val afterBackendFacade: Constructor<AbstractTestFacade<BinaryArtifacts.KLib, BinaryArtifacts.Js>>?
|
||||||
|
get() = ::JsIrBackendFacade
|
||||||
|
|
||||||
|
override val recompileFacade: Constructor<AbstractTestFacade<BinaryArtifacts.Js, BinaryArtifacts.Js>>
|
||||||
|
get() = { RecompileModuleJsIrBackendFacade(it) }
|
||||||
|
|
||||||
|
private fun getBoolean(s: String, default: Boolean) = System.getProperty(s)?.let { parseBoolean(it) } ?: default
|
||||||
|
|
||||||
|
override fun configure(builder: TestConfigurationBuilder) {
|
||||||
|
super.configure(builder)
|
||||||
|
with (builder) {
|
||||||
|
defaultDirectives {
|
||||||
|
val runIc = getBoolean("kotlin.js.ir.icMode")
|
||||||
|
if (runIc) +JsEnvironmentConfigurationDirectives.RUN_IC
|
||||||
|
if (getBoolean("kotlin.js.ir.klibMainModule")) +JsEnvironmentConfigurationDirectives.KLIB_MAIN_MODULE
|
||||||
|
if (getBoolean("kotlin.js.ir.perModule", true)) +JsEnvironmentConfigurationDirectives.PER_MODULE
|
||||||
|
if (getBoolean("kotlin.js.ir.dce", true)) +JsEnvironmentConfigurationDirectives.RUN_IR_DCE
|
||||||
|
+LanguageSettingsDirectives.ALLOW_KOTLIN_PACKAGE
|
||||||
|
-JsEnvironmentConfigurationDirectives.GENERATE_NODE_JS_RUNNER
|
||||||
|
}
|
||||||
|
|
||||||
|
firHandlersStep {
|
||||||
|
useHandlers(
|
||||||
|
::FirDumpHandler,
|
||||||
|
::FirCfgDumpHandler,
|
||||||
|
::FirCfgConsistencyHandler,
|
||||||
|
::FirResolvedTypesVerifier,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
configureJsArtifactsHandlersStep {
|
||||||
|
useHandlers(
|
||||||
|
::JsIrRecompiledArtifactsIdentityHandler,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
forTestsMatching("${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/box/closure/inlineAnonymousFunctions/*") {
|
||||||
|
defaultDirectives {
|
||||||
|
+JsEnvironmentConfigurationDirectives.GENERATE_INLINE_ANONYMOUS_FUNCTIONS
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
open class AbstractFirJsBoxTest : AbstractFirJsTest(
|
||||||
|
pathToTestDir = "${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/box/",
|
||||||
|
testGroupOutputDirPrefix = "firBox/"
|
||||||
|
)
|
||||||
|
|
||||||
|
open class AbstractFirJsCodegenBoxTest : AbstractFirJsTest(
|
||||||
|
pathToTestDir = "compiler/testData/codegen/box/",
|
||||||
|
testGroupOutputDirPrefix = "codegen/firBox/"
|
||||||
|
) {
|
||||||
|
override fun configure(builder: TestConfigurationBuilder) {
|
||||||
|
super.configure(builder)
|
||||||
|
builder.configureFirHandlersStep {
|
||||||
|
commonFirHandlersForCodegenTest()
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.useAfterAnalysisCheckers(
|
||||||
|
::FirMetaInfoDiffSuppressor
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
open class AbstractFirJsCodegenBoxErrorTest : AbstractFirJsTest(
|
||||||
|
pathToTestDir = "compiler/testData/codegen/boxError/",
|
||||||
|
testGroupOutputDirPrefix = "codegen/firBoxError/"
|
||||||
|
)
|
||||||
|
|
||||||
|
open class AbstractFirJsCodegenInlineTest : AbstractFirJsTest(
|
||||||
|
pathToTestDir = "compiler/testData/codegen/boxInline/",
|
||||||
|
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)
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
|
// TODO: implement separate expectations for FIR/JS to reuse testdata, disabled for now
|
||||||
|
//open class AbstractJsFirLineNumberTest : AbstractFirJsTest(
|
||||||
|
// pathToTestDir = "${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/lineNumbers/",
|
||||||
|
// testGroupOutputDirPrefix = "irLineNumbers/"
|
||||||
|
//) {
|
||||||
|
// override fun configure(builder: TestConfigurationBuilder) {
|
||||||
|
// super.configure(builder)
|
||||||
|
// configureJsIrLineNumberTest(builder)
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
|
// TODO: implement separate expectations for FIR/JS to reuse testdata, disabled for now
|
||||||
|
//open class AbstractFirJsSteppingTest : AbstractFirJsTest(
|
||||||
|
// pathToTestDir = "compiler/testData/debug/stepping/",
|
||||||
|
// testGroupOutputDirPrefix = "debug/stepping/"
|
||||||
|
//) {
|
||||||
|
// override fun TestConfigurationBuilder.configuration() {
|
||||||
|
// commonConfigurationForJsBlackBoxCodegenTest()
|
||||||
|
// configurationForIrJsSteppingTest()
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
|
open class AbstractFirJsCodegenWasmJsInteropTest : AbstractFirJsTest(
|
||||||
|
pathToTestDir = "compiler/testData/codegen/wasmJsInterop",
|
||||||
|
testGroupOutputDirPrefix = "codegen/wasmJsInteropJs"
|
||||||
|
)
|
||||||
+4
-2
@@ -1,10 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2022 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.
|
* 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
|
package org.jetbrains.kotlin.js.test.ir
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.js.test.JsAdditionalSourceProvider
|
||||||
|
import org.jetbrains.kotlin.js.test.JsFailingTestSuppressor
|
||||||
import org.jetbrains.kotlin.js.test.handlers.*
|
import org.jetbrains.kotlin.js.test.handlers.*
|
||||||
import org.jetbrains.kotlin.platform.js.JsPlatforms
|
import org.jetbrains.kotlin.platform.js.JsPlatforms
|
||||||
import org.jetbrains.kotlin.test.Constructor
|
import org.jetbrains.kotlin.test.Constructor
|
||||||
@@ -5,8 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.js.test.ir
|
package org.jetbrains.kotlin.js.test.ir
|
||||||
|
|
||||||
import org.jetbrains.kotlin.js.test.AbstractJsBlackBoxCodegenTestBase
|
|
||||||
import org.jetbrains.kotlin.js.test.converters.FirJsKlibBackendFacade
|
|
||||||
import org.jetbrains.kotlin.js.test.JsSteppingTestAdditionalSourceProvider
|
import org.jetbrains.kotlin.js.test.JsSteppingTestAdditionalSourceProvider
|
||||||
import org.jetbrains.kotlin.js.test.converters.JsIrBackendFacade
|
import org.jetbrains.kotlin.js.test.converters.JsIrBackendFacade
|
||||||
import org.jetbrains.kotlin.js.test.converters.JsKlibBackendFacade
|
import org.jetbrains.kotlin.js.test.converters.JsKlibBackendFacade
|
||||||
@@ -21,17 +19,10 @@ import org.jetbrains.kotlin.test.TargetBackend
|
|||||||
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
||||||
import org.jetbrains.kotlin.test.builders.*
|
import org.jetbrains.kotlin.test.builders.*
|
||||||
import org.jetbrains.kotlin.test.directives.JsEnvironmentConfigurationDirectives
|
import org.jetbrains.kotlin.test.directives.JsEnvironmentConfigurationDirectives
|
||||||
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives
|
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
||||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrJsResultsConverter
|
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirMetaInfoDiffSuppressor
|
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
|
||||||
import org.jetbrains.kotlin.test.frontend.fir.handlers.*
|
|
||||||
import org.jetbrains.kotlin.test.model.*
|
import org.jetbrains.kotlin.test.model.*
|
||||||
import org.jetbrains.kotlin.test.runners.codegen.commonFirHandlersForCodegenTest
|
|
||||||
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator
|
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator
|
||||||
import java.lang.Boolean.getBoolean
|
import java.lang.Boolean.getBoolean
|
||||||
|
|
||||||
@@ -189,133 +180,4 @@ open class AbstractIrJsLocalVariableTest : AbstractJsIrTest(
|
|||||||
open class AbstractIrCodegenWasmJsInteropJsTest : AbstractJsIrTest(
|
open class AbstractIrCodegenWasmJsInteropJsTest : AbstractJsIrTest(
|
||||||
pathToTestDir = "compiler/testData/codegen/wasmJsInterop",
|
pathToTestDir = "compiler/testData/codegen/wasmJsInterop",
|
||||||
testGroupOutputDirPrefix = "codegen/wasmJsInteropJs"
|
testGroupOutputDirPrefix = "codegen/wasmJsInteropJs"
|
||||||
)
|
)
|
||||||
|
|
||||||
open class AbstractFirJsBlackBoxCodegenTest(
|
|
||||||
pathToTestDir: String = "${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/box/",
|
|
||||||
testGroupOutputDirPrefix: String = "firBox/",
|
|
||||||
) : AbstractJsBlackBoxCodegenTestBase<FirOutputArtifact, IrBackendInput, BinaryArtifacts.KLib>(
|
|
||||||
FrontendKinds.FIR, TargetBackend.JS_IR, pathToTestDir, testGroupOutputDirPrefix, skipMinification = true
|
|
||||||
) {
|
|
||||||
override val frontendFacade: Constructor<FrontendFacade<FirOutputArtifact>>
|
|
||||||
get() = ::FirFrontendFacade
|
|
||||||
|
|
||||||
override val frontendToBackendConverter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
|
|
||||||
get() = ::Fir2IrJsResultsConverter
|
|
||||||
|
|
||||||
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.KLib>>
|
|
||||||
get() = ::FirJsKlibBackendFacade
|
|
||||||
|
|
||||||
override val afterBackendFacade: Constructor<AbstractTestFacade<BinaryArtifacts.KLib, BinaryArtifacts.Js>>?
|
|
||||||
get() = ::JsIrBackendFacade
|
|
||||||
|
|
||||||
override val recompileFacade: Constructor<AbstractTestFacade<BinaryArtifacts.Js, BinaryArtifacts.Js>>
|
|
||||||
get() = { RecompileModuleJsIrBackendFacade(it) }
|
|
||||||
|
|
||||||
private fun getBoolean(s: String, default: Boolean) = System.getProperty(s)?.let { parseBoolean(it) } ?: default
|
|
||||||
|
|
||||||
override fun configure(builder: TestConfigurationBuilder) {
|
|
||||||
super.configure(builder)
|
|
||||||
with (builder) {
|
|
||||||
defaultDirectives {
|
|
||||||
val runIc = getBoolean("kotlin.js.ir.icMode")
|
|
||||||
if (runIc) +JsEnvironmentConfigurationDirectives.RUN_IC
|
|
||||||
if (getBoolean("kotlin.js.ir.klibMainModule")) +JsEnvironmentConfigurationDirectives.KLIB_MAIN_MODULE
|
|
||||||
if (getBoolean("kotlin.js.ir.perModule", true)) +JsEnvironmentConfigurationDirectives.PER_MODULE
|
|
||||||
if (getBoolean("kotlin.js.ir.dce", true)) +JsEnvironmentConfigurationDirectives.RUN_IR_DCE
|
|
||||||
+LanguageSettingsDirectives.ALLOW_KOTLIN_PACKAGE
|
|
||||||
-JsEnvironmentConfigurationDirectives.GENERATE_NODE_JS_RUNNER
|
|
||||||
}
|
|
||||||
|
|
||||||
firHandlersStep {
|
|
||||||
useHandlers(
|
|
||||||
::FirDumpHandler,
|
|
||||||
::FirCfgDumpHandler,
|
|
||||||
::FirCfgConsistencyHandler,
|
|
||||||
::FirResolvedTypesVerifier,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
configureJsArtifactsHandlersStep {
|
|
||||||
useHandlers(
|
|
||||||
::JsIrRecompiledArtifactsIdentityHandler,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
forTestsMatching("${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/box/closure/inlineAnonymousFunctions/*") {
|
|
||||||
defaultDirectives {
|
|
||||||
+JsEnvironmentConfigurationDirectives.GENERATE_INLINE_ANONYMOUS_FUNCTIONS
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
open class AbstractFirJsBoxTest : AbstractFirJsBlackBoxCodegenTest(
|
|
||||||
pathToTestDir = "${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/box/",
|
|
||||||
testGroupOutputDirPrefix = "irBox/"
|
|
||||||
)
|
|
||||||
|
|
||||||
open class AbstractFirJsCodegenBoxTest : AbstractFirJsBlackBoxCodegenTest(
|
|
||||||
pathToTestDir = "compiler/testData/codegen/box/",
|
|
||||||
testGroupOutputDirPrefix = "codegen/irBox/"
|
|
||||||
) {
|
|
||||||
override fun configure(builder: TestConfigurationBuilder) {
|
|
||||||
super.configure(builder)
|
|
||||||
builder.configureFirHandlersStep {
|
|
||||||
commonFirHandlersForCodegenTest()
|
|
||||||
}
|
|
||||||
|
|
||||||
builder.useAfterAnalysisCheckers(
|
|
||||||
::FirMetaInfoDiffSuppressor
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
open class AbstractFirJsCodegenBoxErrorTest : AbstractFirJsBlackBoxCodegenTest(
|
|
||||||
pathToTestDir = "compiler/testData/codegen/boxError/",
|
|
||||||
testGroupOutputDirPrefix = "codegen/irBoxError/"
|
|
||||||
)
|
|
||||||
|
|
||||||
open class AbstractFirJsCodegenInlineTest : AbstractFirJsBlackBoxCodegenTest(
|
|
||||||
pathToTestDir = "compiler/testData/codegen/boxInline/",
|
|
||||||
testGroupOutputDirPrefix = "codegen/irBoxInline/"
|
|
||||||
)
|
|
||||||
|
|
||||||
// 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)
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
// TODO: implement separate expectations for FIR/JS to reuse testdata, disabled for now
|
|
||||||
//open class AbstractJsFirLineNumberTest : AbstractFirJsTest(
|
|
||||||
// pathToTestDir = "${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/lineNumbers/",
|
|
||||||
// testGroupOutputDirPrefix = "irLineNumbers/"
|
|
||||||
//) {
|
|
||||||
// override fun configure(builder: TestConfigurationBuilder) {
|
|
||||||
// super.configure(builder)
|
|
||||||
// configureJsIrLineNumberTest(builder)
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
// TODO: implement separate expectations for FIR/JS to reuse testdata, disabled for now
|
|
||||||
//open class AbstractFirJsSteppingTest : AbstractFirJsTest(
|
|
||||||
// pathToTestDir = "compiler/testData/debug/stepping/",
|
|
||||||
// testGroupOutputDirPrefix = "debug/stepping/"
|
|
||||||
//) {
|
|
||||||
// override fun TestConfigurationBuilder.configuration() {
|
|
||||||
// commonConfigurationForJsBlackBoxCodegenTest()
|
|
||||||
// configurationForIrJsSteppingTest()
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
open class AbstractFirJsCodegenWasmJsInteropTest : AbstractFirJsBlackBoxCodegenTest(
|
|
||||||
pathToTestDir = "compiler/testData/codegen/wasmJsInterop",
|
|
||||||
testGroupOutputDirPrefix = "codegen/wasmJsInteropJs"
|
|
||||||
)
|
|
||||||
+2
-2
@@ -1,9 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2022 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.
|
* 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
|
package org.jetbrains.kotlin.js.test.ir
|
||||||
|
|
||||||
import com.intellij.openapi.vfs.StandardFileSystems
|
import com.intellij.openapi.vfs.StandardFileSystems
|
||||||
import com.intellij.openapi.vfs.VirtualFileManager
|
import com.intellij.openapi.vfs.VirtualFileManager
|
||||||
+2
-2
@@ -1,9 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2022 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.
|
* 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.testOld
|
package org.jetbrains.kotlin.js.testOld.api
|
||||||
|
|
||||||
import junit.framework.TestCase
|
import junit.framework.TestCase
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.ir;
|
package org.jetbrains.kotlin.js.test.fir;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.ir;
|
package org.jetbrains.kotlin.js.test.fir;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.ir;
|
package org.jetbrains.kotlin.js.test.fir;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.ir;
|
package org.jetbrains.kotlin.js.test.fir;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.ir;
|
package org.jetbrains.kotlin.js.test.fir;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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;
|
package org.jetbrains.kotlin.js.test.ir;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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;
|
package org.jetbrains.kotlin.js.test.ir;
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
||||||
Reference in New Issue
Block a user