[IR Test] Properly create empty dump for IR files witout source

This commit is contained in:
Dmitriy Novozhilov
2021-12-06 14:49:41 +03:00
committed by TeamCityServer
parent de783ad51f
commit 3519543831
3 changed files with 2 additions and 4 deletions
@@ -37,12 +37,13 @@ fun IrElement.dump(normalizeNames: Boolean = false, stableOrder: Boolean = false
} }
fun IrFile.dumpTreesFromLineNumber(lineNumber: Int, normalizeNames: Boolean = false): String { fun IrFile.dumpTreesFromLineNumber(lineNumber: Int, normalizeNames: Boolean = false): String {
if (shouldSkipDump()) return ""
val sb = StringBuilder() val sb = StringBuilder()
accept(DumpTreeFromSourceLineVisitor(fileEntry, lineNumber, sb, normalizeNames), null) accept(DumpTreeFromSourceLineVisitor(fileEntry, lineNumber, sb, normalizeNames), null)
return sb.toString() return sb.toString()
} }
fun IrFile.shouldSkipDump(): Boolean { private fun IrFile.shouldSkipDump(): Boolean {
val entry = fileEntry as? NaiveSourceBasedFileEntryImpl ?: return false val entry = fileEntry as? NaiveSourceBasedFileEntryImpl ?: return false
return entry.lineStartOffsetsAreEmpty return entry.lineStartOffsetsAreEmpty
} }
@@ -65,7 +65,6 @@ class IrTextDumpHandler(testServices: TestServices) : AbstractIrHandler(testServ
val builder = baseDumper.builderForModule(module) val builder = baseDumper.builderForModule(module)
for ((testFile, irFile) in testFileToIrFile) { for ((testFile, irFile) in testFileToIrFile) {
if (testFile?.directives?.contains(EXTERNAL_FILE) == true) continue if (testFile?.directives?.contains(EXTERNAL_FILE) == true) continue
if (irFile.shouldSkipDump()) continue
var actualDump = irFile.dumpTreesFromLineNumber(lineNumber = 0, normalizeNames = true) var actualDump = irFile.dumpTreesFromLineNumber(lineNumber = 0, normalizeNames = true)
if (actualDump.isEmpty()) { if (actualDump.isEmpty()) {
actualDump = irFile.dumpTreesFromLineNumber(lineNumber = UNDEFINED_OFFSET, normalizeNames = true) actualDump = irFile.dumpTreesFromLineNumber(lineNumber = UNDEFINED_OFFSET, normalizeNames = true)
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.test.backend.handlers
import org.jetbrains.kotlin.ir.IrVerifier import org.jetbrains.kotlin.ir.IrVerifier
import org.jetbrains.kotlin.ir.util.deepCopyWithSymbols import org.jetbrains.kotlin.ir.util.deepCopyWithSymbols
import org.jetbrains.kotlin.ir.util.dumpTreesFromLineNumber import org.jetbrains.kotlin.ir.util.dumpTreesFromLineNumber
import org.jetbrains.kotlin.ir.util.shouldSkipDump
import org.jetbrains.kotlin.test.backend.handlers.IrTextDumpHandler.Companion.groupWithTestFiles import org.jetbrains.kotlin.test.backend.handlers.IrTextDumpHandler.Companion.groupWithTestFiles
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
@@ -30,7 +29,6 @@ class IrTreeVerifierHandler(testServices: TestServices) : AbstractIrHandler(test
IrVerifier(assertions).verifyWithAssert(irFile) IrVerifier(assertions).verifyWithAssert(irFile)
if (irFile.shouldSkipDump()) continue
val actualDump = irFile.dumpTreesFromLineNumber(lineNumber = 0, normalizeNames = true) val actualDump = irFile.dumpTreesFromLineNumber(lineNumber = 0, normalizeNames = true)
val irFileCopy = irFile.deepCopyWithSymbols() val irFileCopy = irFile.deepCopyWithSymbols()