Mercurial > hg > graal-compiler
changeset 16840:71f3c23158c9
class verification errors cause CheckGraalInvariants to fail
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 15 Aug 2014 11:28:46 +0200 |
parents | 7eca83fd5419 |
children | cbd42807a31f |
files | graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/CheckGraalInvariants.java |
diffstat | 1 files changed, 15 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/CheckGraalInvariants.java Thu Aug 14 23:45:15 2014 +0200 +++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/CheckGraalInvariants.java Fri Aug 15 11:28:46 2014 +0200 @@ -40,6 +40,7 @@ import com.oracle.graal.debug.*; import com.oracle.graal.graph.*; import com.oracle.graal.java.*; +import com.oracle.graal.nodeinfo.*; import com.oracle.graal.nodes.*; import com.oracle.graal.phases.*; import com.oracle.graal.phases.VerifyPhase.VerificationError; @@ -114,7 +115,13 @@ for (String className : classNames) { try { Class<?> c = Class.forName(className, false, CheckGraalInvariants.class.getClassLoader()); - executor.execute(() -> checkClass(c, metaAccess)); + executor.execute(() -> { + try { + checkClass(c, metaAccess); + } catch (Throwable e) { + errors.add(String.format("Error while checking %s:%n%s", className, printStackTraceToString(e))); + } + }); for (Method m : c.getDeclaredMethods()) { if (Modifier.isNative(m.getModifiers()) || Modifier.isAbstract(m.getModifiers())) { @@ -138,9 +145,7 @@ // Graal bail outs on certain patterns in Java bytecode (e.g., // unbalanced monitors introduced by jacoco). } catch (Throwable e) { - StringWriter sw = new StringWriter(); - e.printStackTrace(new PrintWriter(sw)); - errors.add(String.format("Error while checking %s:%n%s", methodName, sw)); + errors.add(String.format("Error while checking %s:%n%s", methodName, printStackTraceToString(e))); } }); } @@ -218,4 +223,10 @@ } return false; } + + private static String printStackTraceToString(Throwable t) { + StringWriter sw = new StringWriter(); + t.printStackTrace(new PrintWriter(sw)); + return sw.toString(); + } }