aboutsummaryrefslogtreecommitdiff
path: root/src/integTest/groovy/frege/gradle/tasks/FregeCompileIntegTest.groovy
diff options
context:
space:
mode:
authorRene Groeschke <rene@gradle.com>2015-11-22 00:50:45 +0000
committerRene Groeschke <rene@gradle.com>2015-11-22 00:50:45 +0000
commitfdc7b27d69b22e0ffa151d56c8f3812dcd229555 (patch)
treef67fb55cdf48e05596f6d71e2b7f11e6853f5f28 /src/integTest/groovy/frege/gradle/tasks/FregeCompileIntegTest.groovy
parenta676a61ddf3478356b43b4b7f947e6f769cde50e (diff)
downloadfrege-gradle-plugin-fdc7b27d69b22e0ffa151d56c8f3812dcd229555.tar.gz
frege-gradle-plugin-fdc7b27d69b22e0ffa151d56c8f3812dcd229555.tar.bz2
frege-gradle-plugin-fdc7b27d69b22e0ffa151d56c8f3812dcd229555.zip
some more work on coverage and some cleanup
- get packages for integ tests right - introduce common AbstractFregeIntegrationSpec - first stab of unit test coverage for FregeCompile - minor cleanup on FregeCompile - configure fregePath as part as part of base plugin convention
Diffstat (limited to 'src/integTest/groovy/frege/gradle/tasks/FregeCompileIntegTest.groovy')
-rw-r--r--src/integTest/groovy/frege/gradle/tasks/FregeCompileIntegTest.groovy74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/integTest/groovy/frege/gradle/tasks/FregeCompileIntegTest.groovy b/src/integTest/groovy/frege/gradle/tasks/FregeCompileIntegTest.groovy
new file mode 100644
index 0000000..58e21ba
--- /dev/null
+++ b/src/integTest/groovy/frege/gradle/tasks/FregeCompileIntegTest.groovy
@@ -0,0 +1,74 @@
+package frege.gradle.tasks
+import frege.gradle.integtest.fixtures.AbstractFregeIntegrationSpec
+
+import static org.gradle.testkit.runner.TaskOutcome.FAILED
+
+class FregeCompileIntegTest extends AbstractFregeIntegrationSpec {
+
+ List<File> pluginClasspath
+
+ def setup() {
+ buildFile << """
+ plugins {
+ id 'org.frege-lang.base'
+ }
+
+ import frege.gradle.tasks.FregeCompile
+
+ repositories { jcenter() }
+
+ configurations { frege {} }
+
+ dependencies {
+ frege "org.frege-lang:frege:$DEFAULT_FREGE_VERSION"
+ }
+
+ task compile(type: FregeCompile) {
+ destinationDir = file("frege-output")
+ source("frege-src")
+ module = "frege-src"
+ classpath = configurations.frege
+ fregePath = configurations.frege
+ }
+ """
+
+ testProjectDir.newFolder("frege-src")
+ }
+
+ def "shows compile errors"() {
+ given:
+ simpleFrege()
+ failingFrege()
+ when:
+ def result = fail("compile")
+
+ then:
+ result.task(":compile").outcome == FAILED
+ result.output.contains("Failing.fr:6: can't resolve `Hello`")
+ }
+
+ def failingFrege() {
+ def failingFrege = testProjectDir.newFile("frege-src/Failing.fr")
+ failingFrege << """
+
+ module Failing where
+
+ failingFun _ = do
+ println(Hello)
+ """
+ }
+
+ def simpleFrege() {
+
+ def helloFrege = testProjectDir.newFile("frege-src/Hello.fr")
+ helloFrege << """
+
+ module Hello where
+
+ import frege.prelude.PreludeBase
+
+ main _ = do
+ println("Hello From Frege")
+ """
+ }
+}