summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRene Groeschke <rene@gradle.com>2015-12-29 15:56:04 +0100
committerRene Groeschke <rene@gradle.com>2015-12-29 15:56:04 +0100
commitedb3e94f2e2c14b6f6cd899f0fe5d8227c7f2dbd (patch)
treebbf31f8f5df697ab17d7e6779e84d1195bff67ba
parent7fb3f43096fa6b142eb059e1eeaca79abcaa3009 (diff)
downloadfrege-gradle-plugin-edb3e94f2e2c14b6f6cd899f0fe5d8227c7f2dbd.tar.gz
frege-gradle-plugin-edb3e94f2e2c14b6f6cd899f0fe5d8227c7f2dbd.tar.bz2
frege-gradle-plugin-edb3e94f2e2c14b6f6cd899f0fe5d8227c7f2dbd.zip
workaround for failing fregedoc when ignoring java sources
-rw-r--r--src/integTest/groovy/frege/gradle/plugins/FregePluginIntegTest.groovy8
-rw-r--r--src/main/groovy/frege/gradle/plugins/FregePlugin.groovy6
-rw-r--r--src/main/groovy/frege/gradle/tasks/FregeDoc.groovy15
3 files changed, 16 insertions, 13 deletions
diff --git a/src/integTest/groovy/frege/gradle/plugins/FregePluginIntegTest.groovy b/src/integTest/groovy/frege/gradle/plugins/FregePluginIntegTest.groovy
index c394e48..4142790 100644
--- a/src/integTest/groovy/frege/gradle/plugins/FregePluginIntegTest.groovy
+++ b/src/integTest/groovy/frege/gradle/plugins/FregePluginIntegTest.groovy
@@ -1,10 +1,10 @@
package frege.gradle.plugins
-
import frege.gradle.integtest.fixtures.AbstractFregeIntegrationSpec
import org.gradle.testkit.runner.BuildResult
-import spock.lang.Ignore
import spock.lang.Unroll
-import static org.gradle.testkit.runner.TaskOutcome.*
+
+import static org.gradle.testkit.runner.TaskOutcome.SUCCESS
+import static org.gradle.testkit.runner.TaskOutcome.UP_TO_DATE
class FregePluginIntegTest extends AbstractFregeIntegrationSpec {
@@ -112,7 +112,6 @@ class FregePluginIntegTest extends AbstractFregeIntegrationSpec {
}
- @Ignore
def "frege doc works with mixed sources"() {
given:
buildFile << """
@@ -130,7 +129,6 @@ class FregePluginIntegTest extends AbstractFregeIntegrationSpec {
result.task(":fregeDoc").outcome == SUCCESS
}
-
def "supports additional source sets"() {
given:
buildFile << """
diff --git a/src/main/groovy/frege/gradle/plugins/FregePlugin.groovy b/src/main/groovy/frege/gradle/plugins/FregePlugin.groovy
index 13c1e9a..b2ca074 100644
--- a/src/main/groovy/frege/gradle/plugins/FregePlugin.groovy
+++ b/src/main/groovy/frege/gradle/plugins/FregePlugin.groovy
@@ -5,9 +5,7 @@ import frege.gradle.tasks.FregeQuickCheck
import frege.gradle.tasks.FregeRepl
import org.gradle.api.Plugin
import org.gradle.api.Project
-import org.gradle.api.file.FileCollection
import org.gradle.api.tasks.SourceSet
-import org.gradle.api.tasks.util.PatternSet
class FregePlugin implements Plugin<Project> {
@@ -43,8 +41,4 @@ class FregePlugin implements Plugin<Project> {
fregeDoc.classpath = mainSourceSet.runtimeClasspath
}
-
- FileCollection findJavaModulesToExclude(SourceSet sourceSet) {
- return sourceSet.allJava.asFileTree.matching { PatternSet pattern -> pattern.include("**/*.java")}
- }
}
diff --git a/src/main/groovy/frege/gradle/tasks/FregeDoc.groovy b/src/main/groovy/frege/gradle/tasks/FregeDoc.groovy
index af4b924..30f62c6 100644
--- a/src/main/groovy/frege/gradle/tasks/FregeDoc.groovy
+++ b/src/main/groovy/frege/gradle/tasks/FregeDoc.groovy
@@ -1,7 +1,9 @@
package frege.gradle.tasks
+import org.apache.commons.io.output.TeeOutputStream
import org.gradle.api.Action
import org.gradle.api.DefaultTask
+import org.gradle.api.GradleException
import org.gradle.api.file.FileCollection
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.Optional
@@ -50,6 +52,8 @@ class FregeDoc extends DefaultTask {
@TaskAction
void fregedoc() {
+ ByteArrayOutputStream berr = new ByteArrayOutputStream()
+ def teeOutputStream = new TeeOutputStream(System.err, berr)
def result = project.javaexec(new Action<JavaExecSpec>() {
@Override
void execute(JavaExecSpec javaExecSpec) {
@@ -65,11 +69,18 @@ class FregeDoc extends DefaultTask {
javaExecSpec.workingDir = project.projectDir
javaExecSpec.standardInput = System.in
javaExecSpec.standardOutput = System.out
- javaExecSpec.errorOutput = System.err
+ javaExecSpec.errorOutput = teeOutputStream
javaExecSpec.classpath = this.classpath
+
+ javaExecSpec.ignoreExitValue = true
}
})
- }
+ //Workaround for failing with java sources. should result in exit value 0 anyway.
+ def berrString = berr.toString()
+ if (result.exitValue !=0 && !berrString.contains("there were errors for")) {
+ throw new GradleException("Non zero exit value running FregeDoc.");
+ }
+ }
}