aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRene Groeschke <rene@gradle.com>2015-11-22 19:16:45 +0000
committerRene Groeschke <rene@gradle.com>2015-11-22 19:16:45 +0000
commite2259af79dab2a3e132a7d049d180c47ee8a43b8 (patch)
tree13116bd67041a08a6c02fe742b614d0cc731c3b5
parent62055a29e689335b34d6ef55f63a1cd16ea07c7e (diff)
downloadfrege-gradle-plugin-e2259af79dab2a3e132a7d049d180c47ee8a43b8.tar.gz
frege-gradle-plugin-e2259af79dab2a3e132a7d049d180c47ee8a43b8.tar.bz2
frege-gradle-plugin-e2259af79dab2a3e132a7d049d180c47ee8a43b8.zip
add integ test coverage for using custom sourcesets with frege
- test coverage for #15
-rw-r--r--src/integTest/groovy/frege/gradle/plugins/FregePluginIntegTest.groovy56
1 files changed, 46 insertions, 10 deletions
diff --git a/src/integTest/groovy/frege/gradle/plugins/FregePluginIntegTest.groovy b/src/integTest/groovy/frege/gradle/plugins/FregePluginIntegTest.groovy
index e837a2a..7272113 100644
--- a/src/integTest/groovy/frege/gradle/plugins/FregePluginIntegTest.groovy
+++ b/src/integTest/groovy/frege/gradle/plugins/FregePluginIntegTest.groovy
@@ -43,16 +43,7 @@ class FregePluginIntegTest extends AbstractFregeIntegrationSpec {
${sayHelloTask()}
"""
- def fregeSourceFile = testProjectDir.newFile("src/main/frege/org/frege/HelloFrege.fr")
-
- fregeSourceFile << """
- module org.frege.HelloFrege where
-
- greeting = "Hello Frege!"
-
- main _ = do
- println greeting
- """
+ fregeModule()
when:
def result = run(gradleVersion, "sayHello")
@@ -69,6 +60,20 @@ class FregePluginIntegTest extends AbstractFregeIntegrationSpec {
"3.22.367-g2737683" | "2.8"
}
+ private void fregeModule(String modulePath = "src/main/frege/org/frege/HelloFrege.fr") {
+ def moduleFolder = new File(testProjectDir.root, modulePath).parentFile
+ moduleFolder.mkdirs()
+ def moduleSource = testProjectDir.newFile(modulePath)
+ moduleSource << """
+ module org.frege.HelloFrege where
+
+ greeting = "Hello Frege!"
+
+ main _ = do
+ println greeting
+ """
+ }
+
def "can reference java from frege"() {
given:
buildFile << """
@@ -89,6 +94,37 @@ class FregePluginIntegTest extends AbstractFregeIntegrationSpec {
result.output.contains("hello from java")
}
+
+ def "supports additional source sets"() {
+ given:
+ buildFile << """
+
+ sourceSets {
+ api
+ }
+
+ dependencies {
+ apiCompile "org.frege-lang:frege:$DEFAULT_FREGE_VERSION"
+ }
+
+
+ """
+ and:
+ javaCode()
+ fregeModule("src/api/frege/org/frege/HelloFrege.fr")
+ when:
+ BuildResult result = run("apiClasses")
+ then:
+ result.task(":compileApiJava").outcome == UP_TO_DATE
+ result.task(":compileApiFrege").outcome == SUCCESS
+ classFileExists("api/org/frege/HelloFrege.class")
+ }
+
+ def classFileExists(String relativeClasspath) {
+ assert new File(testProjectDir.root, "build/classes/$relativeClasspath/").exists()
+ true
+ }
+
def fregeCallingJava() {
File fregeSourceFile = testProjectDir.newFile("src/main/frege/org/frege/HelloFrege.fr")