From 5967befa6a3fd837aa5ee1467f55e0cbc8071e90 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 7 Apr 2014 20:40:47 +0400 Subject: [PATCH] Minor, catch all exceptions in asm verification in tests E.g. ClassFormatError --- .idea/inspectionProfiles/idea_default.xml | 2 +- .../jet/codegen/CodegenTestCase.java | 36 ++++++++++--------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/.idea/inspectionProfiles/idea_default.xml b/.idea/inspectionProfiles/idea_default.xml index 31ec7863b63..572ebbc570f 100644 --- a/.idea/inspectionProfiles/idea_default.xml +++ b/.idea/inspectionProfiles/idea_default.xml @@ -377,7 +377,7 @@ - + diff --git a/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java b/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java index b2c2532755b..37bacc700bb 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java +++ b/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java @@ -20,15 +20,6 @@ import com.google.common.collect.Lists; import com.intellij.openapi.util.io.FileUtil; import com.intellij.testFramework.UsefulTestCase; import org.jetbrains.annotations.NotNull; -import org.jetbrains.org.objectweb.asm.ClassReader; -import org.jetbrains.org.objectweb.asm.tree.ClassNode; -import org.jetbrains.org.objectweb.asm.tree.MethodNode; -import org.jetbrains.org.objectweb.asm.tree.analysis.Analyzer; -import org.jetbrains.org.objectweb.asm.tree.analysis.AnalyzerException; -import org.jetbrains.org.objectweb.asm.tree.analysis.BasicValue; -import org.jetbrains.org.objectweb.asm.tree.analysis.SimpleVerifier; -import org.jetbrains.org.objectweb.asm.util.Textifier; -import org.jetbrains.org.objectweb.asm.util.TraceMethodVisitor; import org.jetbrains.jet.ConfigurationKind; import org.jetbrains.jet.JetTestCaseBuilder; import org.jetbrains.jet.JetTestUtils; @@ -38,6 +29,15 @@ import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.codegen.forTestCompile.ForTestCompileRuntime; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.utils.UtilsPackage; +import org.jetbrains.org.objectweb.asm.ClassReader; +import org.jetbrains.org.objectweb.asm.tree.ClassNode; +import org.jetbrains.org.objectweb.asm.tree.MethodNode; +import org.jetbrains.org.objectweb.asm.tree.analysis.Analyzer; +import org.jetbrains.org.objectweb.asm.tree.analysis.AnalyzerException; +import org.jetbrains.org.objectweb.asm.tree.analysis.BasicValue; +import org.jetbrains.org.objectweb.asm.tree.analysis.SimpleVerifier; +import org.jetbrains.org.objectweb.asm.util.Textifier; +import org.jetbrains.org.objectweb.asm.util.TraceMethodVisitor; import java.io.File; import java.io.IOException; @@ -242,17 +242,19 @@ public abstract class CodegenTestCase extends UsefulTestCase { try { analyzer.analyze(classNode.name, method); } - catch (AnalyzerException e) { + catch (Throwable e) { System.out.println(file.asText()); - System.err.println(classNode.name + "::" + method.name + method.desc); - // Print the erroneous instruction - TraceMethodVisitor tmv = new TraceMethodVisitor(new Textifier()); - e.node.accept(tmv); - PrintWriter pw = new PrintWriter(System.err); - tmv.p.print(pw); - pw.flush(); + //noinspection InstanceofCatchParameter + if (e instanceof AnalyzerException) { + // Print the erroneous instruction + TraceMethodVisitor tmv = new TraceMethodVisitor(new Textifier()); + ((AnalyzerException) e).node.accept(tmv); + PrintWriter pw = new PrintWriter(System.err); + tmv.p.print(pw); + pw.flush(); + } e.printStackTrace(); noErrors = false;