From 93f67616718a30c72eddf0414971209c5ef70421 Mon Sep 17 00:00:00 2001 From: Michael Bogdanov Date: Fri, 8 Jul 2016 15:51:17 +0300 Subject: [PATCH] Print bytecode on linenumber test fail --- .../codegen/AbstractLineNumberTest.java | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/compiler/tests-common/org/jetbrains/kotlin/codegen/AbstractLineNumberTest.java b/compiler/tests-common/org/jetbrains/kotlin/codegen/AbstractLineNumberTest.java index 83343064f7d..6c387dd72a1 100644 --- a/compiler/tests-common/org/jetbrains/kotlin/codegen/AbstractLineNumberTest.java +++ b/compiler/tests-common/org/jetbrains/kotlin/codegen/AbstractLineNumberTest.java @@ -43,6 +43,8 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; +import static org.jetbrains.kotlin.codegen.CodegenTestUtil.generateFiles; + public abstract class AbstractLineNumberTest extends TestCaseWithTmpdir { private static final String LINE_NUMBER_FUN = "lineNumber"; private static final Pattern TEST_LINE_NUMBER_PATTERN = Pattern.compile("^.*test." + LINE_NUMBER_FUN + "\\(\\).*$"); @@ -97,16 +99,21 @@ public abstract class AbstractLineNumberTest extends TestCaseWithTmpdir { ClassFileFactory classFileFactory = GenerationUtils.compileFile(psiFile, environment); - if (custom) { - List actualLineNumbers = extractActualLineNumbersFromBytecode(classFileFactory, false); - String text = psiFile.getText(); - String newFileText = text.substring(0, text.indexOf("// ")) + getActualLineNumbersAsString(actualLineNumbers); - KotlinTestUtils.assertEqualsToFile(new File(filename), newFileText); - } - else { - List expectedLineNumbers = extractSelectedLineNumbersFromSource(psiFile); - List actualLineNumbers = extractActualLineNumbersFromBytecode(classFileFactory, true); - assertSameElements(actualLineNumbers, expectedLineNumbers); + try { + if (custom) { + List actualLineNumbers = extractActualLineNumbersFromBytecode(classFileFactory, false); + String text = psiFile.getText(); + String newFileText = text.substring(0, text.indexOf("// ")) + getActualLineNumbersAsString(actualLineNumbers); + KotlinTestUtils.assertEqualsToFile(new File(filename), newFileText); + } + else { + List expectedLineNumbers = extractSelectedLineNumbersFromSource(psiFile); + List actualLineNumbers = extractActualLineNumbersFromBytecode(classFileFactory, true); + assertSameElements(actualLineNumbers, expectedLineNumbers); + } + } catch (Throwable e) { + System.out.println(classFileFactory.createText()); + throw ExceptionUtilsKt.rethrow(e); } }