JAL-4167 Adjustments to get clover to work
authorBen Soares <b.soares@dundee.ac.uk>
Wed, 26 Apr 2023 10:10:57 +0000 (11:10 +0100)
committerBen Soares <b.soares@dundee.ac.uk>
Wed, 26 Apr 2023 10:10:57 +0000 (11:10 +0100)
build.gradle

index 6c5c7a5..ac150fa 100644 (file)
@@ -50,7 +50,7 @@ plugins {
   id "com.diffplug.gradle.spotless" version "3.28.0"
   id 'com.github.johnrengelman.shadow' version '4.0.3'
   id 'com.install4j.gradle' version '10.0.3'
-  id 'com.dorongold.task-tree' version '2.1.0' // only needed to display task dependency tree with  gradle task1 [task2 ...] taskTree
+  id 'com.dorongold.task-tree' version '2.1.1' // only needed to display task dependency tree with  gradle task1 [task2 ...] taskTree
   id 'com.palantir.git-version' version '0.13.0' apply false
 }
 
@@ -1064,7 +1064,7 @@ compileJava {
   // JBP->BS should the print statement in doFirst refer to compile_target_compatibility ?
   sourceCompatibility = compile_source_compatibility
   targetCompatibility = compile_target_compatibility
-  options.compilerArgs = additional_compiler_args
+  options.compilerArgs += additional_compiler_args
   options.encoding = "UTF-8"
   doFirst {
     print ("Setting target compatibility to "+compile_target_compatibility+"\n")
@@ -1076,7 +1076,7 @@ compileJava {
 compileTestJava {
   sourceCompatibility = compile_source_compatibility
   targetCompatibility = compile_target_compatibility
-  options.compilerArgs = additional_compiler_args
+  options.compilerArgs += additional_compiler_args
   doFirst {
     print ("Setting target compatibility to "+targetCompatibility+"\n")
   }
@@ -1769,83 +1769,84 @@ import org.gradle.api.tasks.testing.logging.TestLogEvent
 
 rootProject.ext.testsResults = [] // Container for tests summaries
 
-allprojects { project ->
-  tasks.withType(Test).matching {t -> t.getName().startsWith("testTask")}.all { testTask ->
+tasks.withType(Test).matching {t -> t.getName().startsWith("testTask")}.all { testTask ->
 
-    // run main tests first
-//    if (!testTask.name.equals("testTask0"))
-//      testTask.mustRunAfter testTask0
+  // from original test task
+  if (useClover) {
+    dependsOn cloverClasses
+  } else { //?
+    dependsOn compileJava //?
+  }
 
-    testTask.testLogging { logging ->
-      events TestLogEvent.FAILED,
-        TestLogEvent.SKIPPED,
-        TestLogEvent.STANDARD_OUT,
-        TestLogEvent.STANDARD_ERROR
+  // run main tests first
+  if (!testTask.name.equals("testTask0"))
+    testTask.mustRunAfter "testTask0"
 
-      exceptionFormat TestExceptionFormat.FULL
-      showExceptions true
-      showCauses true
-      showStackTraces true
-    }
+  testTask.testLogging { logging ->
+    events TestLogEvent.FAILED,
+      TestLogEvent.SKIPPED,
+      TestLogEvent.STANDARD_OUT,
+      TestLogEvent.STANDARD_ERROR
 
-    ignoreFailures = true // Always try to run all tests for all modules
+    exceptionFormat TestExceptionFormat.FULL
+    showExceptions true
+    showCauses true
+    showStackTraces true
+  }
 
-    afterSuite { desc, result ->
+  ignoreFailures = true // Always try to run all tests for all modules
 
-      if (desc.parent) return // Only summarize results for whole modules
+  afterSuite { desc, result ->
 
-      String summary = "${testTask.project.name}:${testTask.name} results: ${result.resultType} " +
-        "(" +
-        "${result.testCount} tests, " +
-        "${result.successfulTestCount} successes, " +
-        "${result.failedTestCount} failures, " +
-        "${result.skippedTestCount} skipped" +
-        ") " +
-        "in ${TimeCategory.minus(new Date(result.endTime), new Date(result.startTime))}" +
-        "\n" +
-            "Report file: ${testTask.reports.html.entryPoint}"
+    if (desc.parent) return // Only summarize results for whole modules
 
-      // Add reports in `testsResults`, keep failed suites at the end
-      if (result.resultType == TestResult.ResultType.SUCCESS) {
-        rootProject.ext.testsResults.add(0, summary)
-      } else {
-        rootProject.ext.testsResults += summary
-      }
-      if (result.resultType == TestResult.ResultType.FAILURE) {
-        testsFailed = true
-      }
-    }
+    String summary = "${testTask.project.name}:${testTask.name} results: ${result.resultType} " +
+      "(" +
+      "${result.testCount} tests, " +
+      "${result.successfulTestCount} successes, " +
+      "${result.failedTestCount} failures, " +
+      "${result.skippedTestCount} skipped" +
+      ") " +
+      "in ${TimeCategory.minus(new Date(result.endTime), new Date(result.startTime))}" +
+      "\n" +
+          "Report file: ${testTask.reports.html.entryPoint}"
 
-    // from original test task
-    if (useClover) {
-      dependsOn cloverClasses
-    } else { //?
-      dependsOn compileJava //?
+    // Add reports in `testsResults`, keep failed suites at the end
+    if (result.resultType == TestResult.ResultType.SUCCESS) {
+      rootProject.ext.testsResults.add(0, summary)
+    } else {
+      rootProject.ext.testsResults += summary
     }
-    maxHeapSize = "1024m"
 
-    workingDir = jalviewDir
-    def testLaf = project.findProperty("test_laf")
-    if (testLaf != null) {
-      println("Setting Test LaF to '${testLaf}'")
-      systemProperty "laf", testLaf
-    }
-    def testHiDPIScale = project.findProperty("test_HiDPIScale")
-    if (testHiDPIScale != null) {
-      println("Setting Test HiDPI Scale to '${testHiDPIScale}'")
-      systemProperty "sun.java2d.uiScale", testHiDPIScale
+    if (result.resultType == TestResult.ResultType.FAILURE) {
+      testsFailed = true
     }
-    sourceCompatibility = compile_source_compatibility
-    targetCompatibility = compile_target_compatibility
-    jvmArgs += additional_compiler_args
+  }
 
-    doFirst {
-      if (useClover) {
-        println("Running tests " + (useClover?"WITH":"WITHOUT") + " clover")
-      }
-    }
+  // from original test task
+  maxHeapSize = "1024m"
 
+  workingDir = jalviewDir
+  def testLaf = project.findProperty("test_laf")
+  if (testLaf != null) {
+    println("Setting Test LaF to '${testLaf}'")
+    systemProperty "laf", testLaf
   }
+  def testHiDPIScale = project.findProperty("test_HiDPIScale")
+  if (testHiDPIScale != null) {
+    println("Setting Test HiDPI Scale to '${testHiDPIScale}'")
+    systemProperty "sun.java2d.uiScale", testHiDPIScale
+  }
+  sourceCompatibility = compile_source_compatibility
+  targetCompatibility = compile_target_compatibility
+  jvmArgs += additional_compiler_args
+
+  doFirst {
+    if (useClover) {
+      println("Running tests " + (useClover?"WITH":"WITHOUT") + " clover")
+    }
+  }
+
 }
 
 gradle.buildFinished {
@@ -1880,9 +1881,17 @@ task verifyTestStatus {
 }
 
 test {
+  // from original test task
+  if (useClover) {
+    dependsOn.clear()
+    dependsOn cloverClasses
+  } else { //?
+    dependsOn compileJava //?
+  }
   dependsOn tasks.withType(Test).matching {t -> t.getName().startsWith("testTask")}
   finalizedBy verifyTestStatus
 
+
   // not running tests in this task
   exclude "**/*"
 }