From 77d8a745bda938d34429d6065ba960220f47a6ec Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 3 Dec 2013 21:33:55 +0400 Subject: [PATCH] Print the entire bytecode upon ASM verification failure --- .../tests/org/jetbrains/jet/codegen/CodegenTestCase.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java b/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java index 0d4c3ffc875..6b2e8bbb031 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java +++ b/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java @@ -224,14 +224,14 @@ public abstract class CodegenTestCase extends UsefulTestCase { private static boolean verifyAllFilesWithAsm(ClassFileFactory factory, ClassLoader loader) { boolean noErrors = true; for (OutputFile file : factory.asList()) { - noErrors &= verifyWithAsm(file.asByteArray(), loader); + noErrors &= verifyWithAsm(file, loader); } return noErrors; } - private static boolean verifyWithAsm(@NotNull byte[] bytecode, ClassLoader loader) { + private static boolean verifyWithAsm(@NotNull OutputFile file, ClassLoader loader) { ClassNode classNode = new ClassNode(); - new ClassReader(bytecode).accept(classNode, 0); + new ClassReader(file.asByteArray()).accept(classNode, 0); SimpleVerifier verifier = new SimpleVerifier(); verifier.setClassLoader(loader); @@ -243,6 +243,8 @@ public abstract class CodegenTestCase extends UsefulTestCase { analyzer.analyze(classNode.name, method); } catch (AnalyzerException e) { + System.out.println(file.asText()); + System.err.println(classNode.name + "::" + method.name + method.desc); // Print the erroneous instruction