From e0a0bd3079023782173713c6d3af86a5af5262cd Mon Sep 17 00:00:00 2001 From: Martin Robertson Date: Tue, 25 May 2010 13:34:48 +0100 Subject: [PATCH] - Add "onlyjar" target to skip UTs in build - Allow tracing of Test classes - Add exception tracing - UTs are currently broken!! --- org.intrace/build.xml | 13 ++-- .../org/intrace/agent/ClassTransformer.java | 16 +---- .../agent/InstrumentedClassWriter.java | 28 ++++++-- .../src/org/intrace/output/AgentHelper.java | 10 +++ .../output/IInstrumentationHandler.java | 2 + .../IInstrumentationHandlerAdapter.java | 6 ++ .../intrace/output/trace/TraceHandler.java | 64 +++++++++++++------ .../org/test/intrace/agent/AgentTest.java | 2 + .../org/test/intrace/agent/ArgCapture.java | 6 ++ 9 files changed, 105 insertions(+), 42 deletions(-) diff --git a/org.intrace/build.xml b/org.intrace/build.xml index 55a9d6e..243500b 100644 --- a/org.intrace/build.xml +++ b/org.intrace/build.xml @@ -122,9 +122,10 @@ + + - - + @@ -192,8 +193,8 @@ - - + + @@ -211,7 +212,7 @@ - + - + diff --git a/org.intrace/src/org/intrace/agent/ClassTransformer.java b/org.intrace/src/org/intrace/agent/ClassTransformer.java index bbddde7..520410f 100644 --- a/org.intrace/src/org/intrace/agent/ClassTransformer.java +++ b/org.intrace/src/org/intrace/agent/ClassTransformer.java @@ -141,12 +141,12 @@ public class ClassTransformer implements ClassFileTransformer // Don't modify self if (className.startsWith("org.intrace") - || className.startsWith("org.objectweb.asm")) + || className.contains("objectweb.asm")) { if (settings.isVerboseMode()) { System.out - .println("Ignoring class in org.intrace or org.objectweb.asm package: " + .println("Ignoring class in org.intrace or objectweb.asm package: " + className); } return false; @@ -162,18 +162,6 @@ public class ClassTransformer implements ClassFileTransformer return false; } - // Don't modify test classes - int p = className.lastIndexOf('$'); - if (className.endsWith("Test") || p > 0 - && className.substring(0, p).endsWith("Test")) - { - if (settings.isVerboseMode()) - { - System.out.println("Ignoring class name ending in Test: " + className); - } - return false; - } - // Don't modify classes which fail to match the regex if ((settings.getClassRegex() == null) || !settings.getClassRegex().matcher(className).matches()) diff --git a/org.intrace/src/org/intrace/agent/InstrumentedClassWriter.java b/org.intrace/src/org/intrace/agent/InstrumentedClassWriter.java index 2cb0ced..f397d36 100644 --- a/org.intrace/src/org/intrace/agent/InstrumentedClassWriter.java +++ b/org.intrace/src/org/intrace/agent/InstrumentedClassWriter.java @@ -71,13 +71,14 @@ public class InstrumentedClassWriter extends ClassWriter // Final method fields private final String methodName; private final String methodDescriptor; - private final int methodAccess; - private final Map labelLineNos = new HashMap(); - private final Set