--
You received this message because you are subscribed to the Google Groups "Spock Framework - User" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/spockframework?hl=en.

Re: Problem with @Unroll with groovy-1.8

Administrator

spock-core-0.5-groovy-1.8 was an experimental release based on Groovy 1.8 beta 2 (or 3?) and is outdated. If you want to use Spock with Groovy 1.8 at this time, please use spock-core-0.6-groovy-1.8-SNAPSHOT.
Not exactly sure why you get the error, but it's related to a change in spock-core-0.5-groovy-1.8 (use of Groovy 1.8's annotation closures for @Unroll) that has meanwhile been undone. So switching to 0.6-SNAPSHOT should solve your problem.

Cheers,
Peter

On 29.04.2011, at 18:25, Ken Kousen wrote:

> I'm trying to run the basic spock-example that comes with the main distribution, using Groovy 1.8 and 0.5-spock-1.8.
>
> On the spec DataDriven.groovy, I get the following error:
>
> "Only classes and closures can be used for attribute 'value' in @spock.lang.Unroll'
>
> The error is flagging the line
> @Unroll("minimum of #a and #b is #c")
>
> This worked fine with Groovy 1.7. Has something fundamental changed here? How do I fix it?

Re: Problem with @Unroll with groovy-1.8

I got a bunch of new downloads, as expected, but the same error on the same class. It still doesn't understand a string argument for @Unroll.

--
You received this message because you are subscribed to the Google Groups "Spock Framework - User" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/spockframework?hl=en.

Re: Problem with @Unroll with groovy-1.8

Administrator

On Apr 30, 1:28 pm, Ken Kousen <[hidden email]> wrote:
> I went to the build.gradle file for the spock-example and edited to:
>
> groovy("org.codehaus.groovy:groovy-all:1.8.0")
> testCompile "org.spockframework:spock-core:0.6-groovy-1.8-SNAPSHOT"
>
> I got a bunch of new downloads, as expected, but the same error on the same
> class. It still doesn't understand a string argument for @Unroll.

Not sure what exactly you are doing (e.g. which version of the spock-
example project you are using), but if you clone Spock from GitHub and
check out the 'groovy-1.8' branch, all tests in spock-example should
pass (I made some fixes today). Note that the spock-example project
has its own Gradle build, and isn't currently built as part of the
overall Gradle build.

On Apr 30, 1:28 pm, Ken Kousen <[hidden email]> wrote:
> I went to the build.gradle file for the spock-example and edited to:
>
> groovy("org.codehaus.groovy:groovy-all:1.8.0")
> testCompile "org.spockframework:spock-core:0.6-groovy-1.8-SNAPSHOT"
>
> I got a bunch of new downloads, as expected, but the same error on the same
> class. It still doesn't understand a string argument for @Unroll.

Not sure what exactly you are doing (e.g. which version of the spock-
example project you are using), but if you clone Spock from GitHub and
check out the 'groovy-1.8' branch, all tests in spock-example should
pass (I made some fixes today). Note that the spock-example project
has its own Gradle build, and isn't currently built as part of the
overall Gradle build.

--
You received this message because you are subscribed to the Google Groups "Spock Framework - User" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/spockframework?hl=en.

Re: Problem with @Unroll with groovy-1.8

Administrator

At the risk of confusing you further, until this moment I thought that I had undone this change shortly after the release of 0.5-groovy-1.8, but apparently I haven't. Can't say right now if this change (usage of annotation closures for @Unroll) will make it into 0.6-groovy-1.8, which I consider the first official release supporting 1.8.

Cheers,
Peter

On 01.05.2011, at 03:06, Kenneth Kousen wrote:

> Ah, I get it now. I cloned the repo, but I didn't switch branches to groovy-1.8 before running the build. Now I have it right.
>
> I also see that the way you fixed the problem was to wrap the string inside a closure, i.e.,
>
> @Unroll({"minimum of $a and $b is $c"})

Re: Problem with @Unroll with groovy-1.8

I just got bitten by this today when trying to upgrade to the
groovy-1.8 version of Spock for Grails 1.4. This is a pretty
significant breaking change. I have hundreds if not thousands of
@Unroll calls scattered across numerous projects. I'm not sure I
understand what using a Closure parameter offer that's useful to
@Unroll to justify the change.

Re: Problem with @Unroll with groovy-1.8

Administrator

On Jun 3, 4:29 am, Robert Fletcher <[hidden email]>
wrote:
> I'm not sure I understand what using a Closure parameter offer that's useful to
> @Unroll to justify the change.

We had our reasons, but we also listen to our users (especially the
long-eared DJ's among them). Hereby I'm happy to announce that we've
decided to revert the change before the 0.6 release. So all your prior
investments in @Unroll are safe. You'll still be tempted to touch them
though, because the new recommended syntax is almost irresistible:

Re: Problem with @Unroll with groovy-1.8

I've been playing with the new syntax and to some extent I can see the
advantages, particularly in that you can do more complex things with
params in a GString than were possible with the # expression.

However, the new proposal is fantastic news. That's what I've been
hoping @Unroll would be able to do all along!

> On Jun 3, 4:29 am, Robert Fletcher <[hidden email]>
> wrote:
>> I'm not sure I understand what using a Closure parameter offer that's useful to
>> @Unroll to justify the change.
>
> We had our reasons, but we also listen to our users (especially the
> long-eared DJ's among them). Hereby I'm happy to announce that we've
> decided to revert the change before the 0.6 release. So all your prior
> investments in @Unroll are safe. You'll still be tempted to touch them
> though, because the new recommended syntax is almost irresistible:
>
> @Unroll
> def "you'll want to #touch.touch.touch me #here"() { ... }
>
> Cheers,
> Peter
>
> --
> You received this message because you are subscribed to the Google Groups "Spock Framework - User" group.
> To post to this group, send email to [hidden email].
> To unsubscribe from this group, send email to [hidden email].
> For more options, visit this group at http://groups.google.com/group/spockframework?hl=en.
>
>

and it looks like this is exactly what your new unroll syntax does. This would be beautiful.

Does the new syntax exist in a snapshot version? As per our discussion on the gradle forums I just upgraded to M6 and the latest "spock-core-0.6-groovy-1.8-20111202.050205-347" snapshot still seems to expect the "@Unroll( { ... } )" closure syntax.