[JS IR] Write JS files before verification of dirty JS in IC tests

This commit is contained in:
Alexander Korepanov
2023-01-23 15:41:54 +01:00
committed by Space Team
parent 1ec88ff560
commit 0785b45426
@@ -247,17 +247,10 @@ abstract class AbstractInvalidationTest(
}
private fun verifyJsCode(stepId: Int, mainModuleName: String, jsOutput: CompilationOutputs) {
val compiledJsFiles = jsOutput.writeAll(jsDir, mainModuleName, true, mainModuleName, JS_MODULE_KIND).filter {
it.extension == "js"
}
for (jsCodeFile in compiledJsFiles) {
jsCodeFile.writeAsJsModule(jsCodeFile.readText(), "./${jsCodeFile.name}")
}
private fun verifyJsCode(stepId: Int, mainModuleName: String, jsFiles: List<String>) {
try {
V8IrJsTestChecker.checkWithTestFunctionArgs(
files = compiledJsFiles.mapTo(prepareExternalJsFiles()) { it.absolutePath },
files = jsFiles,
testModuleName = "./$mainModuleName.js",
testPackageName = null,
testFunctionName = BOX_FUNCTION_NAME,
@@ -300,6 +293,17 @@ abstract class AbstractInvalidationTest(
)
}
private fun writeJsCode(mainModuleName: String, jsOutput: CompilationOutputs): List<String> {
val compiledJsFiles = jsOutput.writeAll(jsDir, mainModuleName, true, mainModuleName, JS_MODULE_KIND).filter {
it.extension == "js"
}
for (jsCodeFile in compiledJsFiles) {
jsCodeFile.writeAsJsModule(jsCodeFile.readText(), "./${jsCodeFile.name}")
}
return compiledJsFiles.mapTo(prepareExternalJsFiles()) { it.absolutePath }
}
fun execute() {
for (projStep in projectInfo.steps) {
val testInfo = projStep.order.map { setupTestStep(projStep, it, true) }
@@ -345,8 +349,10 @@ abstract class AbstractInvalidationTest(
)
val (jsOutput, rebuiltModules) = jsExecutableProducer.buildExecutable(multiModule = true, outJsProgram = true)
val writtenFiles = writeJsCode(mainModuleName, jsOutput)
verifyJsExecutableProducerBuildModules(projStep.id, rebuiltModules, projStep.dirtyJS)
verifyJsCode(projStep.id, mainModuleName, jsOutput)
verifyJsCode(projStep.id, mainModuleName, writtenFiles)
verifyDTS(projStep.id, testInfo)
}
}