Skip to content

Commit 5122a17

Browse files
committed
Merge remote-tracking branch 'origin/master' into scoverage_1_4_0
Conflicts: src/functionalTest/java/org.scoverage/ScalaSingleModuleTest.java src/main/groovy/org/scoverage/ScoveragePlugin.groovy src/main/groovy/org/scoverage/ScoverageReport.groovy
2 parents 89e09f0 + d5e4c9b commit 5122a17

File tree

16 files changed

+231
-80
lines changed

16 files changed

+231
-80
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package org.scoverage;
2+
3+
import org.junit.Assert;
4+
import org.junit.Test;
5+
import org.junit.runner.RunWith;
6+
import org.junit.runners.Parameterized;
7+
8+
import java.util.Arrays;
9+
import java.util.Collection;
10+
11+
@RunWith(Parameterized.class)
12+
public class DetectScalaLibraryTest extends ScoverageFunctionalTest {
13+
14+
private static final String SCALA_VERSION = "2.12";
15+
private static final String SCALA_LIBRARY_PARAMETER = "-PdetectedScalaLibraryVersion=";
16+
17+
private static final String EXPECTED_OUTPUT_A = "Detected scala library in compilation classpath";
18+
private static final String EXPECTED_OUTPUT_B = "Using scoverage scalac plugin version '" + SCALA_VERSION;
19+
20+
@Parameterized.Parameter(0)
21+
public String projectDir;
22+
23+
@Parameterized.Parameters(name = "{index}: Project {0} ")
24+
public static Collection<Object[]> data() {
25+
Object[][] data = new Object[][]{{"/compile"}, {"/compileOnly"}, {"/implementation"}, {"/dependency-management"}};
26+
return Arrays.asList(data);
27+
}
28+
29+
public DetectScalaLibraryTest() {
30+
super(null);
31+
}
32+
33+
@Test
34+
public void test() {
35+
setProjectName("detect-scala-library" + projectDir);
36+
testWithParameter(SCALA_LIBRARY_PARAMETER + SCALA_VERSION + ".0");
37+
testWithParameter(SCALA_LIBRARY_PARAMETER + SCALA_VERSION + ".+");
38+
}
39+
40+
private void testWithParameter(String parameter) {
41+
AssertableBuildResult result = dryRun("clean", parameter, "--info");
42+
String output = result.getResult().getOutput();
43+
Assert.assertTrue(output.contains(EXPECTED_OUTPUT_A));
44+
Assert.assertTrue(output.contains(EXPECTED_OUTPUT_B));
45+
}
46+
47+
}

src/functionalTest/java/org.scoverage/ScalaMultiModuleTest.java

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,38 @@ public void reportScoverageOnlyRoot() {
3636
@Test
3737
public void reportScoverageOnlyA() {
3838

39-
AssertableBuildResult result = dryRun("clean", ":a:" + ScoveragePlugin.getREPORT_NAME());
39+
AssertableBuildResult result = run("clean", ":a:" + ScoveragePlugin.getREPORT_NAME());
4040

4141
result.assertTaskDoesntExist(ScoveragePlugin.getREPORT_NAME());
42-
result.assertTaskExists("a:" + ScoveragePlugin.getREPORT_NAME());
4342
result.assertTaskDoesntExist("b:" + ScoveragePlugin.getREPORT_NAME());
4443
result.assertTaskDoesntExist("common:" + ScoveragePlugin.getREPORT_NAME());
44+
45+
result.assertTaskSucceeded("a:" + ScoveragePlugin.getCOMPILE_NAME());
46+
result.assertTaskSucceeded("a:" + ScoveragePlugin.getREPORT_NAME());
47+
48+
assertAReportFilesExist();
49+
}
50+
51+
@Test
52+
public void reportScoverageOnlyAWithoutNormalCompilation() {
53+
54+
AssertableBuildResult result = run("clean", ":a:" + ScoveragePlugin.getREPORT_NAME(),
55+
"-x", "compileScala");
56+
57+
result.assertTaskSkipped("compileScala");
58+
result.assertTaskSkipped("a:compileScala");
59+
result.assertTaskSkipped("common:compileScala");
60+
result.assertTaskSucceeded("common:" + ScoveragePlugin.getCOMPILE_NAME());
61+
result.assertTaskSucceeded("a:" + ScoveragePlugin.getCOMPILE_NAME());
62+
result.assertTaskSucceeded("a:" + ScoveragePlugin.getREPORT_NAME());
63+
64+
assertAReportFilesExist();
65+
66+
Assert.assertTrue(resolve(buildDir(resolve(projectDir(), "a")), "classes/scala/main/org/hello/a/WorldA.class").exists());
67+
Assert.assertFalse(resolve(buildDir(resolve(projectDir(), "a")), "classes/scala/scoverage/org/hello/a/WorldA.class").exists());
68+
69+
Assert.assertTrue(resolve(buildDir(resolve(projectDir(), "common")), "classes/scala/main/org/hello/common/WorldCommon.class").exists());
70+
Assert.assertFalse(resolve(buildDir(resolve(projectDir(), "common")), "classes/scala/scoverage/org/hello/common/WorldCommon.class").exists());
4571
}
4672

4773
@Test

src/functionalTest/java/org.scoverage/ScalaSingleModuleTest.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -133,15 +133,6 @@ public void reportScoverageWithoutNormalCompilationAndWithExcludedClasses() thro
133133
Assert.assertFalse(resolve(buildDir(), "classes/scala/scoverage/org/hello/World.class").exists());
134134
}
135135

136-
@Test
137-
public void reportScoverageUnder2_11() throws Exception {
138-
run("clean", ScoveragePlugin.getREPORT_NAME(),
139-
"-PscalaVersionMinor=11",
140-
"-PscalaVersionBuild=8",
141-
"-Pscoverage.scoverageScalaVersion=2_11");
142-
assertReportFilesExist();
143-
}
144-
145136
@Test
146137
public void reportScoverageUnder2_13() throws Exception {
147138
run("clean", ScoveragePlugin.getREPORT_NAME(),

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

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,12 @@
2323

2424
public abstract class ScoverageFunctionalTest {
2525

26-
private final String projectName;
27-
private final GradleRunner runner;
26+
private String projectName;
27+
private GradleRunner runner;
2828
private final XmlParser parser;
2929

3030
protected ScoverageFunctionalTest(String projectName) {
31-
32-
this.projectName = projectName;
33-
this.runner = GradleRunner.create()
34-
.withProjectDir(projectDir())
35-
.withPluginClasspath()
36-
.forwardOutput();
37-
31+
setProjectName(projectName);
3832
try {
3933
this.parser = new XmlParser();
4034
parser.setFeature("http://apache.org/xml/features/disallow-doctype-decl", false);
@@ -44,6 +38,16 @@ protected ScoverageFunctionalTest(String projectName) {
4438
}
4539
}
4640

41+
protected void setProjectName(String projectName) {
42+
if (projectName != null) {
43+
this.projectName = projectName;
44+
this.runner = GradleRunner.create()
45+
.withProjectDir(projectDir())
46+
.withPluginClasspath()
47+
.forwardOutput();
48+
}
49+
}
50+
4751
protected File projectDir() {
4852

4953
return new File("src/functionalTest/resources/projects/" + projectName);
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
plugins {
2+
id 'org.scoverage'
3+
}
4+
5+
repositories {
6+
jcenter()
7+
}
8+
9+
description = 'defines scala library using the "compile" configuration'
10+
11+
dependencies {
12+
compile group: 'org.scala-lang', name: 'scala-library', version: "${detectedScalaLibraryVersion}"
13+
}

src/functionalTest/resources/projects/detect-scala-library/compile/settings.gradle

Whitespace-only changes.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
plugins {
2+
id 'org.scoverage'
3+
}
4+
5+
repositories {
6+
jcenter()
7+
}
8+
9+
description = 'defines scala library using the "compileOnly" configuration'
10+
11+
dependencies {
12+
compileOnly group: 'org.scala-lang', name: 'scala-library', version: "${detectedScalaLibraryVersion}"
13+
}

src/functionalTest/resources/projects/detect-scala-library/compileOnly/settings.gradle

Whitespace-only changes.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
plugins {
2+
id 'io.spring.dependency-management' version "1.0.4.RELEASE"
3+
id 'org.scoverage'
4+
}
5+
6+
repositories {
7+
jcenter()
8+
}
9+
10+
description = 'defines scala library using the "implementation" configuration and the dependency-management plugin'
11+
12+
dependencyManagement {
13+
dependencies {
14+
dependency group: 'org.scala-lang', name: 'scala-library', version: "${detectedScalaLibraryVersion}"
15+
}
16+
}
17+
18+
dependencies {
19+
implementation group: 'org.scala-lang', name: 'scala-library'
20+
}

src/functionalTest/resources/projects/detect-scala-library/dependency-management/settings.gradle

Whitespace-only changes.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
plugins {
2+
id 'org.scoverage'
3+
}
4+
5+
repositories {
6+
jcenter()
7+
}
8+
9+
description = 'defines scala library using the "implementation" configuration'
10+
11+
dependencies {
12+
implementation group: 'org.scala-lang', name: 'scala-library', version: "${detectedScalaLibraryVersion}"
13+
}

src/functionalTest/resources/projects/detect-scala-library/implementation/settings.gradle

Whitespace-only changes.

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ class ScoverageAggregate extends DefaultTask {
2323
@Input
2424
final Property<Boolean> deleteReportsOnAggregation = project.objects.property(Boolean)
2525

26+
@Input
27+
final Property<String> sourceEncoding = project.objects.property(String)
28+
2629
// TODO - consider separate options for `report` and `aggregate` tasks
2730
@Input
2831
final Property<Boolean> coverageOutputCobertura = project.objects.property(Boolean)
@@ -50,6 +53,7 @@ class ScoverageAggregate extends DefaultTask {
5053
project.projectDir,
5154
reportDir.get(),
5255
coverage.get(),
56+
sourceEncoding.get(),
5357
coverageOutputCobertura.get(),
5458
coverageOutputXML.get(),
5559
coverageOutputHTML.get(),

0 commit comments

Comments
 (0)