jastrachan | 11 Apr 20:18 2005

[groovy-dev] TCK stuff

I'd like us to start kicking the TCK into shape now that the grammar 
has settled down & we've a pretty solid base. I'd like us to focus on 
typing as much bad groovy as we can & ensuring the compiler/verifier 
correctly barfs with sensible error messages.

At the moment the TCK is a little out of the way from the main 
groovy-core module. I'm proposing we move this into the core source 
tree, say under groovy-core/src/tck - then we could hopefully 
autogenerate the various test cases we need from this codebase & 
include the TCK tests as part of the normal build - then we'll be 
enouraged to add more and more tests into the TCK and less in the core 
RI codebase.

BTW much of the TCK will be about bad use of groovy code & checking for 
errors. e.g. of this style of test...

         int a
         int b = 1
         int c,d,e
         int f,g = 2
         int h = 3,i = 4  // extra permutations
         int j = 5,k      // extra permutations
         //int int p// <at> fail:parse

using the  <at> fail annotation in comments - each failing line produces 
another test case instance to check it did actually fail.

I'm wondering, should we separate these out (or use a different file 
name extension to highlight its a pre processed test case)? As we will 
probably have a lot of tests that can be run vanilla? i.e. tests which 
are self contained and just pass versus tests like the above that 
generate 1 working test and N (where N = the count of  <at> fail tags) tests 
that test for a specific line which causes a failure.

However we do it, I'd like us to move the test cases into 
groovy-core/src/tck so we can all start working on them & testing more 
and more use cases and edge cases.