Skip to content

Commit 0c08012

Browse files
committed
#140 Add functional test for compatibility with 'palantir/gradle-consistent-versions' plugin (test currently fails)
1 parent cfb3963 commit 0c08012

File tree

6 files changed

+45
-9
lines changed

6 files changed

+45
-9
lines changed

src/functionalTest/java/org.scoverage/DetectScalaLibraryTest.java

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
import java.util.Arrays;
99
import java.util.Collection;
10+
import java.util.List;
11+
import java.util.stream.Stream;
1012

1113
@RunWith(Parameterized.class)
1214
public class DetectScalaLibraryTest extends ScoverageFunctionalTest {
@@ -20,9 +22,21 @@ public class DetectScalaLibraryTest extends ScoverageFunctionalTest {
2022
@Parameterized.Parameter(0)
2123
public String projectDir;
2224

25+
@Parameterized.Parameter(1)
26+
public String[] subVersions;
27+
28+
@Parameterized.Parameter(2)
29+
public String[] additionalParameters;
30+
2331
@Parameterized.Parameters(name = "{index}: Project {0} ")
2432
public static Collection<Object[]> data() {
25-
Object[][] data = new Object[][]{{"/compile"}, {"/compileOnly"}, {"/implementation"}, {"/dependency-management"}};
33+
Object[][] data = new Object[][]{
34+
{"/compile", new String[] {".0", ".+"}, new String[0]},
35+
{"/compileOnly", new String[] {".0", ".+"}, new String[0]},
36+
{"/implementation", new String[] {".0", ".+"}, new String[0]},
37+
{"/dependency-management", new String[] {".0", ".+"}, new String[0]},
38+
{"/gradle-consistent-versions", new String[] {"ignored"}, new String[] {"--write-locks"}},
39+
};
2640
return Arrays.asList(data);
2741
}
2842

@@ -33,12 +47,18 @@ public DetectScalaLibraryTest() {
3347
@Test
3448
public void test() {
3549
setProjectName("detect-scala-library" + projectDir);
36-
testWithParameter(SCALA_LIBRARY_PARAMETER + SCALA_VERSION + ".0");
37-
testWithParameter(SCALA_LIBRARY_PARAMETER + SCALA_VERSION + ".+");
50+
for (String subVersion : subVersions) {
51+
testWithParameter(SCALA_LIBRARY_PARAMETER + SCALA_VERSION + subVersion);
52+
}
3853
}
3954

4055
private void testWithParameter(String parameter) {
41-
AssertableBuildResult result = dryRun("clean", parameter, "--info");
56+
57+
String[] basicParameters = {"clean", parameter, "--info"};
58+
String[] parameters = Stream.concat(Arrays.stream(basicParameters), Arrays.stream(additionalParameters))
59+
.toArray(String[]::new);
60+
AssertableBuildResult result = dryRun(parameters);
61+
4262
String output = result.getResult().getOutput();
4363
Assert.assertTrue(output.contains(EXPECTED_OUTPUT_A));
4464
Assert.assertTrue(output.contains(EXPECTED_OUTPUT_B));
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
plugins {
2+
id "com.palantir.consistent-versions" version "1.16.0"
3+
id 'org.scoverage'
4+
}
5+
6+
repositories {
7+
jcenter()
8+
}
9+
10+
description = 'defines scala library using the "implementation" configuration and the gradle-consistent-versions plugin'
11+
12+
dependencies {
13+
implementation group: 'org.scala-lang', name: 'scala-library'
14+
}

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

Whitespace-only changes.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Run ./gradlew --write-locks to regenerate this file
2+
org.scala-lang:scala-library:2.12.0 (1 constraints: 3705353b)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
org.scala-lang:scala-library = 2.12.0

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.scoverage
22

33
import org.apache.commons.io.FileUtils
4-
import org.gradle.api.GradleException
54
import org.gradle.api.Plugin
65
import org.gradle.api.Project
76
import org.gradle.api.Task
@@ -343,18 +342,18 @@ class ScoveragePlugin implements Plugin<PluginAware> {
343342

344343
private String resolveScalaVersion(Project project) {
345344

346-
def resolvedDependencies = project.configurations.compileClasspath.resolvedConfiguration.firstLevelModuleDependencies
345+
def components = project.configurations.compileClasspath.incoming.resolutionResult.getAllComponents()
347346

348-
def scalaLibrary = resolvedDependencies.find {
349-
it.moduleGroup == "org.scala-lang" && it.moduleName == "scala-library"
347+
def scalaLibrary = components.find {
348+
it.moduleVersion.group == "org.scala-lang" && it.moduleVersion.name == "scala-library"
350349
}
351350

352351
if (scalaLibrary == null) {
353352
project.logger.info("No scala library detected. Using property 'scoverageScalaVersion'")
354353
return project.extensions.scoverage.scoverageScalaVersion.get()
355354
} else {
356355
project.logger.info("Detected scala library in compilation classpath")
357-
def fullScalaVersion = scalaLibrary.moduleVersion
356+
def fullScalaVersion = scalaLibrary.moduleVersion.version
358357
return fullScalaVersion.substring(0, fullScalaVersion.lastIndexOf("."))
359358
}
360359
}

0 commit comments

Comments
 (0)