From 76e7a9ba4ac316f06c06ffdb7856dec6267d711d Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Fri, 27 Dec 2019 13:55:54 +0300 Subject: [PATCH] Generate instructions as text in case of other exceptions It makes possible to analyze what causes a failure if DxChecker.check fails --- .../kotlin/codegen/CodegenTestCase.java | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java index 90932214ab6..83f97b8cab3 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java @@ -521,20 +521,7 @@ public abstract class CodegenTestCase extends KtUsefulTestCase { catch (TestsCompiletimeError e) { if (reportProblems) { e.getOriginal().printStackTrace(); - System.err.println("Generating instructions as text..."); - try { - if (classFileFactory == null) { - System.err.println("Cannot generate text: exception was thrown during generation"); - } - else { - System.err.println(classFileFactory.createText()); - } - } - catch (Throwable e1) { - System.err.println("Exception thrown while trying to generate text, the actual exception follows:"); - e1.printStackTrace(); - System.err.println("-----------------------------------------------------------------------------"); - } + generateInstructionsAsText(); System.err.println("See exceptions above"); } else { @@ -543,11 +530,31 @@ public abstract class CodegenTestCase extends KtUsefulTestCase { throw e; } catch (Throwable e) { + if (reportProblems) { + generateInstructionsAsText(); + } throw new TestsCompilerError(e); } return classFileFactory; } + private void generateInstructionsAsText() { + System.err.println("Generating instructions as text..."); + try { + if (classFileFactory == null) { + System.err.println("Cannot generate text: exception was thrown during generation"); + } + else { + System.err.println(classFileFactory.createText()); + } + } + catch (Throwable e1) { + System.err.println("Exception thrown while trying to generate text, the actual exception follows:"); + e1.printStackTrace(); + System.err.println("-----------------------------------------------------------------------------"); + } + } + protected boolean verifyWithDex() { return true; }