Skip to content

Support scoverage 1.0 #21

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Dec 21, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 16 additions & 7 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
buildscript {
repositories {
mavenCentral()
def isDirty = { ->
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'status', '--porcelain'
standardOutput = stdout
}
dependencies {
classpath 'com.github.townsfolk:gradle-release:1.2'
return stdout.toString().trim()
}
def getVersionName = { ->
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'describe', '--tags'
standardOutput = stdout
}
def gitVersionName = stdout.toString().trim()
return isDirty() ? gitVersionName + '-SNAPSHOT' : gitVersionName
}
version = getVersionName()

repositories {
mavenCentral()
Expand All @@ -19,7 +29,6 @@ ext {
apply plugin: 'idea'
apply plugin: 'maven'
apply plugin: 'groovy'
apply plugin: 'release'

group 'org.scoverage'

Expand All @@ -31,7 +40,7 @@ configurations {
dependencies {
compile gradleApi()
compile localGroovy()
scoverage 'org.scoverage:scalac-scoverage-plugin_2.10:0.99.5'
scoverage 'org.scoverage:scalac-scoverage-plugin_2.11:1.0.1'
}

task groovydocJar(type: Jar, dependsOn: groovydoc) {
Expand Down
1 change: 0 additions & 1 deletion gradle.properties

This file was deleted.

17 changes: 9 additions & 8 deletions src/main/groovy/org/scoverage/ScoverageExtension.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ package org.scoverage

import org.gradle.api.Action
import org.gradle.api.Project
import org.gradle.api.artifacts.ResolvedConfiguration
import org.gradle.api.artifacts.Configuration
import org.gradle.api.file.FileCollection
import org.gradle.api.plugins.JavaPlugin
import org.gradle.api.plugins.scala.ScalaPlugin
import org.gradle.api.tasks.JavaExec
Expand Down Expand Up @@ -77,13 +78,14 @@ class ScoverageExtension {
extension.dataDir.mkdirs()
extension.reportDir.mkdirs()

ResolvedConfiguration s = t.configurations[ScoveragePlugin.CONFIGURATION_NAME].resolvedConfiguration
String pluginPath = s.getFirstLevelModuleDependencies().iterator().next().moduleArtifacts.iterator().next().file.absolutePath
Configuration configuration = t.configurations[ScoveragePlugin.CONFIGURATION_NAME]
File pluginFile = configuration.filter { it.name.contains('plugin') }.iterator().next()
FileCollection pluginDependencies = configuration.filter { it != pluginFile }

t.tasks[ScoveragePlugin.COMPILE_NAME].configure {


List<String> plugin = ['-Xplugin:' + pluginPath]
List<String> plugin = ['-Xplugin:' + pluginFile.absolutePath]
List<String> parameters = scalaCompileOptions.additionalParameters
if (parameters != null) {
plugin.addAll(parameters)
Expand All @@ -100,19 +102,18 @@ class ScoverageExtension {
}
scalaCompileOptions.additionalParameters = plugin
// exclude the scala libraries that are added to enable scala version detection
classpath += t.configurations[ScoveragePlugin.CONFIGURATION_NAME]
classpath += pluginDependencies
}

t.tasks[ScoveragePlugin.TEST_NAME].configure {
def existingClasspath = classpath
classpath = t.files(t.sourceSets[ScoveragePlugin.CONFIGURATION_NAME].output.classesDir) +
project.configurations[ScoveragePlugin.CONFIGURATION_NAME] +
pluginDependencies +
existingClasspath
}

t.tasks[ScoveragePlugin.REPORT_NAME].configure {
classpath = project.buildscript.configurations.classpath +
project.configurations[ScoveragePlugin.CONFIGURATION_NAME]
classpath = project.buildscript.configurations.classpath + configuration
main = 'org.scoverage.ScoverageReport'
args = [
extension.sources,
Expand Down
6 changes: 4 additions & 2 deletions src/main/groovy/org/scoverage/ScoverageReport.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import scala.collection.Set;
import scoverage.Coverage;
import scoverage.IOUtils;
import scoverage.Serializer;
import scoverage.report.CoberturaXmlWriter;
import scoverage.report.ScoverageHtmlWriter;

Expand All @@ -19,13 +20,14 @@ public static void main(String... args) {
File sourceDir = new File(args[0]);
File dataDir = new File(args[1]);
File reportDir = new File(args[2]);
reportDir.mkdirs();

File coverageFile = IOUtils.coverageFile(dataDir);
File coverageFile = Serializer.coverageFile(dataDir);
File[] array = IOUtils.findMeasurementFiles(dataDir);
// TODO: patch scoverage core to use a consistent collection type?
Seq<File> measurementFiles = scala.collection.JavaConversions.asScalaBuffer(Arrays.asList(array));

Coverage coverage = IOUtils.deserialize(coverageFile);
Coverage coverage = Serializer.deserialize(coverageFile);

Set<Object> measurements = IOUtils.invoked(measurementFiles);
coverage.apply(measurements);
Expand Down
3 changes: 2 additions & 1 deletion src/test/happyday/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ repositories {
}

dependencies {
scoverage 'org.scoverage:scalac-scoverage-plugin_2.11:0.99.5'
scoverage 'org.scoverage:scalac-scoverage-plugin_2.11:1.0.1',
'org.scoverage:scalac-scoverage-runtime_2.11:1.0.1'
compile 'org.scala-lang:scala-library:2.11.0'
testCompile 'junit:junit:4.11'
}
Expand Down