This is an automated email from the ASF dual-hosted git repository.

granthenke pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git

commit 55b10e82a62c21c6d9162f41483b956f28528d07
Author: Grant Henke <[email protected]>
AuthorDate: Tue May 8 13:55:10 2018 -0500

    [build] Add a test coverage report to the Java build
    
    This patch adds a jacoco test coverage report to the Java build.
    The report can be generated by running
    `./gradlew jacocoAggregatedReport` and looking at
    `java/build/reports/jacoco/jacocoAggregatedReport/html/index.html`
    
    A follow on patch will add this coverage run to the build-and-test.sh
    “COVERAGE” type build.
    
    Change-Id: I0f2a2b1836b5ade72a757a8d7e2c518858ec48bb
    Reviewed-on: http://gerrit.cloudera.org:8080/16954
    Tested-by: Kudu Jenkins
    Reviewed-by: Alexey Serbin <[email protected]>
---
 java/build.gradle               |  1 +
 java/buildSrc/build.gradle      |  1 +
 java/gradle/dependencies.gradle |  1 +
 java/gradle/quality.gradle      | 19 +++++++++++++++++++
 4 files changed, 22 insertions(+)

diff --git a/java/build.gradle b/java/build.gradle
index 7514176..686a5d5 100755
--- a/java/build.gradle
+++ b/java/build.gradle
@@ -25,6 +25,7 @@ import org.apache.kudu.gradle.DistTestTask
 // Plugins and scripts applied at the root level only, instead of per module.
 apply plugin: "idea"
 apply plugin: "eclipse"
+apply plugin: "org.barfuin.gradle.jacocolog"
 apply from: "$rootDir/gradle/properties.gradle"
 apply from: "$rootDir/gradle/dependencies.gradle"
 apply from: "$rootDir/gradle/wrapper.gradle"
diff --git a/java/buildSrc/build.gradle b/java/buildSrc/build.gradle
index e9d9b7c..840a936 100644
--- a/java/buildSrc/build.gradle
+++ b/java/buildSrc/build.gradle
@@ -30,6 +30,7 @@ repositories {
 dependencies {
   compile "com.github.ben-manes:gradle-versions-plugin:0.36.0"
   compile "com.github.jengelman.gradle.plugins:shadow:6.1.0"
+  compile "gradle.plugin.org.barfuin.gradle.jacocolog:gradle-jacoco-log:1.2.3"
   compile "gradle.plugin.com.google.gradle:osdetector-gradle-plugin:1.6.2"
   compile "com.google.protobuf:protobuf-gradle-plugin:0.8.14"
   compile "com.netflix.nebula:nebula-clojure-plugin:9.4.3"
diff --git a/java/gradle/dependencies.gradle b/java/gradle/dependencies.gradle
index 911c5e9..10aef8b 100755
--- a/java/gradle/dependencies.gradle
+++ b/java/gradle/dependencies.gradle
@@ -40,6 +40,7 @@ versions += [
     hdrhistogram   : "2.1.12",
     hive           : "3.1.2",
     httpClient     : "4.5.13",
+    jacoco         : "0.8.6",
     jepsen         : "0.1.5",
     jetty          : "9.4.35.v20201120",
     jmh            : "1.27",
diff --git a/java/gradle/quality.gradle b/java/gradle/quality.gradle
index 69d3759..f4ca7a8 100644
--- a/java/gradle/quality.gradle
+++ b/java/gradle/quality.gradle
@@ -101,6 +101,25 @@ if(!JavaVersion.current().isJava12Compatible()) {
   }
 }
 
+// Don't enable code coverage for kudu-proto given it is exclusively generated 
code.
+// Don't enable code coverage for kudu-jepsen given it is exclusively test 
code.
+if (project.name != "kudu-proto" && project.name != "kudu-jepsen") {
+  apply plugin: "jacoco" // Provides code coverage metrics for Java code.
+  jacoco {
+    toolVersion = versions.jacoco
+  }
+  tasks.withType(JacocoReport) {
+    reports {
+      csv.enabled false
+      xml.enabled true
+      html.enabled true
+    }
+  }
+  jacocoTestReport {
+    dependsOn test // tests are required to run before generating the report
+  }
+}
+
 // Define a Java API signature for use by animal-sniffer. It'll enforce that 
all
 // Java API usage adheres to this signature.
 dependencies {

Reply via email to