At teamcity there is now a Gradle build running against Groovy trunk.
Gradle has a decent amount of unit and integration tests. This should
improve the feedback for the latest Groovy.
http://teamcity.jetbrains.com
As Groovy is also build at teamcity we have implemented it in the
following way. One of Gradle's build configurations has a dependency
on a Groovy build configuration. This means this Gradle build
configuration gets triggered if there has been a new successful
Groovy build. This particular Gradle build then uses the groovy-all
jar of the Groovy build instead of groovy-all-1.5.5.
As you can see, the build fails. There are some serious issues. I
have filed them as a blocker:
http://jira.codehaus.org/browse/GROOVY-2792
Both tests in the appended code fails with an uncaught exception
under 1.6.
- Hans
class G16BugTest extends GroovyTestCase {
void testAssert() {
try {
new G16BugHelper().check()
} catch (AssertionError e) {
// ignore
}
}
void testCopy() {
def inst = new Copy()
inst.sourceDir = '/Users/hans/tmp/garbage/d1/' as File
inst.targetDir = '/Users/hans/tmp/garbage/d2/' as File
inst.execute()
}
}
class G16BugHelper {
void check() {
assert 0 > 1
}
}
class Copy {
File sourceDir
File targetDir
void execute() {
AntBuilder ant = new AntBuilder()
ant.copy(todir: targetDir) {
fileset(dir: sourceDir)
}
}
}
testAssert fails with:
org.codehaus.groovy.runtime.InvokerInvocationException:
java.lang.AssertionError: Expression: (0 > 1)
at org.codehaus.groovy.reflection.CachedMethod.invoke
(CachedMethod.java:104)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:892)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:743)
at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod
(InvokerHelper.java:769)
at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod
(InvokerHelper.java:749)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN
(ScriptBytecodeAdapter.java:160)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethod0
(ScriptBytecodeAdapter.java:185)
at G16BugTest.testAssert(G16BugTest.groovy:6)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at com.intellij.rt.execution.junit.JUnitStarter.main
(JUnitStarter.java:40)
Caused by: java.lang.AssertionError: Expression: (0 > 1)
at org.codehaus.groovy.runtime.InvokerHelper.assertFailed
(InvokerHelper.java:372)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.assertFailed
(ScriptBytecodeAdapter.java:642)
at G16BugHelper.check(G16BugTest.groovy:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at org.codehaus.groovy.reflection.CachedMethod.invoke
(CachedMethod.java:98)
... 26 more
testCopy fails with
org.codehaus.groovy.runtime.InvokerInvocationException:
org.codehaus.groovy.runtime.InvokerInvocationException:
org.codehaus.groovy.runtime.InvokerInvocationException:
org.codehaus.groovy.runtime.InvokerInvocationException:
org.codehaus.groovy.runtime.metaclass.MissingMethodExceptionNoStack:
No signature of method: Copy.fileset() is applicable for argument
types: (java.util.LinkedHashMap) values: {[dir:/Users/hans/tmp/
garbage/d1]}
at org.codehaus.groovy.reflection.CachedMethod.invoke
(CachedMethod.java:104)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:892)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:743)
at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod
(InvokerHelper.java:769)
at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod
(InvokerHelper.java:749)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN
(ScriptBytecodeAdapter.java:160)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethod0
(ScriptBytecodeAdapter.java:185)
at G16BugTest.testCopy(G16BugTest.groovy:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at com.intellij.rt.execution.junit.JUnitStarter.main
(JUnitStarter.java:40)
Caused by: org.codehaus.groovy.runtime.InvokerInvocationException:
org.codehaus.groovy.runtime.InvokerInvocationException:
org.codehaus.groovy.runtime.InvokerInvocationException:
org.codehaus.groovy.runtime.metaclass.MissingMethodExceptionNoStack:
No signature of method: Copy.fileset() is applicable for argument
types: (java.util.LinkedHashMap) values: {[dir:/Users/hans/tmp/
garbage/d1]}
at org.codehaus.groovy.reflection.CachedMethod.invoke
(CachedMethod.java:104)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod
(ClosureMetaClass.java:248)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:743)
at groovy.lang.Closure.call(Closure.java:292)
at groovy.lang.Closure.call(Closure.java:287)
at groovy.util.BuilderSupport.doInvokeMethod(BuilderSupport.java:148)
at groovy.util.AntBuilder.doInvokeMethod(AntBuilder.java:149)
at groovy.util.BuilderSupport.invokeMethod(BuilderSupport.java:64)
at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod
(InvokerHelper.java:775)
at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod
(InvokerHelper.java:749)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN
(ScriptBytecodeAdapter.java:160)
at Copy.execute(G16BugTest.groovy:33)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at org.codehaus.groovy.reflection.CachedMethod.invoke
(CachedMethod.java:98)
... 26 more
Caused by: org.codehaus.groovy.runtime.InvokerInvocationException:
org.codehaus.groovy.runtime.InvokerInvocationException:
org.codehaus.groovy.runtime.metaclass.MissingMethodExceptionNoStack:
No signature of method: Copy.fileset() is applicable for argument
types: (java.util.LinkedHashMap) values: {[dir:/Users/hans/tmp/
garbage/d1]}
at org.codehaus.groovy.reflection.CachedMethod.invoke
(CachedMethod.java:104)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod
(ClosureMetaClass.java:248)
at
org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN
(ScriptBytecodeAdapter.java:76)
at Copy$_execute_closure1.doCall(G16BugTest.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at org.codehaus.groovy.reflection.CachedMethod.invoke
(CachedMethod.java:98)
... 43 more
Caused by: org.codehaus.groovy.runtime.InvokerInvocationException:
org.codehaus.groovy.runtime.metaclass.MissingMethodExceptionNoStack:
No signature of method: Copy.fileset() is applicable for argument
types: (java.util.LinkedHashMap) values: {[dir:/Users/hans/tmp/
garbage/d1]}
at org.codehaus.groovy.reflection.CachedMethod.invoke
(CachedMethod.java:104)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:892)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:743)
at org.codehaus.groovy.runtime.InvokerHelper.invokePojoMethod
(InvokerHelper.java:757)
at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod
(InvokerHelper.java:745)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN
(ScriptBytecodeAdapter.java:160)
at Copy.invokeMethod(G16BugTest.groovy)
at
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeOnDelegatio
nObjects(ClosureMetaClass.java:371)
at
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod
(ClosureMetaClass.java:322)
at
org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN
(ScriptBytecodeAdapter.java:76)
at Copy$_execute_closure1.doCall(G16BugTest.groovy:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at org.codehaus.groovy.reflection.CachedMethod.invoke
(CachedMethod.java:98)
... 52 more
Caused by:
org.codehaus.groovy.runtime.metaclass.MissingMethodExceptionNoStack:
No signature of method: Copy.fileset() is applicable for argument
types: (java.util.LinkedHashMap) values: {[dir:/Users/hans/tmp/
garbage/d1]}
--
Hans Dockter
Gradle Project lead
http://www.gradle.org