Skip to content

Commit

Permalink
Added top-level coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
richardmkeeble committed Dec 1, 2016
1 parent fa4579f commit 30b8a6b
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ public void addCoverage(CoverageElement cv) throws IOException {
cv.addTo(this);
}

public void addCombinedCoverage(CoverageElement cv) throws IOException {
cv.setTo(this);
}

public String getName() {
return name;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ public void setValue(String value) {
}

void addTo(AbstractReport<?,?> report) throws IOException {

Ratio r = null;
if(type.equals("statement, %")) {
r = report.Statement;
Expand All @@ -43,6 +42,27 @@ void addTo(AbstractReport<?,?> report) throws IOException {
throw new IllegalArgumentException("Invalid type: "+type);
}
r.addValue(value);
}

void setTo(AbstractReport<?,?> report) throws IOException {
Ratio r = null;
if(type.equals("statement, %")) {
r = report.Statement;
} else if(type.equals("branch, %")) {
r = report.Branch;
} else if(type.equals("basispath, %")) {
r = report.BasisPath;
} else if(type.equals("mcdc, %")) {
r = report.MCDC;
} else if(type.equals("function, %")) {
r = report.Function;
} else if(type.equals("functioncall, %")) {
r = report.FunctionCall;
} else if(type.equals("complexity, %")) {
r = report.Complexity;
} else {
throw new IllegalArgumentException("Invalid type: "+type);
}
r.setValue(value);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,18 +68,23 @@ private Digester createDigester() {
digester.push(this);

digester.addObjectCreate( "*/environment", EnvironmentReport.class);
digester.addSetNext( "*/environment","add");
digester.addSetNext( "*/environment", "add");
digester.addSetProperties("*/environment");
digester.addObjectCreate( "*/unit", UnitReport.class);
digester.addSetNext( "*/unit","add");
digester.addSetProperties("*/unit");
digester.addObjectCreate( "*/subprogram", SubprogramReport.class);
digester.addSetNext( "*/subprogram","add");
digester.addSetNext( "*/subprogram", "add");
digester.addSetProperties("*/subprogram");

digester.addObjectCreate("*/coverage", CoverageElement.class);
// Top-level (combined) coverage values
digester.addObjectCreate( "report/combined-coverage", CoverageElement.class);
digester.addSetProperties("report/combined-coverage");
digester.addSetNext( "report/combined-coverage", "addCombinedCoverage");

digester.addObjectCreate( "*/coverage", CoverageElement.class);
digester.addSetProperties("*/coverage");
digester.addSetNext( "*/coverage","addCoverage");
digester.addSetNext( "*/coverage", "addCoverage");

return digester;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,13 @@ public void addValue(String v) {
initialized = true;
}

public void setValue(String v) {
float[] f = parse(v);
numerator = f[0];
denominator = f[1];
initialized = true;
}

public boolean isInitialized() {
return initialized;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,36 @@
* @author Kohsuke Kawaguchi
*/
public class CoverageReportTest extends AbstractVectorCASTTestBase {

public void testLoad() throws Exception {
CoverageReport r = new CoverageReport(null, getClass().getResourceAsStream("coverage.xml"));
CoverageReport r = new CoverageReport(null,
getClass().getResourceAsStream("coverage.xml"),
getClass().getResourceAsStream("top-level.xml"));
EnvironmentReport env = r.getChildren().get("VectorCAST_MinGW_C_TestSuite_ORDER");
assertRatio(env.getStatementCoverage(), 23, 55);
assertEquals(25f, r.getStatementCoverage().getNumerator());
assertEquals(45f, r.getStatementCoverage().getNumerator());
}

public void testLoadMultipleReports() throws Exception {
CoverageReport r = new CoverageReport(null,
getClass().getResourceAsStream("coverage.xml"),
getClass().getResourceAsStream("coverageh.xml"));
getClass().getResourceAsStream("coverageh.xml"),
getClass().getResourceAsStream("top-level.xml"));

assertRatio(r.getStatementCoverage(), 45, 60);

assertRatio(r.getStatementCoverage(), 45, 100);

EnvironmentReport env = r.getChildren().get("VectorCAST_MinGW_C_TestSuite_ORDER");
assertRatio(env.getStatementCoverage(), 23, 55);

env = r.getChildren().get("AnotherEnv");
assertRatio(env.getStatementCoverage(), 20, 40);

}

public void testTreeReport() throws Exception {
CoverageReport r = new CoverageReport(null,getClass().getResourceAsStream("coverage.xml"));
assertRatio(r.getStatementCoverage(), 25, 60);

EnvironmentReport env = r.getChildren().get("VectorCAST_MinGW_C_TestSuite_ORDER");
assertRatio(env.getStatementCoverage(),23,55);

Expand All @@ -40,7 +43,7 @@ public void testTreeReport() throws Exception {
SubprogramReport sub = unit.getChildren().get("Add_Included_Dessert");
assertRatio(sub.getStatementCoverage(), 4, 8);
}

public void testEmptyEnvironment() throws Exception {
CoverageReport r = new CoverageReport(null,getClass().getResourceAsStream("coverage.xml"));

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<!-- VectorCAST/Jenkins Integration, Generated 10/25/2016 03:57 PM -->
<report>
<version value="2"/>
<combined-coverage type="statement, %" value="75% (45 / 60)"/>
<combined-coverage type="branch, %" value="33% (18 / 54)"/>
<combined-coverage type="mcdc, %" value="50% (7 / 14)"/>
<combined-coverage type="complexity, %" value="0% (74 / 0)"/>
</report>

0 comments on commit 30b8a6b

Please sign in to comment.