[JS TESTS] Drop pir tests
This commit is contained in:
-10
@@ -86,11 +86,6 @@ object JsEnvironmentConfigurationDirectives : SimpleDirectivesContainer() {
|
|||||||
applicability = DirectiveApplicability.Global
|
applicability = DirectiveApplicability.Global
|
||||||
)
|
)
|
||||||
|
|
||||||
val SKIP_DCE_DRIVEN by directive(
|
|
||||||
description = "",
|
|
||||||
applicability = DirectiveApplicability.Global
|
|
||||||
)
|
|
||||||
|
|
||||||
val SPLIT_PER_MODULE by directive(
|
val SPLIT_PER_MODULE by directive(
|
||||||
description = "",
|
description = "",
|
||||||
applicability = DirectiveApplicability.Global
|
applicability = DirectiveApplicability.Global
|
||||||
@@ -205,11 +200,6 @@ object JsEnvironmentConfigurationDirectives : SimpleDirectivesContainer() {
|
|||||||
applicability = DirectiveApplicability.Global
|
applicability = DirectiveApplicability.Global
|
||||||
)
|
)
|
||||||
|
|
||||||
val RUN_IR_PIR by directive(
|
|
||||||
description = "Enables pir on IR", // TODO what `pir` stands for?
|
|
||||||
applicability = DirectiveApplicability.Global
|
|
||||||
)
|
|
||||||
|
|
||||||
val RUN_IC by directive(
|
val RUN_IC by directive(
|
||||||
description = "",
|
description = "",
|
||||||
applicability = DirectiveApplicability.Global
|
applicability = DirectiveApplicability.Global
|
||||||
|
|||||||
-9
@@ -50,7 +50,6 @@ class JsEnvironmentConfigurator(testServices: TestServices) : EnvironmentConfigu
|
|||||||
private const val OUTPUT_DIR_NAME = "outputDir"
|
private const val OUTPUT_DIR_NAME = "outputDir"
|
||||||
private const val OUTPUT_KLIB_DIR_NAME = "outputKlibDir"
|
private const val OUTPUT_KLIB_DIR_NAME = "outputKlibDir"
|
||||||
private const val DCE_OUTPUT_DIR_NAME = "dceOutputDir"
|
private const val DCE_OUTPUT_DIR_NAME = "dceOutputDir"
|
||||||
private const val PIR_OUTPUT_DIR_NAME = "pirOutputDir"
|
|
||||||
private const val MINIFICATION_OUTPUT_DIR_NAME = "minOutputDir"
|
private const val MINIFICATION_OUTPUT_DIR_NAME = "minOutputDir"
|
||||||
|
|
||||||
object ExceptionThrowingReporter : JsConfig.Reporter() {
|
object ExceptionThrowingReporter : JsConfig.Reporter() {
|
||||||
@@ -84,10 +83,6 @@ class JsEnvironmentConfigurator(testServices: TestServices) : EnvironmentConfigu
|
|||||||
return getDceJsArtifactsOutputDir(testServices).absolutePath + File.separator + getJsArtifactSimpleName(testServices, moduleName) + "_v5"
|
return getDceJsArtifactsOutputDir(testServices).absolutePath + File.separator + getJsArtifactSimpleName(testServices, moduleName) + "_v5"
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getPirJsArtifactPath(testServices: TestServices, moduleName: String): String {
|
|
||||||
return getPirJsArtifactsOutputDir(testServices).absolutePath + File.separator + getJsArtifactSimpleName(testServices, moduleName) + "_v5"
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getJsArtifactsOutputDir(testServices: TestServices): File {
|
fun getJsArtifactsOutputDir(testServices: TestServices): File {
|
||||||
return testServices.temporaryDirectoryManager.getOrCreateTempDirectory(OUTPUT_DIR_NAME)
|
return testServices.temporaryDirectoryManager.getOrCreateTempDirectory(OUTPUT_DIR_NAME)
|
||||||
}
|
}
|
||||||
@@ -100,10 +95,6 @@ class JsEnvironmentConfigurator(testServices: TestServices) : EnvironmentConfigu
|
|||||||
return testServices.temporaryDirectoryManager.getOrCreateTempDirectory(DCE_OUTPUT_DIR_NAME)
|
return testServices.temporaryDirectoryManager.getOrCreateTempDirectory(DCE_OUTPUT_DIR_NAME)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getPirJsArtifactsOutputDir(testServices: TestServices): File {
|
|
||||||
return testServices.temporaryDirectoryManager.getOrCreateTempDirectory(PIR_OUTPUT_DIR_NAME)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getMinificationJsArtifactsOutputDir(testServices: TestServices): File {
|
fun getMinificationJsArtifactsOutputDir(testServices: TestServices): File {
|
||||||
return testServices.temporaryDirectoryManager.getOrCreateTempDirectory(MINIFICATION_OUTPUT_DIR_NAME)
|
return testServices.temporaryDirectoryManager.getOrCreateTempDirectory(MINIFICATION_OUTPUT_DIR_NAME)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -262,7 +262,6 @@ fun Test.setUpBoxTests() {
|
|||||||
|
|
||||||
projectTest(parallel = true, jUnitMode = JUnitMode.JUnit5) {
|
projectTest(parallel = true, jUnitMode = JUnitMode.JUnit5) {
|
||||||
setUpJsBoxTests(jsEnabled = true, jsIrEnabled = true)
|
setUpJsBoxTests(jsEnabled = true, jsIrEnabled = true)
|
||||||
systemProperty("kotlin.js.ir.pir", "false")
|
|
||||||
maxHeapSize = "3g"
|
maxHeapSize = "3g"
|
||||||
|
|
||||||
inputs.dir(rootDir.resolve("compiler/cli/cli-common/resources")) // compiler.xml
|
inputs.dir(rootDir.resolve("compiler/cli/cli-common/resources")) // compiler.xml
|
||||||
@@ -275,21 +274,17 @@ projectTest(parallel = true, jUnitMode = JUnitMode.JUnit5) {
|
|||||||
|
|
||||||
outputs.dir("$buildDir/out")
|
outputs.dir("$buildDir/out")
|
||||||
outputs.dir("$buildDir/out-min")
|
outputs.dir("$buildDir/out-min")
|
||||||
outputs.dir("$buildDir/out-pir")
|
|
||||||
|
|
||||||
configureTestDistribution()
|
configureTestDistribution()
|
||||||
}
|
}
|
||||||
|
|
||||||
projectTest("jsTest", parallel = true, jUnitMode = JUnitMode.JUnit5) {
|
projectTest("jsTest", parallel = true, jUnitMode = JUnitMode.JUnit5) {
|
||||||
// PIR temporary disabled
|
|
||||||
systemProperty("kotlin.js.ir.pir", "false")
|
|
||||||
setUpJsBoxTests(jsEnabled = true, jsIrEnabled = false)
|
setUpJsBoxTests(jsEnabled = true, jsIrEnabled = false)
|
||||||
maxHeapSize = "3g"
|
maxHeapSize = "3g"
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
}
|
}
|
||||||
|
|
||||||
projectTest("jsIrTest", true, jUnitMode = JUnitMode.JUnit5) {
|
projectTest("jsIrTest", true, jUnitMode = JUnitMode.JUnit5) {
|
||||||
systemProperty("kotlin.js.ir.pir", "false")
|
|
||||||
setUpJsBoxTests(jsEnabled = false, jsIrEnabled = true)
|
setUpJsBoxTests(jsEnabled = false, jsIrEnabled = true)
|
||||||
maxHeapSize = "3g"
|
maxHeapSize = "3g"
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
|
|||||||
@@ -83,7 +83,6 @@ abstract class BasicBoxTest(
|
|||||||
private val pathToRootOutputDir = System.getProperty("kotlin.js.test.root.out.dir") ?: error("'kotlin.js.test.root.out.dir' is not set")
|
private val pathToRootOutputDir = System.getProperty("kotlin.js.test.root.out.dir") ?: error("'kotlin.js.test.root.out.dir' is not set")
|
||||||
private val testGroupOutputDirForCompilation = File(pathToRootOutputDir + "out/" + testGroupOutputDirPrefix)
|
private val testGroupOutputDirForCompilation = File(pathToRootOutputDir + "out/" + testGroupOutputDirPrefix)
|
||||||
private val testGroupOutputDirForMinification = File(pathToRootOutputDir + "out-min/" + testGroupOutputDirPrefix)
|
private val testGroupOutputDirForMinification = File(pathToRootOutputDir + "out-min/" + testGroupOutputDirPrefix)
|
||||||
private val testGroupOutputDirForPir = File(pathToRootOutputDir + "out-pir/" + testGroupOutputDirPrefix)
|
|
||||||
|
|
||||||
protected open fun getOutputPrefixFile(testFilePath: String): File? = null
|
protected open fun getOutputPrefixFile(testFilePath: String): File? = null
|
||||||
protected open fun getOutputPostfixFile(testFilePath: String): File? = null
|
protected open fun getOutputPostfixFile(testFilePath: String): File? = null
|
||||||
@@ -93,7 +92,6 @@ abstract class BasicBoxTest(
|
|||||||
|
|
||||||
protected open val skipRegularMode: Boolean = false
|
protected open val skipRegularMode: Boolean = false
|
||||||
protected open val runIrDce: Boolean = false
|
protected open val runIrDce: Boolean = false
|
||||||
protected open val runIrPir: Boolean = false
|
|
||||||
|
|
||||||
protected open val incrementalCompilationChecksEnabled = true
|
protected open val incrementalCompilationChecksEnabled = true
|
||||||
|
|
||||||
@@ -129,7 +127,6 @@ abstract class BasicBoxTest(
|
|||||||
|
|
||||||
val outputDir = getOutputDir(file)
|
val outputDir = getOutputDir(file)
|
||||||
val dceOutputDir = getOutputDir(file, testGroupOutputDirForMinification)
|
val dceOutputDir = getOutputDir(file, testGroupOutputDirForMinification)
|
||||||
val pirOutputDir = getOutputDir(file, testGroupOutputDirForPir)
|
|
||||||
val fileContent = KtTestUtil.doLoadFile(file)
|
val fileContent = KtTestUtil.doLoadFile(file)
|
||||||
|
|
||||||
val needsFullIrRuntime = KJS_WITH_FULL_RUNTIME.matcher(fileContent).find() || WITH_RUNTIME.matcher(fileContent).find() || WITH_STDLIB.matcher(fileContent).find()
|
val needsFullIrRuntime = KJS_WITH_FULL_RUNTIME.matcher(fileContent).find() || WITH_RUNTIME.matcher(fileContent).find() || WITH_STDLIB.matcher(fileContent).find()
|
||||||
@@ -219,7 +216,6 @@ abstract class BasicBoxTest(
|
|||||||
|
|
||||||
val outputFileName = module.outputFileName(outputDir) + ".js"
|
val outputFileName = module.outputFileName(outputDir) + ".js"
|
||||||
val dceOutputFileName = module.outputFileName(dceOutputDir) + ".js"
|
val dceOutputFileName = module.outputFileName(dceOutputDir) + ".js"
|
||||||
val pirOutputFileName = module.outputFileName(pirOutputDir) + ".js"
|
|
||||||
val abiVersion = module.abiVersion
|
val abiVersion = module.abiVersion
|
||||||
val isMainModule = mainModuleName == module.name
|
val isMainModule = mainModuleName == module.name
|
||||||
|
|
||||||
@@ -230,7 +226,6 @@ abstract class BasicBoxTest(
|
|||||||
module,
|
module,
|
||||||
outputFileName,
|
outputFileName,
|
||||||
dceOutputFileName,
|
dceOutputFileName,
|
||||||
pirOutputFileName,
|
|
||||||
dependencies,
|
dependencies,
|
||||||
allDependencies,
|
allDependencies,
|
||||||
friends,
|
friends,
|
||||||
@@ -350,10 +345,6 @@ abstract class BasicBoxTest(
|
|||||||
runIrEsmTests(dceOutputDir.getTestDir())
|
runIrEsmTests(dceOutputDir.getTestDir())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (runIrPir && !skipDceDriven) {
|
|
||||||
runIrEsmTests(pirOutputDir.getTestDir())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (esModules)
|
if (esModules)
|
||||||
@@ -379,14 +370,6 @@ abstract class BasicBoxTest(
|
|||||||
)
|
)
|
||||||
} + commonFiles + additionalMainFiles + inputJsFilesAfter
|
} + commonFiles + additionalMainFiles + inputJsFilesAfter
|
||||||
|
|
||||||
val pirAllJsFiles = additionalFiles + inputJsFilesBefore + generatedJsFiles.map {
|
|
||||||
it.first.replace(
|
|
||||||
outputDir.absolutePath,
|
|
||||||
pirOutputDir.absolutePath
|
|
||||||
)
|
|
||||||
} + commonFiles + additionalMainFiles + inputJsFilesAfter
|
|
||||||
|
|
||||||
|
|
||||||
val dontRunGeneratedCode = InTextDirectivesUtils.dontRunGeneratedCode(targetBackend, file)
|
val dontRunGeneratedCode = InTextDirectivesUtils.dontRunGeneratedCode(targetBackend, file)
|
||||||
if (!dontRunGeneratedCode && generateNodeJsRunner && !SKIP_NODE_JS.matcher(fileContent).find()) {
|
if (!dontRunGeneratedCode && generateNodeJsRunner && !SKIP_NODE_JS.matcher(fileContent).find()) {
|
||||||
val nodeRunnerName = mainModule.outputFileName(outputDir) + ".node.js"
|
val nodeRunnerName = mainModule.outputFileName(outputDir) + ".node.js"
|
||||||
@@ -403,10 +386,6 @@ abstract class BasicBoxTest(
|
|||||||
runGeneratedCode(dceAllJsFiles, testModuleName, testPackage, testFunction, expectedResult, withModuleSystem)
|
runGeneratedCode(dceAllJsFiles, testModuleName, testPackage, testFunction, expectedResult, withModuleSystem)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (runIrPir && !skipDceDriven) {
|
|
||||||
runGeneratedCode(pirAllJsFiles, testModuleName, testPackage, testFunction, expectedResult, withModuleSystem)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
performAdditionalChecks(generatedJsFiles.map { it.first }, outputPrefixFile, outputPostfixFile)
|
performAdditionalChecks(generatedJsFiles.map { it.first }, outputPrefixFile, outputPostfixFile)
|
||||||
@@ -472,7 +451,6 @@ abstract class BasicBoxTest(
|
|||||||
module: TestModule,
|
module: TestModule,
|
||||||
outputFileName: String,
|
outputFileName: String,
|
||||||
dceOutputFileName: String,
|
dceOutputFileName: String,
|
||||||
pirOutputFileName: String,
|
|
||||||
dependencies: List<String>,
|
dependencies: List<String>,
|
||||||
allDependencies: List<String>,
|
allDependencies: List<String>,
|
||||||
friends: List<String>,
|
friends: List<String>,
|
||||||
@@ -520,14 +498,12 @@ abstract class BasicBoxTest(
|
|||||||
)
|
)
|
||||||
val outputFile = File(outputFileName)
|
val outputFile = File(outputFileName)
|
||||||
val dceOutputFile = File(dceOutputFileName)
|
val dceOutputFile = File(dceOutputFileName)
|
||||||
val pirOutputFile = File(pirOutputFileName)
|
|
||||||
|
|
||||||
val incrementalData = IncrementalData()
|
val incrementalData = IncrementalData()
|
||||||
translateFiles(
|
translateFiles(
|
||||||
psiFiles.map(TranslationUnit::SourceFile),
|
psiFiles.map(TranslationUnit::SourceFile),
|
||||||
outputFile,
|
outputFile,
|
||||||
dceOutputFile,
|
dceOutputFile,
|
||||||
pirOutputFile,
|
|
||||||
config,
|
config,
|
||||||
outputPrefixFile,
|
outputPrefixFile,
|
||||||
outputPostfixFile,
|
outputPostfixFile,
|
||||||
@@ -632,7 +608,6 @@ abstract class BasicBoxTest(
|
|||||||
translationUnits,
|
translationUnits,
|
||||||
recompiledOutputFile,
|
recompiledOutputFile,
|
||||||
recompiledOutputFile,
|
recompiledOutputFile,
|
||||||
recompiledOutputFile,
|
|
||||||
recompiledConfig,
|
recompiledConfig,
|
||||||
outputPrefixFile,
|
outputPrefixFile,
|
||||||
outputPostfixFile,
|
outputPostfixFile,
|
||||||
@@ -720,7 +695,6 @@ abstract class BasicBoxTest(
|
|||||||
units: List<TranslationUnit>,
|
units: List<TranslationUnit>,
|
||||||
outputFile: File,
|
outputFile: File,
|
||||||
dceOutputFile: File,
|
dceOutputFile: File,
|
||||||
pirOutputFile: File,
|
|
||||||
config: JsConfig,
|
config: JsConfig,
|
||||||
outputPrefixFile: File?,
|
outputPrefixFile: File?,
|
||||||
outputPostfixFile: File?,
|
outputPostfixFile: File?,
|
||||||
|
|||||||
@@ -177,8 +177,6 @@ abstract class BasicIrBoxTest(
|
|||||||
|
|
||||||
override val runIrDce: Boolean = getBoolean("kotlin.js.ir.dce", true)
|
override val runIrDce: Boolean = getBoolean("kotlin.js.ir.dce", true)
|
||||||
|
|
||||||
override val runIrPir: Boolean = !lowerPerModule && getBoolean("kotlin.js.ir.pir", true)
|
|
||||||
|
|
||||||
val perModule: Boolean = getBoolean("kotlin.js.ir.perModule")
|
val perModule: Boolean = getBoolean("kotlin.js.ir.perModule")
|
||||||
|
|
||||||
// TODO Design incremental compilation for IR and add test support
|
// TODO Design incremental compilation for IR and add test support
|
||||||
@@ -200,7 +198,6 @@ abstract class BasicIrBoxTest(
|
|||||||
units: List<TranslationUnit>,
|
units: List<TranslationUnit>,
|
||||||
outputFile: File,
|
outputFile: File,
|
||||||
dceOutputFile: File,
|
dceOutputFile: File,
|
||||||
pirOutputFile: File,
|
|
||||||
config: JsConfig,
|
config: JsConfig,
|
||||||
outputPrefixFile: File?,
|
outputPrefixFile: File?,
|
||||||
outputPostfixFile: File?,
|
outputPostfixFile: File?,
|
||||||
@@ -329,29 +326,6 @@ abstract class BasicIrBoxTest(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (runIrPir && !skipDceDriven) {
|
|
||||||
val ir = compileToLoweredIr(
|
|
||||||
config,
|
|
||||||
outputFile,
|
|
||||||
klibPath,
|
|
||||||
allKlibPaths + klibCannonPath,
|
|
||||||
friendPaths,
|
|
||||||
testPackage,
|
|
||||||
testFunction,
|
|
||||||
propertyLazyInitialization = propertyLazyInitialization,
|
|
||||||
skipMangleVerification = skipMangleVerification,
|
|
||||||
safeExternalBoolean = safeExternalBoolean,
|
|
||||||
safeExternalBooleanDiagnostic = safeExternalBooleanDiagnostic,
|
|
||||||
dceDriven = true,
|
|
||||||
granularity,
|
|
||||||
)
|
|
||||||
if (esModules) {
|
|
||||||
generateEsModules(ir, pirOutputFile.esModulesSubDir, granularity, config, customTestModule, mainArguments)
|
|
||||||
} else {
|
|
||||||
generateOldModuleSystems(ir.oldIr2Js(granularity, false, mainArguments), pirOutputFile, pirOutputFile, config, units)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -535,7 +509,6 @@ abstract class BasicIrBoxTest(
|
|||||||
|
|
||||||
val recompiledOutputFile = File(outputFile.parentFile, outputFile.nameWithoutExtension + "-recompiled.js")
|
val recompiledOutputFile = File(outputFile.parentFile, outputFile.nameWithoutExtension + "-recompiled.js")
|
||||||
val recompiledMinOutputFile = File(recompiledOutputFile.parentFile, recompiledOutputFile.nameWithoutExtension + "-min.js")
|
val recompiledMinOutputFile = File(recompiledOutputFile.parentFile, recompiledOutputFile.nameWithoutExtension + "-min.js")
|
||||||
val recompiledPirOutputFile = File(recompiledOutputFile.parentFile, recompiledOutputFile.nameWithoutExtension + "-pir.js")
|
|
||||||
val recompiledConfig = createConfig(
|
val recompiledConfig = createConfig(
|
||||||
sourceDirs,
|
sourceDirs,
|
||||||
module,
|
module,
|
||||||
@@ -553,7 +526,6 @@ abstract class BasicIrBoxTest(
|
|||||||
dirtyFiles.map { TranslationUnit.SourceFile(createPsiFile(it)) },
|
dirtyFiles.map { TranslationUnit.SourceFile(createPsiFile(it)) },
|
||||||
outputFile,
|
outputFile,
|
||||||
recompiledMinOutputFile,
|
recompiledMinOutputFile,
|
||||||
recompiledPirOutputFile,
|
|
||||||
recompiledConfig,
|
recompiledConfig,
|
||||||
outputPrefixFile,
|
outputPrefixFile,
|
||||||
outputPostfixFile,
|
outputPostfixFile,
|
||||||
|
|||||||
@@ -51,13 +51,11 @@ abstract class AbstractJsIrTest(
|
|||||||
with(builder) {
|
with(builder) {
|
||||||
defaultDirectives {
|
defaultDirectives {
|
||||||
val runIc = getBoolean("kotlin.js.ir.icMode")
|
val runIc = getBoolean("kotlin.js.ir.icMode")
|
||||||
val lowerPerModule = runIc || getBoolean("kotlin.js.ir.lowerPerModule")
|
|
||||||
if (runIc) +JsEnvironmentConfigurationDirectives.RUN_IC
|
if (runIc) +JsEnvironmentConfigurationDirectives.RUN_IC
|
||||||
if (lowerPerModule) +JsEnvironmentConfigurationDirectives.LOWER_PER_MODULE
|
if (runIc || getBoolean("kotlin.js.ir.lowerPerModule")) +JsEnvironmentConfigurationDirectives.LOWER_PER_MODULE
|
||||||
if (getBoolean("kotlin.js.ir.klibMainModule")) +JsEnvironmentConfigurationDirectives.KLIB_MAIN_MODULE
|
if (getBoolean("kotlin.js.ir.klibMainModule")) +JsEnvironmentConfigurationDirectives.KLIB_MAIN_MODULE
|
||||||
if (getBoolean("kotlin.js.ir.perModule")) +JsEnvironmentConfigurationDirectives.PER_MODULE
|
if (getBoolean("kotlin.js.ir.perModule")) +JsEnvironmentConfigurationDirectives.PER_MODULE
|
||||||
if (getBoolean("kotlin.js.ir.dce", true)) +JsEnvironmentConfigurationDirectives.RUN_IR_DCE
|
if (getBoolean("kotlin.js.ir.dce", true)) +JsEnvironmentConfigurationDirectives.RUN_IR_DCE
|
||||||
if (!lowerPerModule && getBoolean("kotlin.js.ir.pir", true)) +JsEnvironmentConfigurationDirectives.RUN_IR_PIR
|
|
||||||
}
|
}
|
||||||
|
|
||||||
configureJsArtifactsHandlersStep {
|
configureJsArtifactsHandlersStep {
|
||||||
|
|||||||
@@ -81,11 +81,9 @@ class JsIrBackendFacade(
|
|||||||
|
|
||||||
val testPackage = extractTestPackage(testServices)
|
val testPackage = extractTestPackage(testServices)
|
||||||
val lowerPerModule = JsEnvironmentConfigurationDirectives.LOWER_PER_MODULE in module.directives
|
val lowerPerModule = JsEnvironmentConfigurationDirectives.LOWER_PER_MODULE in module.directives
|
||||||
val runIrPir = JsEnvironmentConfigurationDirectives.RUN_IR_PIR in module.directives &&
|
|
||||||
JsEnvironmentConfigurationDirectives.SKIP_DCE_DRIVEN !in module.directives
|
|
||||||
val skipRegularMode = JsEnvironmentConfigurationDirectives.SKIP_REGULAR_MODE in module.directives
|
val skipRegularMode = JsEnvironmentConfigurationDirectives.SKIP_REGULAR_MODE in module.directives
|
||||||
|
|
||||||
if (skipRegularMode && !runIrPir) return null
|
if (skipRegularMode) return null
|
||||||
|
|
||||||
if (JsEnvironmentConfigurator.incrementalEnabledFor(module, testServices)) {
|
if (JsEnvironmentConfigurator.incrementalEnabledFor(module, testServices)) {
|
||||||
val outputFile = if (firstTimeCompilation) {
|
val outputFile = if (firstTimeCompilation) {
|
||||||
@@ -110,7 +108,7 @@ class JsIrBackendFacade(
|
|||||||
deserializer,
|
deserializer,
|
||||||
PhaseConfig(jsPhases), // TODO debug mode
|
PhaseConfig(jsPhases), // TODO debug mode
|
||||||
exportedDeclarations = setOf(FqName.fromSegments(listOfNotNull(testPackage, TEST_FUNCTION))),
|
exportedDeclarations = setOf(FqName.fromSegments(listOfNotNull(testPackage, TEST_FUNCTION))),
|
||||||
dceDriven = runIrPir,
|
dceDriven = false,
|
||||||
dceRuntimeDiagnostic = null,
|
dceRuntimeDiagnostic = null,
|
||||||
es6mode = false,
|
es6mode = false,
|
||||||
propertyLazyInitialization = JsEnvironmentConfigurationDirectives.PROPERTY_LAZY_INITIALIZATION in module.directives,
|
propertyLazyInitialization = JsEnvironmentConfigurationDirectives.PROPERTY_LAZY_INITIALIZATION in module.directives,
|
||||||
@@ -121,13 +119,12 @@ class JsIrBackendFacade(
|
|||||||
granularity = granularity
|
granularity = granularity
|
||||||
)
|
)
|
||||||
|
|
||||||
return loweredIr2JsArtifact(module, loweredIr, runIrPir, granularity)
|
return loweredIr2JsArtifact(module, loweredIr, granularity)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun loweredIr2JsArtifact(
|
private fun loweredIr2JsArtifact(
|
||||||
module: TestModule,
|
module: TestModule,
|
||||||
loweredIr: LoweredIr,
|
loweredIr: LoweredIr,
|
||||||
runIrPir: Boolean,
|
|
||||||
granularity: JsGenerationGranularity,
|
granularity: JsGenerationGranularity,
|
||||||
): BinaryArtifacts.Js? {
|
): BinaryArtifacts.Js? {
|
||||||
val generateDts = JsEnvironmentConfigurationDirectives.GENERATE_DTS in module.directives
|
val generateDts = JsEnvironmentConfigurationDirectives.GENERATE_DTS in module.directives
|
||||||
@@ -138,14 +135,12 @@ class JsIrBackendFacade(
|
|||||||
|
|
||||||
val outputFile = File(JsEnvironmentConfigurator.getJsModuleArtifactPath(testServices, module.name) + ".js")
|
val outputFile = File(JsEnvironmentConfigurator.getJsModuleArtifactPath(testServices, module.name) + ".js")
|
||||||
val dceOutputFile = File(JsEnvironmentConfigurator.getDceJsArtifactPath(testServices, module.name) + ".js")
|
val dceOutputFile = File(JsEnvironmentConfigurator.getDceJsArtifactPath(testServices, module.name) + ".js")
|
||||||
val pirOutputFile = File(JsEnvironmentConfigurator.getPirJsArtifactPath(testServices, module.name) + ".js")
|
|
||||||
val dontSkipDceDriven = JsEnvironmentConfigurationDirectives.SKIP_DCE_DRIVEN !in module.directives
|
|
||||||
if (!esModules) {
|
if (!esModules) {
|
||||||
val transformer = IrModuleToJsTransformer(
|
val transformer = IrModuleToJsTransformer(
|
||||||
loweredIr.context,
|
loweredIr.context,
|
||||||
mainArguments,
|
mainArguments,
|
||||||
fullJs = true,
|
fullJs = true,
|
||||||
dceJs = if (runIrPir && dontSkipDceDriven) false else runIrDce,
|
dceJs = runIrDce,
|
||||||
multiModule = granularity == JsGenerationGranularity.PER_MODULE,
|
multiModule = granularity == JsGenerationGranularity.PER_MODULE,
|
||||||
relativeRequirePath = false
|
relativeRequirePath = false
|
||||||
)
|
)
|
||||||
@@ -153,21 +148,14 @@ class JsIrBackendFacade(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val options = JsGenerationOptions(generatePackageJson = true, generateTypeScriptDefinitions = generateDts)
|
val options = JsGenerationOptions(generatePackageJson = true, generateTypeScriptDefinitions = generateDts)
|
||||||
if (dontSkipDceDriven) {
|
generateEsModules(loweredIr, jsOutputSink(outputFile.parentFile.esModulesSubDir), mainArguments, granularity, options)
|
||||||
generateEsModules(loweredIr, jsOutputSink(outputFile.parentFile.esModulesSubDir), mainArguments, granularity, options)
|
|
||||||
if (runIrDce) {
|
|
||||||
eliminateDeadDeclarations(loweredIr.allModules, loweredIr.context)
|
|
||||||
generateEsModules(loweredIr, jsOutputSink(dceOutputFile.parentFile.esModulesSubDir), mainArguments, granularity, options)
|
|
||||||
return BinaryArtifacts.Js.JsEsArtifact(outputFile, dceOutputFile).dump(module)
|
|
||||||
}
|
|
||||||
return BinaryArtifacts.Js.JsEsArtifact(outputFile, null).dump(module)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (runIrPir && dontSkipDceDriven) {
|
if (runIrDce) {
|
||||||
generateEsModules(loweredIr, jsOutputSink(pirOutputFile.parentFile.esModulesSubDir), mainArguments, granularity, options)
|
eliminateDeadDeclarations(loweredIr.allModules, loweredIr.context)
|
||||||
return BinaryArtifacts.Js.JsEsArtifact(pirOutputFile, null).dump(module)
|
generateEsModules(loweredIr, jsOutputSink(dceOutputFile.parentFile.esModulesSubDir), mainArguments, granularity, options)
|
||||||
|
return BinaryArtifacts.Js.JsEsArtifact(outputFile, dceOutputFile).dump(module)
|
||||||
}
|
}
|
||||||
return null
|
return BinaryArtifacts.Js.JsEsArtifact(outputFile, null).dump(module)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun loadIrFromKlib(module: TestModule, configuration: CompilerConfiguration): IrModuleInfo {
|
private fun loadIrFromKlib(module: TestModule, configuration: CompilerConfiguration): IrModuleInfo {
|
||||||
@@ -252,20 +240,13 @@ class JsIrBackendFacade(
|
|||||||
val moduleId = configuration.getNotNull(CommonConfigurationKeys.MODULE_NAME)
|
val moduleId = configuration.getNotNull(CommonConfigurationKeys.MODULE_NAME)
|
||||||
val moduleKind = configuration.get(JSConfigurationKeys.MODULE_KIND, ModuleKind.PLAIN)
|
val moduleKind = configuration.get(JSConfigurationKeys.MODULE_KIND, ModuleKind.PLAIN)
|
||||||
val outputDceFile = File(JsEnvironmentConfigurator.getDceJsArtifactPath(testServices, module.name) + ".js")
|
val outputDceFile = File(JsEnvironmentConfigurator.getDceJsArtifactPath(testServices, module.name) + ".js")
|
||||||
val outputPirFile = File(JsEnvironmentConfigurator.getPirJsArtifactPath(testServices, module.name) + ".js")
|
|
||||||
|
|
||||||
val generateDts = JsEnvironmentConfigurationDirectives.GENERATE_DTS in module.directives
|
val generateDts = JsEnvironmentConfigurationDirectives.GENERATE_DTS in module.directives
|
||||||
val runIrPir = JsEnvironmentConfigurationDirectives.RUN_IR_PIR in module.directives
|
|
||||||
val dontSkipDceDriven = JsEnvironmentConfigurationDirectives.SKIP_DCE_DRIVEN !in module.directives
|
|
||||||
val dontSkipRegularMode = JsEnvironmentConfigurationDirectives.SKIP_REGULAR_MODE !in module.directives
|
val dontSkipRegularMode = JsEnvironmentConfigurationDirectives.SKIP_REGULAR_MODE !in module.directives
|
||||||
|
|
||||||
if (dontSkipRegularMode) {
|
if (dontSkipRegularMode) {
|
||||||
compilerResult.outputs!!.writeTo(outputFile, moduleId, moduleKind)
|
compilerResult.outputs!!.writeTo(outputFile, moduleId, moduleKind)
|
||||||
compilerResult.outputsAfterDce?.writeTo(outputDceFile, moduleId, moduleKind)
|
compilerResult.outputsAfterDce?.writeTo(outputDceFile, moduleId, moduleKind)
|
||||||
} else if (runIrPir && dontSkipDceDriven) {
|
|
||||||
compilerResult.outputs!!.writeTo(outputPirFile, moduleId, moduleKind)
|
|
||||||
} else {
|
|
||||||
TODO("unreachable")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (generateDts) {
|
if (generateDts) {
|
||||||
|
|||||||
@@ -29,16 +29,13 @@ class JsArtifactsDumpHandler(testServices: TestServices) : JsBinaryArtifactHandl
|
|||||||
|
|
||||||
val testGroupOutputDirForCompilation = File(pathToRootOutputDir + "out/" + testGroupOutputDirPrefix)
|
val testGroupOutputDirForCompilation = File(pathToRootOutputDir + "out/" + testGroupOutputDirPrefix)
|
||||||
val testGroupOutputDirForMinification = File(pathToRootOutputDir + "out-min/" + testGroupOutputDirPrefix)
|
val testGroupOutputDirForMinification = File(pathToRootOutputDir + "out-min/" + testGroupOutputDirPrefix)
|
||||||
val testGroupOutputDirForPir = File(pathToRootOutputDir + "out-pir/" + testGroupOutputDirPrefix)
|
|
||||||
|
|
||||||
val outputDir = getOutputDir(originalFile, testGroupOutputDirForCompilation, stopFile)
|
val outputDir = getOutputDir(originalFile, testGroupOutputDirForCompilation, stopFile)
|
||||||
val dceOutputDir = getOutputDir(originalFile, testGroupOutputDirForMinification, stopFile)
|
val dceOutputDir = getOutputDir(originalFile, testGroupOutputDirForMinification, stopFile)
|
||||||
val pirOutputDir = getOutputDir(originalFile, testGroupOutputDirForPir, stopFile)
|
|
||||||
val minOutputDir = File(dceOutputDir, originalFile.nameWithoutExtension)
|
val minOutputDir = File(dceOutputDir, originalFile.nameWithoutExtension)
|
||||||
|
|
||||||
copy(JsEnvironmentConfigurator.getJsArtifactsOutputDir(testServices), outputDir)
|
copy(JsEnvironmentConfigurator.getJsArtifactsOutputDir(testServices), outputDir)
|
||||||
copy(JsEnvironmentConfigurator.getDceJsArtifactsOutputDir(testServices), dceOutputDir)
|
copy(JsEnvironmentConfigurator.getDceJsArtifactsOutputDir(testServices), dceOutputDir)
|
||||||
copy(JsEnvironmentConfigurator.getPirJsArtifactsOutputDir(testServices), pirOutputDir)
|
|
||||||
copy(JsEnvironmentConfigurator.getMinificationJsArtifactsOutputDir(testServices), minOutputDir)
|
copy(JsEnvironmentConfigurator.getMinificationJsArtifactsOutputDir(testServices), minOutputDir)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,19 +33,17 @@ class JsBoxRunner(testServices: TestServices) : AbstractJsArtifactsCollector(tes
|
|||||||
|
|
||||||
if (dontRunGeneratedCode) return
|
if (dontRunGeneratedCode) return
|
||||||
|
|
||||||
val (allJsFiles, dceAllJsFiles, pirAllJsFiles) = getAllFilesForRunner(testServices, modulesToArtifact)
|
val (allJsFiles, dceAllJsFiles) = getAllFilesForRunner(testServices, modulesToArtifact)
|
||||||
|
|
||||||
val withModuleSystem = testWithModuleSystem(testServices)
|
val withModuleSystem = testWithModuleSystem(testServices)
|
||||||
val testModuleName = getTestModuleName(testServices)
|
val testModuleName = getTestModuleName(testServices)
|
||||||
val testPackage = extractTestPackage(testServices)
|
val testPackage = extractTestPackage(testServices)
|
||||||
|
|
||||||
val dontSkipRegularMode = JsEnvironmentConfigurationDirectives.SKIP_REGULAR_MODE !in globalDirectives
|
val dontSkipRegularMode = JsEnvironmentConfigurationDirectives.SKIP_REGULAR_MODE !in globalDirectives
|
||||||
val dontSkipDceDriven = JsEnvironmentConfigurationDirectives.SKIP_DCE_DRIVEN !in globalDirectives
|
|
||||||
val dontSkipIrIc = JsEnvironmentConfigurationDirectives.SKIP_IR_INCREMENTAL_CHECKS !in globalDirectives
|
val dontSkipIrIc = JsEnvironmentConfigurationDirectives.SKIP_IR_INCREMENTAL_CHECKS !in globalDirectives
|
||||||
val recompile = testServices.moduleStructure.modules
|
val recompile = testServices.moduleStructure.modules
|
||||||
.flatMap { it.files }.any { JsEnvironmentConfigurationDirectives.RECOMPILE in it.directives }
|
.flatMap { it.files }.any { JsEnvironmentConfigurationDirectives.RECOMPILE in it.directives }
|
||||||
val runIrDce = JsEnvironmentConfigurationDirectives.RUN_IR_DCE in globalDirectives
|
val runIrDce = JsEnvironmentConfigurationDirectives.RUN_IR_DCE in globalDirectives
|
||||||
val runIrPir = JsEnvironmentConfigurationDirectives.RUN_IR_PIR in globalDirectives
|
|
||||||
if (dontSkipRegularMode) {
|
if (dontSkipRegularMode) {
|
||||||
runGeneratedCode(allJsFiles, testModuleName, testPackage, withModuleSystem)
|
runGeneratedCode(allJsFiles, testModuleName, testPackage, withModuleSystem)
|
||||||
|
|
||||||
@@ -53,10 +51,6 @@ class JsBoxRunner(testServices: TestServices) : AbstractJsArtifactsCollector(tes
|
|||||||
runGeneratedCode(dceAllJsFiles, testModuleName, testPackage, withModuleSystem)
|
runGeneratedCode(dceAllJsFiles, testModuleName, testPackage, withModuleSystem)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (runIrPir && dontSkipDceDriven) {
|
|
||||||
runGeneratedCode(pirAllJsFiles, testModuleName, testPackage, withModuleSystem)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun runEsCode() {
|
private fun runEsCode() {
|
||||||
@@ -64,22 +58,15 @@ class JsBoxRunner(testServices: TestServices) : AbstractJsArtifactsCollector(tes
|
|||||||
|
|
||||||
val esmOutputDir = JsEnvironmentConfigurator.getJsArtifactsOutputDir(testServices).esModulesSubDir
|
val esmOutputDir = JsEnvironmentConfigurator.getJsArtifactsOutputDir(testServices).esModulesSubDir
|
||||||
val esmDceOutputDir = JsEnvironmentConfigurator.getDceJsArtifactsOutputDir(testServices).esModulesSubDir
|
val esmDceOutputDir = JsEnvironmentConfigurator.getDceJsArtifactsOutputDir(testServices).esModulesSubDir
|
||||||
val esmPirOutputDir = JsEnvironmentConfigurator.getPirJsArtifactsOutputDir(testServices).esModulesSubDir
|
|
||||||
|
|
||||||
val dontSkipRegularMode = JsEnvironmentConfigurationDirectives.SKIP_REGULAR_MODE !in globalDirectives
|
val dontSkipRegularMode = JsEnvironmentConfigurationDirectives.SKIP_REGULAR_MODE !in globalDirectives
|
||||||
val dontSkipDceDriven = JsEnvironmentConfigurationDirectives.SKIP_DCE_DRIVEN !in globalDirectives
|
|
||||||
val runIrDce = JsEnvironmentConfigurationDirectives.RUN_IR_DCE in globalDirectives
|
val runIrDce = JsEnvironmentConfigurationDirectives.RUN_IR_DCE in globalDirectives
|
||||||
val runIrPir = JsEnvironmentConfigurationDirectives.RUN_IR_PIR in globalDirectives
|
|
||||||
if (dontSkipRegularMode) {
|
if (dontSkipRegularMode) {
|
||||||
singleRunEsCode(esmOutputDir)
|
singleRunEsCode(esmOutputDir)
|
||||||
if (runIrDce) {
|
if (runIrDce) {
|
||||||
singleRunEsCode(esmDceOutputDir)
|
singleRunEsCode(esmDceOutputDir)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (runIrPir && dontSkipDceDriven) {
|
|
||||||
singleRunEsCode(esmPirOutputDir)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun singleRunEsCode(esmOutputDir: File) {
|
private fun singleRunEsCode(esmOutputDir: File) {
|
||||||
|
|||||||
@@ -93,11 +93,10 @@ fun testWithModuleSystem(testServices: TestServices): Boolean {
|
|||||||
|
|
||||||
fun getAllFilesForRunner(
|
fun getAllFilesForRunner(
|
||||||
testServices: TestServices, modulesToArtifact: Map<TestModule, BinaryArtifacts.Js>
|
testServices: TestServices, modulesToArtifact: Map<TestModule, BinaryArtifacts.Js>
|
||||||
): Triple<List<String>, List<String>, List<String>> {
|
): Pair<List<String>, List<String>> {
|
||||||
val originalFile = testServices.moduleStructure.originalTestDataFiles.first()
|
val originalFile = testServices.moduleStructure.originalTestDataFiles.first()
|
||||||
val outputDir = JsEnvironmentConfigurator.getJsArtifactsOutputDir(testServices)
|
val outputDir = JsEnvironmentConfigurator.getJsArtifactsOutputDir(testServices)
|
||||||
val dceOutputDir = JsEnvironmentConfigurator.getDceJsArtifactsOutputDir(testServices)
|
val dceOutputDir = JsEnvironmentConfigurator.getDceJsArtifactsOutputDir(testServices)
|
||||||
val pirOutputDir = JsEnvironmentConfigurator.getPirJsArtifactsOutputDir(testServices)
|
|
||||||
|
|
||||||
val commonFiles = JsAdditionalSourceProvider.getAdditionalJsFiles(originalFile.parent).map { it.absolutePath }
|
val commonFiles = JsAdditionalSourceProvider.getAdditionalJsFiles(originalFile.parent).map { it.absolutePath }
|
||||||
val (inputJsFilesBefore, inputJsFilesAfter) = extractJsFiles(testServices, testServices.moduleStructure.modules)
|
val (inputJsFilesBefore, inputJsFilesAfter) = extractJsFiles(testServices, testServices.moduleStructure.modules)
|
||||||
@@ -113,13 +112,11 @@ fun getAllFilesForRunner(
|
|||||||
}
|
}
|
||||||
} ?: emptyList()
|
} ?: emptyList()
|
||||||
val dceJsFiles = (klibDependencies + artifactsPaths).map { it.replace(outputDir.absolutePath, dceOutputDir.absolutePath) }
|
val dceJsFiles = (klibDependencies + artifactsPaths).map { it.replace(outputDir.absolutePath, dceOutputDir.absolutePath) }
|
||||||
val pirJsFiles = (klibDependencies + artifactsPaths).map { it.replace(outputDir.absolutePath, pirOutputDir.absolutePath) }
|
|
||||||
|
|
||||||
val allJsFiles = additionalFiles + inputJsFilesBefore + klibDependencies + artifactsPaths + commonFiles + additionalMainFiles + inputJsFilesAfter
|
val allJsFiles = additionalFiles + inputJsFilesBefore + klibDependencies + artifactsPaths + commonFiles + additionalMainFiles + inputJsFilesAfter
|
||||||
val dceAllJsFiles = additionalFiles + inputJsFilesBefore + dceJsFiles + commonFiles + additionalMainFiles + inputJsFilesAfter
|
val dceAllJsFiles = additionalFiles + inputJsFilesBefore + dceJsFiles + commonFiles + additionalMainFiles + inputJsFilesAfter
|
||||||
val pirAllJsFiles = additionalFiles + inputJsFilesBefore + pirJsFiles + commonFiles + additionalMainFiles + inputJsFilesAfter
|
|
||||||
|
|
||||||
return Triple(allJsFiles, dceAllJsFiles, pirAllJsFiles)
|
return Pair(allJsFiles, dceAllJsFiles)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun extractAllFilesForEsRunner(testServices: TestServices, esmOutputDir: File): Pair<List<String>, List<String>> {
|
fun extractAllFilesForEsRunner(testServices: TestServices, esmOutputDir: File): Pair<List<String>, List<String>> {
|
||||||
|
|||||||
Reference in New Issue
Block a user