aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc R. Hoffmann <hoffmann@mountainminds.com>2010-05-10 15:58:36 +0000
committerMarc R. Hoffmann <hoffmann@mountainminds.com>2010-05-10 15:58:36 +0000
commit8bb03db8aeba94f9f061402f36139d977e7cc80c (patch)
tree691d54f2e84ad9d04d2daf0b6ba37d9fe0fa8b69
parentd3fc4dba8c28e019aa43a3f70f9db8cb9969e3fb (diff)
downloadjacoco-8bb03db8aeba94f9f061402f36139d977e7cc80c.tar.gz
Trac #94: Include id with ClassCoverage to allow linkage with execution data.
-rw-r--r--org.jacoco.core.test/src/org/jacoco/core/analysis/BundleCoverageTest.java8
-rw-r--r--org.jacoco.core.test/src/org/jacoco/core/analysis/ClassCoverageTest.java15
-rw-r--r--org.jacoco.core.test/src/org/jacoco/core/analysis/PackageCoverageTest.java6
-rw-r--r--org.jacoco.core/src/org/jacoco/core/analysis/ClassCoverage.java20
-rw-r--r--org.jacoco.core/src/org/jacoco/core/analysis/CoverageBuilder.java2
-rw-r--r--org.jacoco.report.test/src/org/jacoco/report/ReportStructureTestDriver.java2
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));