diff options
author | Marc R. Hoffmann <hoffmann@mountainminds.com> | 2010-05-10 15:58:36 +0000 |
---|---|---|
committer | Marc R. Hoffmann <hoffmann@mountainminds.com> | 2010-05-10 15:58:36 +0000 |
commit | 8bb03db8aeba94f9f061402f36139d977e7cc80c (patch) | |
tree | 691d54f2e84ad9d04d2daf0b6ba37d9fe0fa8b69 | |
parent | d3fc4dba8c28e019aa43a3f70f9db8cb9969e3fb (diff) | |
download | jacoco-8bb03db8aeba94f9f061402f36139d977e7cc80c.tar.gz |
Trac #94: Include id with ClassCoverage to allow linkage with execution data.
6 files changed, 34 insertions, 19 deletions
diff --git a/org.jacoco.core.test/src/org/jacoco/core/analysis/BundleCoverageTest.java b/org.jacoco.core.test/src/org/jacoco/core/analysis/BundleCoverageTest.java index 799ff91c..7e210dee 100644 --- a/org.jacoco.core.test/src/org/jacoco/core/analysis/BundleCoverageTest.java +++ b/org.jacoco.core.test/src/org/jacoco/core/analysis/BundleCoverageTest.java @@ -80,10 +80,10 @@ public class BundleCoverageTest { @Test
public void testGroupByPackage() {
Set<MethodCoverage> noMethods = Collections.emptySet();
- ClassCoverage ca = new ClassCoverage("p1/A", null, "java/lang/Object",
- new String[0], "A.java", noMethods);
- ClassCoverage cb = new ClassCoverage("p2/B", null, "java/lang/Object",
- new String[0], "B.java", noMethods);
+ ClassCoverage ca = new ClassCoverage("p1/A", 1, null,
+ "java/lang/Object", new String[0], "A.java", noMethods);
+ ClassCoverage cb = new ClassCoverage("p2/B", 2, null,
+ "java/lang/Object", new String[0], "B.java", noMethods);
SourceFileCoverage sb = new SourceFileCoverage("B.java", "p2");
SourceFileCoverage sc = new SourceFileCoverage("C.java", "p3");
BundleCoverage bundle = new BundleCoverage("bundle", Arrays.asList(ca,
diff --git a/org.jacoco.core.test/src/org/jacoco/core/analysis/ClassCoverageTest.java b/org.jacoco.core.test/src/org/jacoco/core/analysis/ClassCoverageTest.java index 7ec25169..73dbd077 100644 --- a/org.jacoco.core.test/src/org/jacoco/core/analysis/ClassCoverageTest.java +++ b/org.jacoco.core.test/src/org/jacoco/core/analysis/ClassCoverageTest.java @@ -29,11 +29,12 @@ public class ClassCoverageTest { @Test
public void testProperties() {
- ClassCoverage data = new ClassCoverage("Sample", "LSample;",
+ ClassCoverage data = new ClassCoverage("Sample", 12345, "LSample;",
"java/lang/Object", new String[0], "Sample.java",
new ArrayList<MethodCoverage>());
assertEquals(ICoverageNode.ElementType.CLASS, data.getElementType());
assertEquals("Sample", data.getName());
+ assertEquals(12345, data.getId());
assertEquals("LSample;", data.getSignature());
assertEquals("java/lang/Object", data.getSuperName());
assertEquals(0, data.getInterfaceNames().length);
@@ -43,15 +44,15 @@ public class ClassCoverageTest { @Test
public void testGetPackageName1() {
- ClassCoverage data = new ClassCoverage("ClassInDefaultPackage", null,
- "java/lang/Object", new String[0], "Sample.java",
+ ClassCoverage data = new ClassCoverage("ClassInDefaultPackage", 0,
+ null, "java/lang/Object", new String[0], "Sample.java",
new ArrayList<MethodCoverage>());
assertEquals("", data.getPackageName());
}
@Test
public void testGetPackageName2() {
- ClassCoverage data = new ClassCoverage("org/jacoco/examples/Sample",
+ ClassCoverage data = new ClassCoverage("org/jacoco/examples/Sample", 0,
null, "java/lang/Object", new String[0], "Sample.java",
new ArrayList<MethodCoverage>());
assertEquals("org/jacoco/examples", data.getPackageName());
@@ -59,7 +60,7 @@ public class ClassCoverageTest { @Test
public void testEmptyClass() {
- ICoverageNode data = new ClassCoverage("Sample", null,
+ ICoverageNode data = new ClassCoverage("Sample", 0, null,
"java/lang/Object", new String[0], "Sample.java",
new ArrayList<MethodCoverage>());
assertEquals(0, data.getInstructionCounter().getTotalCount(), 0.0);
@@ -77,7 +78,7 @@ public class ClassCoverageTest { final ArrayList<MethodCoverage> methods = new ArrayList<MethodCoverage>();
methods.add(createMethod(false));
methods.add(createMethod(false));
- ICoverageNode data = new ClassCoverage("Sample", null,
+ ICoverageNode data = new ClassCoverage("Sample", 0, null,
"java/lang/Object", new String[0], "Sample.java", methods);
assertEquals(10, data.getInstructionCounter().getTotalCount(), 0.0);
assertEquals(0, data.getInstructionCounter().getCoveredCount(), 0.0);
@@ -94,7 +95,7 @@ public class ClassCoverageTest { final ArrayList<MethodCoverage> methods = new ArrayList<MethodCoverage>();
methods.add(createMethod(false));
methods.add(createMethod(true));
- ICoverageNode data = new ClassCoverage("Sample", null,
+ ICoverageNode data = new ClassCoverage("Sample", 0, null,
"java/lang/Object", new String[0], "Sample.java", methods);
assertEquals(10, data.getInstructionCounter().getTotalCount(), 0.0);
assertEquals(5, data.getInstructionCounter().getCoveredCount(), 0.0);
diff --git a/org.jacoco.core.test/src/org/jacoco/core/analysis/PackageCoverageTest.java b/org.jacoco.core.test/src/org/jacoco/core/analysis/PackageCoverageTest.java index 563dff7e..5cf484ba 100644 --- a/org.jacoco.core.test/src/org/jacoco/core/analysis/PackageCoverageTest.java +++ b/org.jacoco.core.test/src/org/jacoco/core/analysis/PackageCoverageTest.java @@ -32,7 +32,7 @@ public class PackageCoverageTest { public void testProperties() {
Collection<MethodCoverage> methods = Collections.emptySet();
Collection<ClassCoverage> classes = Collections
- .singleton(new ClassCoverage("org/jacoco/test/Sample", null,
+ .singleton(new ClassCoverage("org/jacoco/test/Sample", 0, null,
"java/lang/Object", new String[0], "Sample.java",
methods));
Collection<SourceFileCoverage> sourceFiles = Collections
@@ -52,7 +52,7 @@ public class PackageCoverageTest { Collection<MethodCoverage> methods = Collections.emptySet();
// Classes with source reference will not considered for counters:
final ClassCoverage classnode = new ClassCoverage(
- "org/jacoco/test/Sample", null, "java/lang/Object",
+ "org/jacoco/test/Sample", 0, null, "java/lang/Object",
new String[0], "Sample.java", methods) {
{
classCounter = CounterImpl.getInstance(9, 0);
@@ -89,7 +89,7 @@ public class PackageCoverageTest { Collection<MethodCoverage> methods = Collections.emptySet();
// Classes without source reference will be considered for counters:
final ClassCoverage classnode = new ClassCoverage(
- "org/jacoco/test/Sample", null, "java/lang/Object",
+ "org/jacoco/test/Sample", 0, null, "java/lang/Object",
new String[0], null, methods) {
{
classCounter = CounterImpl.getInstance(1, 0);
diff --git a/org.jacoco.core/src/org/jacoco/core/analysis/ClassCoverage.java b/org.jacoco.core/src/org/jacoco/core/analysis/ClassCoverage.java index 3016e6fa..b319d693 100644 --- a/org.jacoco.core/src/org/jacoco/core/analysis/ClassCoverage.java +++ b/org.jacoco.core/src/org/jacoco/core/analysis/ClassCoverage.java @@ -22,6 +22,7 @@ import java.util.Collection; */
public class ClassCoverage extends CoverageNodeImpl {
+ private final long id;
private final String signature;
private final String superName;
private final String[] interfaces;
@@ -33,6 +34,8 @@ public class ClassCoverage extends CoverageNodeImpl { *
* @param name
* vm name of the class
+ * @param id
+ * class identifier
* @param signature
* vm signature of the class
* @param superName
@@ -44,11 +47,12 @@ public class ClassCoverage extends CoverageNodeImpl { * @param methods
* contained methods
*/
- public ClassCoverage(final String name, final String signature,
- final String superName, final String[] interfaces,
- final String sourceFileName,
+ public ClassCoverage(final String name, final long id,
+ final String signature, final String superName,
+ final String[] interfaces, final String sourceFileName,
final Collection<MethodCoverage> methods) {
super(ElementType.CLASS, name, true);
+ this.id = id;
this.signature = signature;
this.superName = superName;
this.interfaces = interfaces;
@@ -62,6 +66,16 @@ public class ClassCoverage extends CoverageNodeImpl { }
/**
+ * Returns the identifier for this class which is the CRC64 signature of the
+ * class definition.
+ *
+ * @return class identifier
+ */
+ public long getId() {
+ return id;
+ }
+
+ /**
* Returns the VM signature of the class.
*
* @return VM signature of the class (may be <code>null</code>)
diff --git a/org.jacoco.core/src/org/jacoco/core/analysis/CoverageBuilder.java b/org.jacoco.core/src/org/jacoco/core/analysis/CoverageBuilder.java index 3adae388..527e97a1 100644 --- a/org.jacoco.core/src/org/jacoco/core/analysis/CoverageBuilder.java +++ b/org.jacoco.core/src/org/jacoco/core/analysis/CoverageBuilder.java @@ -116,7 +116,7 @@ public class CoverageBuilder implements IStructureVisitor { }
public void visitEnd() {
- final ClassCoverage classData = new ClassCoverage(name,
+ final ClassCoverage classData = new ClassCoverage(name, id,
signature, superName, interfaces, sourcename, methods);
// Only consider classes that actually contain code:
if (classData.getInstructionCounter().getTotalCount() > 0) {
diff --git a/org.jacoco.report.test/src/org/jacoco/report/ReportStructureTestDriver.java b/org.jacoco.report.test/src/org/jacoco/report/ReportStructureTestDriver.java index 10c8879a..fadf8d81 100644 --- a/org.jacoco.report.test/src/org/jacoco/report/ReportStructureTestDriver.java +++ b/org.jacoco.report.test/src/org/jacoco/report/ReportStructureTestDriver.java @@ -54,7 +54,7 @@ public class ReportStructureTestDriver { "fooMethod", "()V", null); private final ClassCoverage classCoverage = new ClassCoverage( - "org/jacoco/example/FooClass", null, "java/lang/Object", + "org/jacoco/example/FooClass", 1001, null, "java/lang/Object", new String[0], "FooClass.java", Collections .singleton(methodCoverage)); |