From e2259af79dab2a3e132a7d049d180c47ee8a43b8 Mon Sep 17 00:00:00 2001 From: Rene Groeschke Date: Sun, 22 Nov 2015 19:16:45 +0000 Subject: add integ test coverage for using custom sourcesets with frege - test coverage for #15 --- .../gradle/plugins/FregePluginIntegTest.groovy | 56 ++++++++++++++++++---- 1 file changed, 46 insertions(+), 10 deletions(-) (limited to 'src/integTest/groovy') 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") -- cgit