Skip to content
Open
Show file tree
Hide file tree
Changes from 11 commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
87568f7
Bump com.fasterxml.jackson.core:jackson-databind from 2.21.0 to 2.21.2
dependabot[bot] Mar 23, 2026
56da7ea
Bump org.jenkins-ci.tools:maven-hpi-plugin
dependabot[bot] Mar 26, 2026
31a6e3d
Initial commit.
IgorMiksza Dec 31, 2025
e884a24
Modified README.md
IgorMiksza Jan 14, 2026
74250a3
Bumped "coverage-model.version" to: 0.66.0-rc1266.b_e6b_17a_f3c2c
IgorMiksza Jan 20, 2026
030877f
Bumped "coverage-model.version" to 0.66.0-rc1267.b_509b_0079b_61
IgorMiksza Jan 21, 2026
310c2b9
Bumped "coverage-model.version" to: 0.66.0-rc1266.b_e6b_17a_f3c2c
IgorMiksza Jan 20, 2026
4e6c437
Bumped "coverage-model.version" to 0.66.0-rc1267.b_509b_0079b_61
IgorMiksza Jan 21, 2026
3683d03
Removed duped metrics
IgorMiksza Mar 3, 2026
8bbe3d8
Bumped `coverage-model.version` to `0.67.0-rc1288.7c1e4750a_8b_a_`
IgorMiksza Mar 3, 2026
ec6be94
Replaced `Metric.STATEMENT` with `Metric.INSTRUCTION`
IgorMiksza Mar 24, 2026
c605b7a
Missing whitespace
IgorMiksza Mar 26, 2026
1d25de4
Added `Instruction` metric to the `verifyJaCoCoAction` function
IgorMiksza Mar 26, 2026
18cdf26
Fix extraction of PR number
uhafner Mar 31, 2026
5c501b5
Replace Dependabot with Renovate
uhafner Apr 9, 2026
fc75231
Merge pull request #693 from jenkinsci/dependabot/maven/org.jenkins-c…
uhafner Apr 9, 2026
23be799
Merge pull request #698 from jenkinsci/dependabot/maven/com.fasterxml…
uhafner Apr 9, 2026
63914be
Upgrade Maven version
uhafner Apr 9, 2026
f0f3f5b
Merge pull request #714 from jenkinsci/dependabot-renovate
uhafner Apr 10, 2026
3681137
Upgrade Maven version to 3.9.14
uhafner Apr 10, 2026
12cb560
Fix JUnit homepage link
uhafner Apr 10, 2026
b9b39e9
Bump dependency io.jenkins.plugins:prism-api to v1.30.0-719.v61228fb_…
renovate[bot] Apr 10, 2026
19e5c32
Bump dependency org.apache.maven.plugins:maven-surefire-plugin to v3.5.5
renovate[bot] Apr 10, 2026
23c0dc9
Bump dependency edu.hm.hafner:coverage-model to v0.67.0
renovate[bot] Apr 10, 2026
7932062
Bump dependency org.jenkins-ci.main:jenkins-core to v2.558
renovate[bot] Apr 10, 2026
3effe53
Bump actions/upload-artifact action to v7
renovate[bot] Apr 10, 2026
e6144d6
Bump dependency edu.hm.hafner:codingstyle-pom to v6
renovate[bot] Apr 10, 2026
009f35e
Bump dependency org.jenkins-ci:acceptance-test-harness to v6623
renovate[bot] Apr 10, 2026
3f96229
Bump dependency org.jvnet.hudson.plugins:analysis-pom to v12
renovate[bot] Apr 10, 2026
b83b6af
Use latest version of actions for the Markdown link checker
uhafner Apr 10, 2026
527bd72
Merge pull request #723 from jenkinsci/renovate/org.jenkins-ci-accept…
uhafner Apr 10, 2026
5251410
Merge pull request #721 from jenkinsci/renovate/major-github-artifact…
uhafner Apr 10, 2026
f77f581
Merge pull request #717 from jenkinsci/renovate/org.apache.maven.plug…
uhafner Apr 10, 2026
877978d
Merge pull request #716 from jenkinsci/renovate/io.jenkins.plugins-pr…
uhafner Apr 10, 2026
67214f4
Merge remote-tracking branch 'origin/renovate/edu.hm.hafner-codingsty…
uhafner Apr 10, 2026
c890d4c
Merge remote-tracking branch 'origin/renovate/coverage-model.version'…
uhafner Apr 10, 2026
72430ab
Merge pull request #720 from jenkinsci/renovate/jenkins.version
uhafner Apr 10, 2026
b09db42
Fix PMD warnings
uhafner Apr 10, 2026
f883b42
Fix PMD and compiler warnings
uhafner Apr 11, 2026
e71dace
Fixed PMD false positive
uhafner Apr 11, 2026
f9caf6b
Merge remote-tracking branch 'origin/main' into renovate/org.jvnet.hu…
uhafner Apr 11, 2026
69d7d1b
Bump major version
uhafner Apr 11, 2026
30fde01
Add specific versions for plugin-util
uhafner Apr 12, 2026
b9f83a1
Fix compile errors
uhafner Apr 12, 2026
327cbbf
Suppress warning
uhafner Apr 12, 2026
cc45760
Merge pull request #724 from jenkinsci/renovate/org.jvnet.hudson.plug…
uhafner Apr 12, 2026
703a749
Bump dependency org.testcontainers:testcontainers to v2
renovate[bot] Apr 12, 2026
56bf522
Remove obsolete testcontainers JUnit dependency
uhafner Apr 12, 2026
18aff18
Disable Docker tests
uhafner Apr 13, 2026
ee1d93d
Merge pull request #725 from jenkinsci/renovate/major-testcontainers-…
uhafner Apr 13, 2026
8e8fff4
Restore serialization to use interfaces again
uhafner Apr 14, 2026
5003345
Merge pull request #728 from jenkinsci/loose-coupling
uhafner Apr 14, 2026
6007ac9
Replace Jackson 2 API with Jackson 3 (#684)
jonesbusy Apr 15, 2026
8f46b93
Add `Rate` to the list of whitelisted classes for serialization (#730)
uhafner Apr 18, 2026
d80aa72
Revert version of j2html to 1.4.0 (#731)
uhafner Apr 18, 2026
d0f86de
Restore row data class (#732)
uhafner Apr 19, 2026
4e2b5c2
Add sleep timeout of 1 minute in fetch-artifacts.sh
uhafner Apr 23, 2026
f443b65
Increase timeout for fetch-artifacts.sh to 1 minute
uhafner Apr 24, 2026
f88193d
Initial commit.
IgorMiksza Dec 31, 2025
4cf8e23
Modified README.md
IgorMiksza Jan 14, 2026
23e338b
Bumped "coverage-model.version" to: 0.66.0-rc1266.b_e6b_17a_f3c2c
IgorMiksza Jan 20, 2026
2be5b18
Bumped "coverage-model.version" to 0.66.0-rc1267.b_509b_0079b_61
IgorMiksza Jan 21, 2026
5aa0b91
Removed duped metrics
IgorMiksza Mar 3, 2026
a1d90a3
Bumped `coverage-model.version` to `0.67.0-rc1288.7c1e4750a_8b_a_`
IgorMiksza Mar 3, 2026
0668958
Replaced `Metric.STATEMENT` with `Metric.INSTRUCTION`
IgorMiksza Mar 24, 2026
7cfdd43
Missing whitespace
IgorMiksza Mar 26, 2026
7b206dd
Added `Instruction` metric to the `verifyJaCoCoAction` function
IgorMiksza Mar 26, 2026
0527599
Merge branch 'trace32-coverage' of https://github.com/IgorMiksza/cove…
IgorMiksza Apr 29, 2026
c19f6bc
`coverage-model.version` restored
IgorMiksza Apr 29, 2026
db280eb
Disabled viewing of T32 metrics in summary and overview
IgorMiksza Apr 29, 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 @@ -14,6 +14,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 @@ -113,6 +114,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.66.0</coverage-model.version>
<coverage-model.version>0.67.0-rc1288.7c1e4750a_8b_a_</coverage-model.version>
Comment thread
IgorMiksza marked this conversation as resolved.
Outdated

<!-- 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,11 @@ 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.STMT_DC, JenkinsPalette.RED.light());
addSeriesIfAvailable(dataSet, model, Metric.STMT_CC, JenkinsPalette.RED.light());
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,10 @@ 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.STMT_CC, Metric.STMT_DC, Metric.CONDITION, Metric.BYTES
));
Comment thread
IgorMiksza marked this conversation as resolved.
Outdated
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -540,9 +540,10 @@ NavigableSet<Metric> getTitleMetrics() {

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));
Set.of(Metric.LINE, Metric.LOC, Metric.BRANCH, Metric.INSTRUCTION,
Metric.CYCLOMATIC_COMPLEXITY, Metric.MUTATION, Metric.TEST_STRENGTH,
Metric.TESTS, Metric.MCDC_PAIR, Metric.FUNCTION_CALL,
Metric.STMT_DC, Metric.STMT_CC, Metric.CONDITION, Metric.BYTES));
Comment thread
IgorMiksza marked this conversation as resolved.
Outdated
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,8 @@
Messages.Column_DeltaLineCoverage("Δ"), columns);
configureValueColumn("branchCoverage", Metric.BRANCH, Messages.Column_BranchCoverage(),
Messages.Column_DeltaBranchCoverage("Δ"), columns);
configureValueColumn("instructionCoverage", Metric.INSTRUCTION, Messages.Column_InstructionCoverage(),
Messages.Column_DeltaInstructionCoverage("Δ"), columns);
Comment thread
IgorMiksza marked this conversation as resolved.
Outdated

/* VectorCAST metrics */
configureValueColumn("mcdcPairCoverage", Metric.MCDC_PAIR, Messages.Column_MCDCPairs(),
Expand All @@ -129,6 +131,12 @@
configureValueColumn("testStrength", Metric.TEST_STRENGTH, Messages.Column_TestStrength(),
Messages.Column_DeltaTestStrength("Δ"), columns);

/* TRACE32 metrics */
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("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 @@ -247,38 +255,62 @@
return createColoredCoverageColumn(getCoverageOfNode(Metric.BRANCH));
}

public DetailedCell<?> getInstructionCoverage() {
return createColoredCoverageColumn(getCoverageOfNode(Metric.INSTRUCTION));
}

public DetailedCell<?> getMethodCoverage() {
return createColoredCoverageColumn(getCoverageOfNode(Metric.METHOD));
}

public DetailedCell<?> getMcdcPairCoverage() {
return createColoredCoverageColumn(getCoverageOfNode(Metric.MCDC_PAIR));
}

public DetailedCell<?> getFunctionCallCoverage() {
return createColoredCoverageColumn(getCoverageOfNode(Metric.FUNCTION_CALL));
}

public DetailedCell<?> getMutationCoverage() {
return createColoredCoverageColumn(getCoverageOfNode(Metric.MUTATION));
}

public DetailedCell<?> getTestStrength() {
return createColoredCoverageColumn(getCoverageOfNode(Metric.TEST_STRENGTH));
}

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<?> getBytesCoverage() {
return createColoredCoverageColumn(getCoverageOfNode(Metric.BYTES));
}

Coverage getCoverageOfNode(final Metric metric) {
return file.getTypedValue(metric, Coverage.nullObject(metric));
}

public DetailedCell<?> getLineCoverageDelta() {
return createColoredFileCoverageDeltaColumn(Metric.LINE);
}

public DetailedCell<?> getBranchCoverageDelta() {
return createColoredFileCoverageDeltaColumn(Metric.BRANCH);
}

public DetailedCell<?> getInstructionCoverageDelta() {
return createColoredFileCoverageDeltaColumn(Metric.INSTRUCTION);

Check warning on line 311 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 259-311 are not covered by tests
}

public DetailedCell<?> getMutationCoverageDelta() {
return createColoredFileCoverageDeltaColumn(Metric.MUTATION);
}
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,8 +81,9 @@ 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.LINE, Metric.BRANCH, Metric.INSTRUCTION, 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.STMT_DC, Metric.STMT_CC, Metric.CONDITION, Metric.BYTES);
Comment on lines +84 to +86
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need to make these things configurable. It makes no sense to show all of these for everyone.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello, I’m sorry for the delayed response. Instruction coverage (along with all other T32 metric) is needed in the view model. I understand that Instruction coverage will now be visible to everyone, so that's why I wanted it to be named as "Statement" and only associated with T32 coverage.
Is there a way to display Instruction coverage only with T32 reports?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@uhafner just a gentle follow-up, it's been about a month since my last message, I'd really appreciate a reply when you have a moment. Thanks!

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,10 @@ Metric.FUNCTION_CALL=Function Call Coverage
Metric.NCSS=NCSS
Metric.COGNITIVE_COMPLEXITY=Cognitive Complexity
Metric.NPATH=NPath Complexity
Metric.STMT_DC=Statement + Decision Coverage
Metric.STMT_CC=Statement + Condition Coverage
Metric.CONDITION=Condition Coverage
Metric.BYTES=Bytes Coverage

Metric.Short.CONTAINER=Container
Metric.Short.MODULE=Module
Expand All @@ -41,6 +45,10 @@ Metric.Short.FUNCTION_CALL=Function Call
Metric.Short.NCSS=NCSS
Metric.Short.COGNITIVE_COMPLEXITY=Cognitive Complexity
Metric.Short.NPATH=NPath Complexity
Metric.Short.STMT_DC=Statement + DC
Metric.Short.STMT_CC=Statement + CC
Metric.Short.CONDITION=Condition
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.Permission.Denied=You do not have Jenkins' WORKSPACE permission to view the source code
Expand All @@ -32,6 +33,8 @@ Column.LineCoverage=Line
Column.DeltaLineCoverage=Line {0}
Column.BranchCoverage=Branch
Column.DeltaBranchCoverage=Branch {0}
Column.InstructionCoverage=Instruction
Column.DeltaInstructionCoverage=Instruction {0}
Column.MutationCoverage=Mutation
Column.TestStrength=Test Strength
Column.DeltaMutationCoverage=Mutation {0}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ private void verifyJaCoCoAction(final CoverageBuildAction coverageResult) {
"Package",
"Line",
"Branch",
"Instruction",
"LOC",
"Complexity");
assertThat(tableModel.getRows())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
No changes detected, that affect the code coverage.
* Line Coverage: 91.02% (294/323)
* Branch Coverage: 93.97% (109/116)
* Instruction Coverage: 93.33% (1260/1350)
Comment thread
IgorMiksza marked this conversation as resolved.
Outdated
* Lines of Code: 323
* Cyclomatic Complexity: 160
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
* **[Overall project (difference to reference job)](http://127.0.0.1:8080/job/pipeline-coding-style/job/5/coverage#overview)**
* Line Coverage: 91.02% (294/323) - Delta: +50.00%
* Branch Coverage: 93.97% (109/116)
* Instruction Coverage: 93.33% (1260/1350)
* Lines of Code: 323
* Cyclomatic Complexity: 160
* **[Modified files (difference to reference job)](http://127.0.0.1:8080/job/pipeline-coding-style/job/5/coverage#modifiedFilesCoverage)**
Expand Down
Loading