Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
006cd17
Bump org.jenkins-ci.main:jenkins-core from 2.545 to 2.546
dependabot[bot] Jan 13, 2026
e6636f8
Initial commit.
IgorMiksza Dec 31, 2025
f891f35
Modified README.md
IgorMiksza Jan 14, 2026
73353a9
Merge pull request #660 from jenkinsci/dependabot/maven/org.jenkins-c…
uhafner Jan 15, 2026
5d0018d
Bump kentaro-m/auto-assign-action from 2.0.0 to 2.0.1
dependabot[bot] Jan 19, 2026
19d152d
Bump com.fasterxml.jackson.core:jackson-databind from 2.20.1 to 2.21.0
dependabot[bot] Jan 19, 2026
5aa8d7d
Bump org.jenkins-ci.main:jenkins-core from 2.546 to 2.547
dependabot[bot] Jan 20, 2026
ff4b4ef
Bumped "coverage-model.version" to: 0.66.0-rc1266.b_e6b_17a_f3c2c
IgorMiksza Jan 20, 2026
b670ce2
Bumped "coverage-model.version" to 0.66.0-rc1267.b_509b_0079b_61
IgorMiksza Jan 21, 2026
6504378
Hide source code if user does not have access to workspace
akash-manna-sky Jan 23, 2026
1d22c2a
Add permission denied message for coverage access
akash-manna-sky Jan 23, 2026
1baf6ac
use try-with-resources for better resource management
akash-manna-sky Jan 23, 2026
61f67f2
use IOException instead of generic Exception
akash-manna-sky Jan 24, 2026
750269e
Merge pull request #665 from jenkinsci/dependabot/maven/org.jenkins-c…
uhafner Jan 26, 2026
451f6dc
Merge pull request #664 from jenkinsci/dependabot/maven/com.fasterxml…
uhafner Jan 26, 2026
71e5ef9
Merge pull request #663 from jenkinsci/dependabot/github_actions/kent…
uhafner Jan 26, 2026
5147de3
Bump edu.hm.hafner:coverage-model from 0.65.0 to 0.66.0
dependabot[bot] Jan 26, 2026
496591c
Bump org.jenkins-ci.main:jenkins-core from 2.547 to 2.548
dependabot[bot] Jan 27, 2026
7390dad
Merge pull request #668 from jenkinsci/dependabot/maven/org.jenkins-c…
uhafner Jan 27, 2026
cc932e7
Merge pull request #667 from jenkinsci/dependabot/maven/edu.hm.hafner…
uhafner Jan 27, 2026
5682727
update the message text
akash-manna-sky Jan 27, 2026
7917fba
Update prism-api dependency version and refactor source code permissi…
akash-manna-sky Jan 27, 2026
3da1491
use try-with-resources for InputStreamReader
akash-manna-sky Jan 28, 2026
dec1163
fix checkstyle warning with proper indentation
akash-manna-sky Jan 28, 2026
731d2e8
Merge pull request #666 from akash-manna-sky/JENKINS-72544
uhafner Jan 28, 2026
1ed4f94
Remove Jenkins badges, authentication is now required
uhafner Feb 6, 2026
2de69c5
Remove link to Jenkins CI
uhafner Feb 6, 2026
81d17fa
Bump io.netty:netty-bom from 4.2.9.Final to 4.2.10.Final
dependabot[bot] Feb 7, 2026
af49c56
Merge pull request #673 from jenkinsci/dependabot/maven/io.netty-nett…
uhafner Feb 7, 2026
21affe8
Bump org.jenkins-ci.main:jenkins-core from 2.548 to 2.549
dependabot[bot] Feb 7, 2026
9ebe6f7
Bump dawidd6/action-download-artifact from 12 to 14
dependabot[bot] Feb 7, 2026
859e3c1
Merge pull request #671 from jenkinsci/dependabot/maven/org.jenkins-c…
uhafner Feb 7, 2026
baabd3a
Merge pull request #670 from jenkinsci/dependabot/github_actions/dawi…
uhafner Feb 7, 2026
c6b3df0
Bump org.jenkins-ci.main:jenkins-core from 2.549 to 2.550
dependabot[bot] Feb 10, 2026
14fb5c4
Merge pull request #675 from jenkinsci/dependabot/maven/org.jenkins-c…
uhafner Feb 10, 2026
12e8ecd
Move dependency check to different pipeline
uhafner Feb 24, 2026
e23f87d
Initial commit.
IgorMiksza Dec 31, 2025
d558dea
Modified README.md
IgorMiksza Jan 14, 2026
ef27ffd
Bumped "coverage-model.version" to: 0.66.0-rc1266.b_e6b_17a_f3c2c
IgorMiksza Jan 20, 2026
360ea4e
Bumped "coverage-model.version" to 0.66.0-rc1267.b_509b_0079b_61
IgorMiksza Jan 21, 2026
b76a504
Merge branch 'trace32-coverage' of https://github.com/IgorMiksza/cove…
IgorMiksza Feb 26, 2026
5389369
Removed duped metrics
IgorMiksza Mar 3, 2026
01d792f
Bumped `coverage-model.version` to `0.67.0-rc1288.7c1e4750a_8b_a_`
IgorMiksza Mar 3, 2026
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
2 changes: 1 addition & 1 deletion 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 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 @@ public List<TableColumn> getColumns() {
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 @@ public DetailedCell<?> getTestStrength() {
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));
}

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