From 2c49a765735152f72d6a5120b6c6403fc03af43a Mon Sep 17 00:00:00 2001 From: Andras Katona <41361962+akatona84@users.noreply.github.com> Date: Thu, 14 Mar 2024 10:36:46 +0100 Subject: [PATCH] KAFKA-13922: Adjustments for jacoco, coverage reporting (#11982) 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 --- build.gradle | 42 +++++++++----------------------------- gradle/dependencies.gradle | 2 +- 2 files changed, 11 insertions(+), 33 deletions(-) diff --git a/build.gradle b/build.gradle index 786c731dccd8d..ffac25d7bd9ad 100644 --- a/build.gradle +++ b/build.gradle @@ -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 @@ -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 { @@ -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 = [ @@ -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 @@ -1294,7 +1272,7 @@ project(':metadata') { } test { java { - srcDirs = ["src/generated/java", "src/test/java"] + srcDirs = ["src/test/java"] } } } @@ -1661,7 +1639,7 @@ project(':raft') { } test { java { - srcDirs = ["src/generated/java", "src/test/java"] + srcDirs = ["src/test/java"] } } } @@ -1904,7 +1882,7 @@ project(':storage') { } test { java { - srcDirs = ["src/generated/java", "src/test/java"] + srcDirs = ["src/test/java"] } } } @@ -2218,7 +2196,7 @@ project(':streams') { } test { java { - srcDirs = ["src/generated/java", "src/test/java"] + srcDirs = ["src/test/java"] } } } diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index 4f31bcd25c1d4..92cd8e1b943e2 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -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",