Skip to content

Commit

Permalink
KAFKA-13922: Adjustments for jacoco, coverage reporting (apache#11982)
Browse files Browse the repository at this point in the history
Jacoco and scoverage reporting hasn't been working for a while. This commit fixes report generation. After this PR only subproject level reports are generated as Jenkins and Sonar only cares about that.
This PR doesn't change Kafka's Jenkinsfile.

Reviewers: Viktor Somogyi-Vass <[email protected]>
  • Loading branch information
akatona84 authored Mar 14, 2024
1 parent e164d4d commit 2c49a76
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 33 deletions.
42 changes: 10 additions & 32 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ plugins {
// includes spotbugs version 4.7.4, in which case CVE-2022-42920 can
// be dropped from gradle/resources/dependencycheck-suppressions.xml
id "com.github.spotbugs" version '5.1.3' apply false
id 'org.scoverage' version '7.0.1' apply false
id 'org.scoverage' version '8.0.3' apply false
// Updating the shadow plugin version to 8.1.1 causes issue with signing and publishing the shadowed
// artifacts - see https://github.com/johnrengelman/shadow/issues/901
id 'com.github.johnrengelman.shadow' version '8.1.0' apply false
Expand Down Expand Up @@ -750,7 +750,7 @@ subprojects {

if (userEnableTestCoverage) {
def coverageGen = it.path == ':core' ? 'reportScoverage' : 'jacocoTestReport'
task reportCoverage(dependsOn: [coverageGen])
tasks.register('reportCoverage').configure { dependsOn(coverageGen) }
}

dependencyCheck {
Expand Down Expand Up @@ -800,33 +800,8 @@ def checkstyleConfigProperties(configFileName) {
[importControlFile: "$configFileName"]
}

// Aggregates all jacoco results into the root project directory
if (userEnableTestCoverage) {
task jacocoRootReport(type: org.gradle.testing.jacoco.tasks.JacocoReport) {
def javaProjects = subprojects.findAll { it.path != ':core' }

description = 'Generates an aggregate report from all subprojects'
dependsOn(javaProjects.test)

additionalSourceDirs.from = javaProjects.sourceSets.main.allSource.srcDirs
sourceDirectories.from = javaProjects.sourceSets.main.allSource.srcDirs
classDirectories.from = javaProjects.sourceSets.main.output
executionData.from = javaProjects.jacocoTestReport.executionData

reports {
html.required = true
xml.required = true
}
// workaround to ignore projects that don't have any tests at all
onlyIf = { true }
doFirst {
executionData = files(executionData.findAll { it.exists() })
}
}
}

if (userEnableTestCoverage) {
task reportCoverage(dependsOn: ['jacocoRootReport', 'core:reportCoverage'])
tasks.register('reportCoverage').configure { dependsOn(subprojects.reportCoverage) }
}

def connectPkgs = [
Expand Down Expand Up @@ -1003,6 +978,9 @@ project(':core') {
if (userEnableTestCoverage) {
scoverage {
scoverageVersion = versions.scoverage
if (versions.baseScala == '2.13') {
scoverageScalaVersion = '2.13.9' // there's no newer 2.13 artifact, org.scoverage:scalac-scoverage-plugin_2.13.9:2.0.11 is the latest as of now
}
reportDir = file("${rootProject.buildDir}/scoverage")
highlighting = false
minimumRate = 0.0
Expand Down Expand Up @@ -1294,7 +1272,7 @@ project(':metadata') {
}
test {
java {
srcDirs = ["src/generated/java", "src/test/java"]
srcDirs = ["src/test/java"]
}
}
}
Expand Down Expand Up @@ -1661,7 +1639,7 @@ project(':raft') {
}
test {
java {
srcDirs = ["src/generated/java", "src/test/java"]
srcDirs = ["src/test/java"]
}
}
}
Expand Down Expand Up @@ -1904,7 +1882,7 @@ project(':storage') {
}
test {
java {
srcDirs = ["src/generated/java", "src/test/java"]
srcDirs = ["src/test/java"]
}
}
}
Expand Down Expand Up @@ -2218,7 +2196,7 @@ project(':streams') {
}
test {
java {
srcDirs = ["src/generated/java", "src/test/java"]
srcDirs = ["src/test/java"]
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion gradle/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ versions += [
// https://github.com/scalameta/scalafmt/releases/tag/v3.1.0.
scalafmt: "3.7.14",
scalaJava8Compat : "1.0.2",
scoverage: "1.9.3",
scoverage: "2.0.11",
slf4j: "1.7.36",
snappy: "1.1.10.5",
spotbugs: "4.8.0",
Expand Down

0 comments on commit 2c49a76

Please sign in to comment.