Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ It has support for the following report formats:
- [JaCoCo](https://www.jacoco.org/) code coverage results
- [OpenCover](https://github.com/OpenCover/opencover) code coverage results
- [VectorCAST](https://www.vector.com/int/en/products/products-a-z/software/vectorcast) code coverage results including MC/DC, Function, Function Call coverages
- [TRACE32](https://www.lauterbach.com) code coverage results
- [PIT](https://pitest.org/) mutation coverage results
- [JUnit](https://junit.org/junit5/) test results
- [NUnit](https://nunit.org) test results
Expand Down Expand Up @@ -114,6 +115,7 @@ The Coverage Plug-in supports the following report formats:
- [Cobertura](https://cobertura.github.io/cobertura/): Code Coverage
- [OpenCover](https://github.com/OpenCover/opencover): Code Coverage
- [VectorCAST](https://www.vector.com/int/en/products/products-a-z/software/vectorcast) Code Coverage including MC/DC, Function, Function Call coverages
- [TRACE32](https://www.lauterbach.com) Code Coverage
- [PIT](https://pitest.org/): Mutation Coverage
- [JUnit](https://ant.apache.org/manual/Tasks/junitreport.html): Test Results
- [NUnit](https://nunit.org/): Test Results
Expand Down
4 changes: 2 additions & 2 deletions plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

<name>Coverage Plugin</name>
<description>Collects reports of code coverage or mutation coverage tools and visualizes the results. It has support
for the following report formats: JaCoCo, Cobertura, and PIT.</description>
for the following report formats: JaCoCo, Cobertura, PIT and TRACE32.</description>
<url>https://github.com/jenkinsci/coverage-plugin</url>

<licenses>
Expand All @@ -35,7 +35,7 @@
<maven.deploy.skip>false</maven.deploy.skip>

<!-- Library Dependencies Versions -->
<coverage-model.version>0.65.0</coverage-model.version>
<coverage-model.version>0.66.0-rc1267.b_509b_0079b_61</coverage-model.version>

<!-- Test Library Dependencies Versions -->
<xmlunit.version>2.11.0</xmlunit.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,15 @@ public LinesChartModel create(final Iterable<BuildResult<CoverageStatistics>> re
addSeriesIfAvailable(dataSet, model, Metric.MCDC_PAIR, JenkinsPalette.RED.light());
addSeriesIfAvailable(dataSet, model, Metric.FUNCTION_CALL, JenkinsPalette.RED.dark());

/* TRACE32 metrics */
addSeriesIfAvailable(dataSet, model, Metric.STATEMENT, JenkinsPalette.RED.light());
addSeriesIfAvailable(dataSet, model, Metric.STMT_DC, JenkinsPalette.RED.light());
addSeriesIfAvailable(dataSet, model, Metric.STMT_CC, JenkinsPalette.RED.light());
addSeriesIfAvailable(dataSet, model, Metric.FUNCTION, JenkinsPalette.RED.light());
addSeriesIfAvailable(dataSet, model, Metric.OBJECT_CODE, JenkinsPalette.RED.light());
addSeriesIfAvailable(dataSet, model, Metric.DECISION, JenkinsPalette.RED.normal());
addSeriesIfAvailable(dataSet, model, Metric.CONDITION, JenkinsPalette.RED.normal());

model.useContinuousRangeAxis();
model.computeVisibleRange();
model.setRangeMax(100); // Restrict the range to 100%
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -649,7 +649,12 @@ NavigableSet<Metric> getMetricsForSummary() {
// software metrics
Metric.LOC, Metric.NCSS, Metric.TESTS,
Metric.CYCLOMATIC_COMPLEXITY, Metric.COGNITIVE_COMPLEXITY, Metric.NPATH_COMPLEXITY,
Metric.MCDC_PAIR, Metric.FUNCTION_CALL));
Metric.MCDC_PAIR, Metric.FUNCTION_CALL,
// TRACE32 metrics
Metric.STATEMENT, Metric.STMT_CC, Metric.STMT_DC,
Metric.CONDITION, Metric.DECISION, Metric.FUNCTION,
Metric.OBJECT_CODE, Metric.BYTES
));
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -542,7 +542,9 @@ NavigableSet<Metric> getOverviewMetrics() {
return new TreeSet<>(
Set.of(Metric.LINE, Metric.LOC, Metric.BRANCH, Metric.CYCLOMATIC_COMPLEXITY,
Metric.MUTATION, Metric.TEST_STRENGTH, Metric.TESTS,
Metric.MCDC_PAIR, Metric.FUNCTION_CALL));
Metric.MCDC_PAIR, Metric.FUNCTION_CALL, Metric.STATEMENT,
Metric.STMT_DC, Metric.STMT_CC, Metric.CONDITION, Metric.DECISION,
Metric.FUNCTION, Metric.OBJECT_CODE, Metric.BYTES));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,16 @@
configureValueColumn("testStrength", Metric.TEST_STRENGTH, Messages.Column_TestStrength(),
Messages.Column_DeltaTestStrength("Δ"), columns);

/* TRACE32 metrics */
configureValueColumn("statementCoverage", Metric.STATEMENT, Metric.STATEMENT.getDisplayName(), SKIP_DELTA, columns);
configureValueColumn("stmtDcCoverage", Metric.STMT_DC, Metric.STMT_DC.getDisplayName(), SKIP_DELTA, columns);
configureValueColumn("stmtCcCoverage", Metric.STMT_CC, Metric.STMT_CC.getDisplayName(), SKIP_DELTA, columns);
configureValueColumn("conditionCoverage", Metric.CONDITION, Metric.CONDITION.getDisplayName(), SKIP_DELTA, columns);
configureValueColumn("decisionCoverage", Metric.DECISION, Metric.DECISION.getDisplayName(), SKIP_DELTA, columns);
configureValueColumn("functionCoverage", Metric.FUNCTION, Metric.FUNCTION.getDisplayName(), SKIP_DELTA, columns);
configureValueColumn("objectCodeCoverage", Metric.OBJECT_CODE, Metric.OBJECT_CODE.getDisplayName(), SKIP_DELTA, columns);
configureValueColumn("bytesCoverage", Metric.BYTES, Metric.BYTES.getDisplayName(), SKIP_DELTA, columns);

var entries = new EnumMap<>(Map.of(
Metric.LOC, 200,
Metric.TESTS, 500,
Expand Down Expand Up @@ -267,6 +277,38 @@
return createColoredCoverageColumn(getCoverageOfNode(Metric.TEST_STRENGTH));
}

public DetailedCell<?> getStatementCoverage() {
return createColoredCoverageColumn(getCoverageOfNode(Metric.STATEMENT));
}

public DetailedCell<?> getStmtDcCoverage() {
return createColoredCoverageColumn(getCoverageOfNode(Metric.STMT_DC));
}

public DetailedCell<?> getStmtCcCoverage() {
return createColoredCoverageColumn(getCoverageOfNode(Metric.STMT_CC));
}

public DetailedCell<?> getConditionCoverage() {
return createColoredCoverageColumn(getCoverageOfNode(Metric.CONDITION));
}

public DetailedCell<?> getDecisionCoverage() {
return createColoredCoverageColumn(getCoverageOfNode(Metric.DECISION));
}

public DetailedCell<?> getFunctionCoverage() {
return createColoredCoverageColumn(getCoverageOfNode(Metric.FUNCTION));
}

public DetailedCell<?> getObjectCodeCoverage() {
return createColoredCoverageColumn(getCoverageOfNode(Metric.OBJECT_CODE));
}

public DetailedCell<?> getBytesCoverage() {
return createColoredCoverageColumn(getCoverageOfNode(Metric.BYTES));

Check warning on line 309 in plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageTableModel.java

View check run for this annotation

ci.jenkins.io / Code Coverage

Not covered lines

Lines 281-309 are not covered by tests
}

Coverage getCoverageOfNode(final Metric metric) {
return file.getTypedValue(metric, Coverage.nullObject(metric));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,10 @@ public enum Parser {
"symbol-footsteps-outline plugin-ionicons-api"),
XUNIT(Messages._Parser_Xunit(), ParserType.TEST,
"**/xunit.xml,**/TestResult.xml",
"symbol-solid/list-check plugin-font-awesome-api");
"symbol-solid/list-check plugin-font-awesome-api"),
TRACE32(Messages._Parser_TRACE32(), ParserType.COVERAGE,
"**/index.xml",
"symbol-footsteps-outline plugin-ionicons-api");

private final Localizable displayName;
private final ParserType parserType;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,8 @@ public class CoverageViewModel extends DefaultAsyncTableContentProvider implemen
private static final ElementFormatter FORMATTER = new ElementFormatter();
private static final Set<Metric> TREE_METRICS = Set.of(
Metric.LINE, Metric.BRANCH, Metric.MUTATION, Metric.TEST_STRENGTH, Metric.CYCLOMATIC_COMPLEXITY, Metric.TESTS,
Metric.MCDC_PAIR, Metric.FUNCTION_CALL, Metric.COGNITIVE_COMPLEXITY, Metric.NCSS, Metric.NPATH_COMPLEXITY);
Metric.MCDC_PAIR, Metric.FUNCTION_CALL, Metric.COGNITIVE_COMPLEXITY, Metric.NCSS, Metric.NPATH_COMPLEXITY,
Metric.STATEMENT, Metric.STMT_DC, Metric.STMT_CC, Metric.CONDITION, Metric.DECISION, Metric.FUNCTION, Metric.OBJECT_CODE, Metric.BYTES);
private final Run<?, ?> owner;
private final String displayName;
private final CoverageStatistics statistics;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,14 @@ Metric.FUNCTION_CALL=Function Call Coverage
Metric.NCSS=NCSS
Metric.COGNITIVE_COMPLEXITY=Cognitive Complexity
Metric.NPATH=NPath Complexity
Metric.STATEMENT=Statement Coverage
Metric.STMT_DC=Statement + Decision Coverage
Metric.STMT_CC=Statement + Condition Coverage
Metric.CONDITION=Condition Coverage
Metric.DECISION=Decision Coverage
Metric.FUNCTION=Function Coverage
Metric.OBJECT_CODE=Object Code Coverage
Metric.BYTES=Bytes Coverage

Metric.Short.CONTAINER=Container
Metric.Short.MODULE=Module
Expand All @@ -41,6 +49,14 @@ Metric.Short.FUNCTION_CALL=Function Call
Metric.Short.NCSS=NCSS
Metric.Short.COGNITIVE_COMPLEXITY=Cognitive Complexity
Metric.Short.NPATH=NPath Complexity
Metric.Short.STATEMENT=Statement
Metric.Short.STMT_DC=Statement + DC
Metric.Short.STMT_CC=Statement + CC
Metric.Short.CONDITION=Condition
Metric.Short.DECISION=Decision
Metric.Short.FUNCTION=Function
Metric.Short.OBJECT_CODE=Object Code
Metric.Short.BYTES=Bytes

Metric.MUTATION.Killed=Killed
Metric.MUTATION.Survived=Survived
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Parser.OpenCover=OpenCover Coverage Reports
Parser.PIT=PIT Mutation Testing Reports
Parser.VectorCAST=VectorCAST Coverage Results
Parser.Xunit=XUnit Test Results
Parser.TRACE32=TRACE32 Coverage Reports

Coverage.Not.Available=N/A
Coverage.Link.Name=Coverage Report
Expand Down
Loading