[Test] Don't create separate .fir.txt file in BytecodeListingHandler if not necessary

This commit is contained in:
Dmitriy Novozhilov
2022-11-24 10:44:55 +02:00
committed by Space Team
parent 700a117476
commit dff5799c58
2 changed files with 20 additions and 23 deletions
@@ -1,13 +0,0 @@
@kotlin.Metadata
public final class AC {
// source: 'AC.kt'
private final field number: int
public method <init>(): void
public final @org.jetbrains.annotations.NotNull method getNumber(): java.lang.Number
}
@kotlin.Metadata
public interface AI {
// source: 'AI.kt'
public abstract @org.jetbrains.annotations.NotNull method getNumber(): java.lang.Number
}
@@ -44,19 +44,29 @@ class BytecodeListingHandler(testServices: TestServices) : JvmBinaryArtifactHand
if (multiModuleInfoDumper.isEmpty()) return
val sourceFile = testServices.moduleStructure.originalTestDataFiles.first()
val extension =
if (testServices.defaultsProvider.defaultFrontend == FrontendKinds.FIR && FIR_IDENTICAL !in testServices.moduleStructure.allDirectives) ".fir.txt" else ".txt"
val defaultTxtFile = sourceFile.withExtension(extension)
val defaultTxtFile = sourceFile.withExtension(".txt")
val irTxtFile = sourceFile.withSuffixAndExtension("_ir", ".txt")
val firTxtFile = sourceFile.withExtension(".fir.txt")
val isFir = testServices.defaultsProvider.defaultFrontend == FrontendKinds.FIR
val isIr = testServices.defaultsProvider.defaultTargetBackend?.isIR == true
val txtFile =
if (isIr) sourceFile.withSuffixAndExtension("_ir", extension).takeIf(File::exists) ?: defaultTxtFile
else defaultTxtFile
assertions.assertEqualsToFile(txtFile, multiModuleInfoDumper.generateResultingDump())
val actualFile = when {
isFir -> firTxtFile.takeIf { it.exists() } ?: irTxtFile.takeIf { it.exists() } ?: defaultTxtFile
isIr -> irTxtFile.takeIf { it.exists() } ?: defaultTxtFile
else -> defaultTxtFile
}
if (isIr && txtFile != defaultTxtFile) {
if (txtFile.readText() == defaultTxtFile.readText()) assertions.fail {
"JVM and JVM_IR golden files are identical. Remove $txtFile."
val goldenFile = when {
isFir -> irTxtFile.takeIf { it.exists() } ?: defaultTxtFile
else -> defaultTxtFile
}
assertions.assertEqualsToFile(actualFile, multiModuleInfoDumper.generateResultingDump())
if (actualFile != goldenFile) {
if (actualFile.readText().trim() == goldenFile.readText().trim()) assertions.fail {
"JVM and JVM_IR golden files are identical. Remove $actualFile."
}
}
}