Skip to content

Commit 7940992

Browse files
authored
Merge pull request #107 from scoverage/scoverage_1_4_0
upgrade to scoverage 1.4
2 parents d5e4c9b + a67eabd commit 7940992

File tree

13 files changed

+58
-42
lines changed

13 files changed

+58
-42
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ sourceCompatibility = '1.8'
4545
targetCompatibility = '1.8'
4646

4747
dependencies {
48-
compileOnly "org.scoverage:scalac-scoverage-plugin_2.12:1.3.1"
48+
compileOnly "org.scoverage:scalac-scoverage-plugin_2.12:1.4.0"
4949
compile group: 'commons-io', name: 'commons-io', version: '2.6'
5050
testCompile 'junit:junit:4.12'
5151
testCompile 'org.hamcrest:hamcrest-library:1.3'

src/functionalTest/java/org.scoverage/ScalaMultiModuleCrossVersionTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ private void assertAllReportFilesExist() {
3333

3434
assert211ReportFilesExist();
3535
assert212ReportFilesExist();
36+
assert213ReportFilesExist();
3637
assertAggregationFilesExist();
3738
}
3839

@@ -56,4 +57,11 @@ private void assert212ReportFilesExist() {
5657
Assert.assertTrue(resolve(reportDir, "index.html").exists());
5758
Assert.assertTrue(resolve(reportDir, "src/main/scala/org/hello/World212.scala.html").exists());
5859
}
60+
61+
private void assert213ReportFilesExist() {
62+
63+
File reportDir = reportDir(projectDir().toPath().resolve("2_13").toFile());
64+
Assert.assertTrue(resolve(reportDir, "index.html").exists());
65+
Assert.assertTrue(resolve(reportDir, "src/main/scala/org/hello/World213.scala.html").exists());
66+
}
5967
}

src/functionalTest/java/org.scoverage/ScalaMultiModuleWithMultipleTestTasksTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ public void checkAndAggregateScoverageWithoutCoverageInRoot() throws Exception {
225225
result.assertTaskSucceeded(ScoveragePlugin.getAGGREGATE_NAME());
226226

227227
assertAllReportFilesExist();
228-
assertCoverage(93.33);
228+
assertCoverage(88.24);
229229
}
230230

231231
@Test

src/functionalTest/java/org.scoverage/ScoverageFunctionalTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ private void configureArguments(String... arguments) {
126126
fullArguments.add("-PscalaVersionBuild=8");
127127
fullArguments.add("-PjunitVersion=5.3.2");
128128
fullArguments.add("-PjunitPlatformVersion=1.3.2");
129-
fullArguments.add("-PscalatestVersion=3.0.5");
129+
fullArguments.add("-PscalatestVersion=3.0.8");
130130
fullArguments.addAll(Arrays.asList(arguments));
131131

132132
runner.withArguments(fullArguments);
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
dependencies {
2+
compile group: 'org.scala-lang', name: 'scala-library', version: "2.13.1"
3+
testCompile group: 'org.scalatest', name: "scalatest_2.13", version: scalatestVersion
4+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.hello
2+
3+
class World213 {
4+
5+
def foo(): String = {
6+
val s = "2" + "12"
7+
s
8+
}
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package org.hello
2+
3+
import org.junit.runner.RunWith
4+
import org.scalatest.FunSuite
5+
import org.scalatest.junit.JUnitRunner
6+
7+
@RunWith(classOf[JUnitRunner])
8+
class World212Suite extends FunSuite {
9+
10+
test("foo") {
11+
new World213().foo()
12+
}
13+
}

src/functionalTest/resources/projects/scala-multi-module-cross-version/build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,6 @@ scoverage {
3333
minimumRate = 0.5
3434
}
3535

36-
project(":2_11").tasks.reportScoverage.mustRunAfter(project(":2_12").tasks.reportScoverage)
36+
project(":2_11").tasks.reportScoverage
37+
.mustRunAfter(project(":2_12").tasks.reportScoverage)
38+
.mustRunAfter(project(":2_13").tasks.reportScoverage)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
include '2_11', '2_12'
1+
include '2_11', '2_12', '2_13'

src/main/groovy/org/scoverage/ScoverageAggregate.groovy

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import org.gradle.api.tasks.OutputDirectory
88
import org.gradle.api.tasks.TaskAction
99
// don't use scala.collection.JavaConverters as it breaks backward compatibility with scala 2.11
1010
import scala.collection.JavaConversions
11-
import scoverage.IOUtils
1211
import scoverage.report.CoverageAggregator
1312

1413
class ScoverageAggregate extends DefaultTask {
@@ -38,29 +37,20 @@ class ScoverageAggregate extends DefaultTask {
3837
final Property<Boolean> coverageDebug = project.objects.property(Boolean)
3938

4039
ScoverageAggregate() {
41-
dirsToAggregateFrom.set([])
40+
dirsToAggregateFrom.set([project.extensions.scoverage.dataDir.get()])
4241
}
4342

4443
@TaskAction
4544
def aggregate() {
4645
runner.run {
47-
def rootDir = project.projectDir
48-
49-
def coverage
50-
if (dirsToAggregateFrom.get().isEmpty()) {
51-
coverage = CoverageAggregator.aggregate(rootDir, deleteReportsOnAggregation.get())
52-
} else {
53-
def reportFiles = dirsToAggregateFrom.get().collectMany {
54-
JavaConversions.seqAsJavaList(IOUtils.reportFileSearch(it, IOUtils.isReportFile()))
55-
}
56-
coverage = CoverageAggregator.aggregate(JavaConversions.asScalaBuffer(reportFiles), deleteReportsOnAggregation.get())
57-
}
58-
5946
reportDir.get().deleteDir()
47+
reportDir.get().mkdirs()
48+
49+
def coverage = CoverageAggregator.aggregate(dirsToAggregateFrom.get() as File[])
6050

6151
if (coverage.nonEmpty()) {
6252
new ScoverageWriter(project.logger).write(
63-
rootDir,
53+
project.projectDir,
6454
reportDir.get(),
6555
coverage.get(),
6656
sourceEncoding.get(),

src/main/groovy/org/scoverage/ScoverageExtension.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class ScoverageExtension {
4949
project.plugins.apply(ScalaPlugin.class)
5050

5151
scoverageVersion = project.objects.property(String)
52-
scoverageVersion.set('1.3.1')
52+
scoverageVersion.set('1.4.1')
5353

5454
scoverageScalaVersion = project.objects.property(String)
5555
scoverageScalaVersion.set('2.12')

src/main/groovy/org/scoverage/ScoveragePlugin.groovy

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,16 +138,16 @@ class ScoveragePlugin implements Plugin<PluginAware> {
138138
}
139139

140140
globalReportTask.configure {
141-
def reportDirs = reportTasks.findResults { it.reportDir.get() }
141+
def dataDirs = reportTasks.findResults { it.dataDir.get() }
142142

143143
dependsOn reportTasks
144-
onlyIf { reportDirs.any { it.list() } }
144+
onlyIf { dataDirs.any { it.list() } }
145145

146146
group = 'verification'
147147
runner = scoverageRunner
148148
reportDir = extension.reportDir
149+
dirsToAggregateFrom = dataDirs
149150
sourceEncoding.set(detectedSourceEncoding)
150-
dirsToAggregateFrom = reportDirs
151151
deleteReportsOnAggregation = false
152152
coverageOutputCobertura = extension.coverageOutputCobertura
153153
coverageOutputXML = extension.coverageOutputXML
@@ -175,11 +175,14 @@ class ScoveragePlugin implements Plugin<PluginAware> {
175175
}
176176

177177
def aggregationTask = project.tasks.create(AGGREGATE_NAME, ScoverageAggregate) {
178+
def dataDirs = allReportTasks.findResults { it.dirsToAggregateFrom.get() }.flatten()
179+
178180
dependsOn(allReportTasks)
179181
group = 'verification'
180182
runner = scoverageRunner
181183
reportDir = extension.reportDir
182184
sourceEncoding.set(detectedSourceEncoding)
185+
dirsToAggregateFrom = dataDirs
183186
deleteReportsOnAggregation = extension.deleteReportsOnAggregation
184187
coverageOutputCobertura = extension.coverageOutputCobertura
185188
coverageOutputXML = extension.coverageOutputXML

src/main/groovy/org/scoverage/ScoverageReport.groovy

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,7 @@ import org.gradle.api.tasks.CacheableTask
66
import org.gradle.api.tasks.Input
77
import org.gradle.api.tasks.OutputDirectory
88
import org.gradle.api.tasks.TaskAction
9-
// don't use scala.collection.JavaConverters as it breaks backward compatibility with scala 2.11
10-
import scala.collection.JavaConversions
11-
import scala.collection.Seq
12-
import scala.collection.Set
13-
import scoverage.Coverage
14-
import scoverage.IOUtils
15-
import scoverage.Serializer
9+
import scoverage.report.CoverageAggregator
1610

1711
@CacheableTask
1812
class ScoverageReport extends DefaultTask {
@@ -43,25 +37,18 @@ class ScoverageReport extends DefaultTask {
4337
@TaskAction
4438
def report() {
4539
runner.run {
40+
reportDir.get().delete()
4641
reportDir.get().mkdirs()
4742

48-
File coverageFile = Serializer.coverageFile(dataDir.get())
43+
def coverage = CoverageAggregator.aggregate([dataDir.get()] as File[])
4944

50-
if (!coverageFile.exists()) {
45+
if (coverage.isEmpty()) {
5146
project.logger.info("[scoverage] Could not find coverage file, skipping...")
5247
} else {
53-
File[] array = IOUtils.findMeasurementFiles(dataDir.get())
54-
Seq<File> measurementFiles = JavaConversions.asScalaBuffer(Arrays.asList(array))
55-
56-
Coverage coverage = Serializer.deserialize(coverageFile)
57-
58-
Set<Object> measurements = IOUtils.invoked(measurementFiles)
59-
coverage.apply(measurements)
60-
6148
new ScoverageWriter(project.logger).write(
6249
sources.get(),
6350
reportDir.get(),
64-
coverage,
51+
coverage.get(),
6552
sourceEncoding.get(),
6653
coverageOutputCobertura.get(),
6754
coverageOutputXML.get(),

0 commit comments

Comments
 (0)