Skip to content

Commit

Permalink
Add integration test for #11330
Browse files Browse the repository at this point in the history
  • Loading branch information
wolfs committed Nov 12, 2019
1 parent 2e9e6f8 commit 8d933dd
Showing 1 changed file with 66 additions and 0 deletions.
Expand Up @@ -43,6 +43,8 @@ import org.gradle.plugins.ide.idea.GenerateIdeaProject
import org.gradle.plugins.ide.idea.GenerateIdeaWorkspace
import org.gradle.plugins.signing.Sign
import org.gradle.util.GradleVersion
import spock.lang.Issue

/**
* Tests that task classes compiled against earlier versions of Gradle are still compatible.
*/
Expand Down Expand Up @@ -209,4 +211,68 @@ apply plugin: SomePlugin
version previous requireGradleDistribution() withTasks 'assemble' inDirectory(file("producer")) run()
version current requireGradleDistribution() withTasks 't' run()
}

@Issue("https://github.com/gradle/gradle/issues/11330")
def "a subclass of JavaCompile with getSources receives the correct incremental changes"() {
given:
file("producer/build.gradle") << """
apply plugin: 'java'
dependencies {
compile gradleApi()
}
"""

file("producer/src/main/java/MyCompileTask.java") << """
import org.gradle.api.file.FileTree;
import org.gradle.api.tasks.InputFiles;
import org.gradle.api.tasks.PathSensitive;
import org.gradle.api.tasks.PathSensitivity;
import org.gradle.api.tasks.SkipWhenEmpty;
import org.gradle.api.tasks.compile.JavaCompile;
import java.util.List;
import java.util.ArrayList;
public class MyCompileTask extends JavaCompile {
private List<Object> sources = new ArrayList<>();
@PathSensitive(PathSensitivity.RELATIVE)
@InputFiles
@SkipWhenEmpty
public FileTree getSources() {
return getProject().files(sources).getAsFileTree();
}
public void addSource(Object source) {
sources.add(source);
}
}
"""

buildFile << """
buildscript {
dependencies { classpath fileTree(dir: "producer/build/libs", include: '*.jar') }
}
apply plugin: 'java'
tasks.register("myJavaCompile", MyCompileTask) {
def sourceSet = sourceSets.main
def sourceDirectorySet = sourceSet.java
addSource(sourceDirectorySet)
classpath = sourceSet.compileClasspath
destinationDir = file('build/classes/my-java/main')
}
"""

file("src/main/java/MyClass.java") << """
public class MyClass {
}
"""
version previous requireGradleDistribution() withTasks 'assemble' inDirectory(file("producer")) run()

when:
version current requireGradleDistribution() withTasks 'myJavaCompile' run()
then:
file('build/classes/my-java/main/MyClass.class').isFile()
}
}

0 comments on commit 8d933dd

Please sign in to comment.