1   /*
2    * $Id: RunBugsTest.java,v 1.25 2004/03/23 13:20:31 jstrachan Exp $
3    * 
4    * Copyright 2003 (C) James Strachan and Bob Mcwhirter. All Rights Reserved.
5    * 
6    * Redistribution and use of this software and associated documentation
7    * ("Software"), with or without modification, are permitted provided that the
8    * following conditions are met:
9    *  1. Redistributions of source code must retain copyright statements and
10   * notices. Redistributions must also contain a copy of this document.
11   *  2. Redistributions in binary form must reproduce the above copyright
12   * notice, this list of conditions and the following disclaimer in the
13   * documentation and/or other materials provided with the distribution.
14   *  3. The name "groovy" must not be used to endorse or promote products
15   * derived from this Software without prior written permission of The Codehaus.
16   * For written permission, please contact info@codehaus.org.
17   *  4. Products derived from this Software may not be called "groovy" nor may
18   * "groovy" appear in their names without prior written permission of The
19   * Codehaus. "groovy" is a registered trademark of The Codehaus.
20   *  5. Due credit should be given to The Codehaus - http://groovy.codehaus.org/
21   * 
22   * THIS SOFTWARE IS PROVIDED BY THE CODEHAUS AND CONTRIBUTORS ``AS IS'' AND ANY
23   * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
24   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25   * DISCLAIMED. IN NO EVENT SHALL THE CODEHAUS OR ITS CONTRIBUTORS BE LIABLE FOR
26   * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30   * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
32   * DAMAGE.
33   *  
34   */
35  
36  package org.codehaus.groovy.classgen;
37  
38  import groovy.lang.GroovyObject;
39  
40  import org.codehaus.groovy.classgen.TestSupport;
41  
42  /***
43   * A helper class for testing bugs in code generation errors. By turning on the
44   * logging in TestSupport we can dump the ASM code generation code for inner
45   * classes etc.
46   * 
47   * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
48   * @version $Revision: 1.25 $
49   */
50  public class RunBugsTest extends TestSupport {
51  
52      /*
53      public void testStaticMethodCall() throws Exception {
54          GroovyObject object = compile("src/test/groovy/bugs/StaticMethodCallBug.groovy");
55          object.invokeMethod("testBug", null);
56      }
57  
58      public void testTryCatchBug() throws Exception {
59          GroovyObject object = compile("src/test/groovy/bugs/TryCatchBug.groovy");
60          object.invokeMethod("testBug", null);
61      }
62  
63      public void testRodsBug() throws Exception {
64          GroovyObject object = compile("src/test/groovy/bugs/RodsBug.groovy");
65          object.invokeMethod("testBug", null);
66      }
67  
68      public void testCastBug() throws Exception {
69          GroovyObject object = compile("src/test/groovy/ClosureMethodCallTest.groovy");
70          object.invokeMethod("testCallingClosureWithMultipleArguments", null);
71      }
72  
73      public void testGuillaumesMapBug() throws Exception {
74          GroovyObject object = compile("src/test/groovy/bugs/GuillaumesMapBug.groovy");
75          object.invokeMethod("testBug", null);
76      }
77  
78      public void testUseClosureInScript() throws Exception {
79          GroovyObject object = compile("src/test/groovy/script/UseClosureInScript.groovy");
80          object.invokeMethod("run", null);
81      }
82  
83      public void testUseStaticInClosure() throws Exception {
84          GroovyObject object = compile("src/test/groovy/bugs/UseStaticInClosureBug.groovy");
85          object.invokeMethod("testBug2", null);
86      }
87  
88      public void testPrimitiveTypeFieldTest() throws Exception {
89          GroovyObject object = compile("src/test/groovy/PrimitiveTypeFieldTest.groovy");
90          object.invokeMethod("testPrimitiveField", null);
91      }
92      
93      public void testMethodDispatchBug() throws Exception {
94          GroovyObject object = compile("src/test/groovy/bugs/MethodDispatchBug.groovy");
95          object.invokeMethod("testBug", null);
96      }
97      public void testClosureInClosureTest() throws Exception {
98          GroovyObject object = compile("src/test/groovy/ClosureInClosureTest.groovy");
99          object.invokeMethod("testInvisibleVariable", null);
100     }
101     public void testStaticMarkupBug() throws Exception {
102         GroovyObject object = compile("src/test/groovy/bugs/StaticMarkupBug.groovy");
103         object.invokeMethod("testBug", null);
104     }
105     public void testOverloadInvokeMethodBug() throws Exception {
106         GroovyObject object = compile("src/test/groovy/bugs/OverloadInvokeMethodBug.groovy");
107         object.invokeMethod("testBug", null);
108     }
109     public void testClosureVariableBug() throws Exception {
110         GroovyObject object = compile("src/test/groovy/bugs/ClosureVariableBug.groovy");
111         object.invokeMethod("testBug", null);
112     }
113     
114     public void testMarkupAndMethodBug() throws Exception {
115         GroovyObject object = compile("src/test/groovy/bugs/MarkupAndMethodBug.groovy");
116         object.invokeMethod("testBug", null);
117     }
118     public void testClosureParameterPassingBug() throws Exception {
119         GroovyObject object = compile("src/test/groovy/bugs/ClosureParameterPassingBug.groovy");
120         object.invokeMethod("testBug", null);
121     }
122     public void testNestedClosureBug() throws Exception {
123         GroovyObject object = compile("src/test/groovy/bugs/NestedClosure2Bug.groovy");
124         object.invokeMethod("testFieldBug", null);
125     }
126     public void testSuperMethod2Bug() throws Exception {
127         GroovyObject object = compile("src/test/groovy/bugs/SuperMethod2Bug.groovy");
128         object.invokeMethod("testBug", null);
129     }
130     public void testToStringBug() throws Exception {
131         GroovyObject object = compile("src/test/groovy/bugs/ToStringBug.groovy");
132         object.invokeMethod("testBug", null);
133     }
134     public void testByteIndexBug() throws Exception {
135         GroovyObject object = compile("src/test/groovy/bugs/ByteIndexBug.groovy");
136         object.invokeMethod("testBug", null);
137     }
138     public void testGroovy252_Bug() throws Exception {
139         GroovyObject object = compile("src/test/groovy/bugs/Groovy252_Bug.groovy");
140         object.invokeMethod("testBug", null);
141     }
142     
143     */
144         
145     public void testGroovy303_Bug() throws Exception {
146         GroovyObject object = compile("src/test/groovy/bugs/Groovy303_Bug.groovy");
147         object.invokeMethod("testBug", null);
148     }
149     
150     
151     
152    }