Add possibility to dump lowered ir in tests before lowering execution
This commit is contained in:
+1
-1
@@ -113,7 +113,7 @@ fun <Data, Context> dumpToFile(
|
||||
val dumpStrategy = System.getProperty("org.jetbrains.kotlin.compiler.ir.dump.strategy")
|
||||
val extPrefix = if (dumpStrategy == "KotlinLike") "kt." else ""
|
||||
|
||||
val fileName = "${phaseIdFormatted}_${actionState.phase.name}.$extPrefix$fileExtension"
|
||||
val fileName = "${phaseIdFormatted}_${actionState.beforeOrAfter}.${actionState.phase.name}.$extPrefix$fileExtension"
|
||||
|
||||
File(directoryFile, fileName).writeText(dumpContent)
|
||||
}
|
||||
|
||||
+3
-1
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.test.backend.handlers
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.phaser.BeforeOrAfter
|
||||
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
|
||||
import org.jetbrains.kotlin.test.model.BinaryArtifacts
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
@@ -15,7 +16,7 @@ class PhasedIrDumpHandler(testServices: TestServices) : JvmBinaryArtifactHandler
|
||||
override fun processModule(module: TestModule, info: BinaryArtifacts.Jvm) {
|
||||
if (CodegenTestDirectives.DUMP_IR_FOR_GIVEN_PHASES !in module.directives) return
|
||||
val dumpDirectory = testServices.getOrCreateTempDirectory(DUMPED_IR_FOLDER_NAME)
|
||||
val dumpFiles = dumpDirectory.resolve(module.name).listFiles() ?: return
|
||||
val dumpFiles = dumpDirectory.resolve(module.name).listFiles()?.filter { it.name.contains(AFTER_PREFIX) } ?: return
|
||||
val testFile = module.files.first()
|
||||
val testDirectory = testFile.originalFile.parentFile
|
||||
val visitedFiles = mutableListOf<String>()
|
||||
@@ -38,5 +39,6 @@ class PhasedIrDumpHandler(testServices: TestServices) : JvmBinaryArtifactHandler
|
||||
|
||||
companion object {
|
||||
const val DUMPED_IR_FOLDER_NAME = "dumped_ir"
|
||||
val AFTER_PREFIX = BeforeOrAfter.AFTER.name
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -379,6 +379,7 @@ class JvmEnvironmentConfigurator(testServices: TestServices) : EnvironmentConfig
|
||||
if (phases.isNotEmpty()) {
|
||||
val phaseConfig = PhaseConfig(
|
||||
jvmPhases,
|
||||
toDumpStateBefore = phases,
|
||||
toDumpStateAfter = phases,
|
||||
dumpToDirectory = dumpDirectory.absolutePath
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user