    1   /*
    2    * $Id: RunBugsTest.java,v 1.26 2005/03/02 08:22:42 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.26 $
    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    }