From c975fcb84769ba58cba7f0b87ef04cd6d8a08858 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 29 Nov 2013 12:50:56 +0400 Subject: [PATCH] Do not generate byte code to text twice --- .../jetbrains/jet/codegen/CodegenTestCase.java | 18 +++++++++++++----- .../generated/AbstractBlackBoxCodegenTest.java | 6 ++++-- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java b/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java index 45d6197736e..0d4c3ffc875 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java +++ b/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java @@ -38,7 +38,6 @@ import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.codegen.forTestCompile.ForTestCompileRuntime; import org.jetbrains.jet.lang.psi.JetPsiUtil; import org.jetbrains.jet.lang.resolve.name.FqName; -import org.jetbrains.jet.utils.ExceptionUtils; import java.io.File; import java.io.IOException; @@ -183,7 +182,8 @@ public abstract class CodegenTestCase extends UsefulTestCase { protected Class generateClass(@NotNull String name) { try { return generateAndCreateClassLoader().loadClass(name); - } catch (ClassNotFoundException e) { + } + catch (ClassNotFoundException e) { fail("No class file was generated for: " + name); return null; } @@ -198,16 +198,24 @@ public abstract class CodegenTestCase extends UsefulTestCase { if (DxChecker.RUN_DX_CHECKER) { DxChecker.check(classFileFactory); } - } catch (Throwable e) { + } + catch (Throwable e) { + e.printStackTrace(); + System.err.println("Generating instructions as text..."); try { - System.out.println(generateToText()); + if (classFileFactory == null) { + System.out.println("Cannot generate text: exception was thrown during generation"); + } + else { + System.out.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("-----------------------------------------------------------------------------"); } - throw ExceptionUtils.rethrow(e); + fail("See exceptions above"); } } return classFileFactory; diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/AbstractBlackBoxCodegenTest.java b/compiler/tests/org/jetbrains/jet/codegen/generated/AbstractBlackBoxCodegenTest.java index 7078050bb40..f7849796431 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/AbstractBlackBoxCodegenTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/AbstractBlackBoxCodegenTest.java @@ -94,11 +94,13 @@ public abstract class AbstractBlackBoxCodegenTest extends CodegenTestCase { JetFile firstFile = myFiles.getPsiFiles().get(0); String fqName = getPackageClassFqName(JetPsiUtil.getFQName(firstFile)).asString(); + Class aClass = generateClass(fqName); try { - Method method = generateClass(fqName).getMethod("box"); + Method method = aClass.getMethod("box"); String r = (String) method.invoke(null); assertEquals("OK", r); - } catch (Throwable e) { + } + catch (Throwable e) { System.out.println(generateToText()); throw ExceptionUtils.rethrow(e); }