Ignore:
Timestamp:
2017-09-17T15:47:18+02:00 (3 years ago)
Author:
Don-vip
Message:

update to JAPICC 2.3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/japicc/modules/Internals/RegTests.pm

    r11682 r12872  
    8080    writeFile($Path_v2."/BaseAbstractClass.java", $BaseAbstractClass);
    8181   
    82     # Removed_Annotation
    83     writeFile($Path_v1."/RemovedAnnotation.java",
    84     "package $PackageName;
    85     public \@interface RemovedAnnotation {
    86     }");
    87    
    88     # Beta Annotation
    89     writeFile($Path_v1."/Beta.java",
    90     "package $PackageName;
    91     public \@interface Beta {
    92     }");
    93    
    94     writeFile($Path_v2."/Beta.java",
    95     "package $PackageName;
    96     public \@interface Beta {
    97     }");
    98    
    9982    # BaseClass
    10083    my $BaseClass = "package $PackageName;
     
    142125    writeFile($Path_v2."/BaseConstantInterface.java", $BaseConstantInterface);
    143126   
    144     # Removed_Method (Beta method)
    145     writeFile($Path_v1."/RemovedBetaMethod.java",
    146     "package $PackageName;
    147     public class RemovedBetaMethod
    148     {
     127    if(cmpVersions($In::Opt{"CompilerVer"}, "1.5")>=0)
     128    {
     129        # GenericClass1
     130        writeFile($Path_v1."/GenericClass1.java",
     131        "package $PackageName;
     132        public class GenericClass1<T> {
     133            public Integer method(T param) { return 0; }
     134        }");
     135        writeFile($Path_v2."/GenericClass1.java",
     136        "package $PackageName;
     137        public class GenericClass1<T> {
     138            public Integer method(T param) { return 0; }
     139        }");
     140       
     141        # GenericClass2
     142        writeFile($Path_v1."/GenericClass2.java",
     143        "package $PackageName;
     144        public class GenericClass2<T> {
     145            public void method() { }
     146        }");
     147        writeFile($Path_v2."/GenericClass2.java",
     148        "package $PackageName;
     149        public class GenericClass2<T> {
     150            public void method() { }
     151        }");
     152       
     153        # Class became generic
     154        writeFile($Path_v1."/ClassBecameGeneric.java",
     155        "package $PackageName;
     156        public abstract class ClassBecameGeneric {
     157            public ClassBecameGeneric() {}
     158            public abstract ClassBecameGeneric doSomething();
     159        }");
     160        writeFile($Path_v2."/ClassBecameGeneric.java",
     161        "package $PackageName;
     162        public abstract class ClassBecameGeneric<T> {
     163            public ClassBecameGeneric() {}
     164            public abstract T doSomething();
     165        }");
     166       
     167        writeFile($TestsPath."/Test_ClassBecameGeneric.java",
     168        "import $PackageName.*;
     169        class GenerifyingClassDerived extends ClassBecameGeneric {
     170            public ClassBecameGeneric doSomething() { return new GenerifyingClassDerived(); }
     171            public static void main(String[] args) { }
     172        }
     173        public class Test_ClassBecameGeneric
     174        {
     175            public static void main(String[] args) {
     176                GenerifyingClassDerived X = new GenerifyingClassDerived();
     177                ClassBecameGeneric Res = X.doSomething();
     178            }
     179        }");
     180       
     181        # Class became raw
     182        writeFile($Path_v1."/ClassBecameRaw.java",
     183        "package $PackageName;
     184        public class ClassBecameRaw<T extends String> {
     185            public void method(T param) { }
     186        }");
     187        writeFile($Path_v2."/ClassBecameRaw.java",
     188        "package $PackageName;
     189        public class ClassBecameRaw {
     190            public void method(String param) { }
     191        }");
     192       
     193        writeFile($TestsPath."/Test_ClassBecameRaw.java",
     194        "import $PackageName.*;
     195        public class Test_ClassBecameRaw
     196        {
     197            public static void main(String[] args) {
     198                ClassBecameRaw<String> X = new ClassBecameRaw<String>();
     199                X.method(\"XXX\");
     200            }
     201        }");
     202       
     203        # Interface became generic
     204        writeFile($Path_v1."/InterfaceBecameGeneric.java",
     205        "package $PackageName;
     206        public interface InterfaceBecameGeneric {
     207            public void method();
     208        }");
     209        writeFile($Path_v2."/InterfaceBecameGeneric.java",
     210        "package $PackageName;
     211        public interface InterfaceBecameGeneric<T> {
     212            public void method();
     213        }");
     214       
     215        # Interface became raw
     216        writeFile($Path_v1."/InterfaceBecameRaw.java",
     217        "package $PackageName;
     218        public interface InterfaceBecameRaw<T> {
     219            public void method();
     220        }");
     221        writeFile($Path_v2."/InterfaceBecameRaw.java",
     222        "package $PackageName;
     223        public interface InterfaceBecameRaw {
     224            public void method();
     225        }");
     226       
     227        writeFile($TestsPath."/Test_InterfaceBecameRaw.java",
     228        "import $PackageName.*;
     229        class InterfaceBecameRawDerived implements InterfaceBecameRaw<String> {
     230            public void method() { }
     231            public static void main(String[] args) { }
     232        }
     233        public class Test_InterfaceBecameRaw
     234        {
     235            public static void main(String[] args) {
     236                InterfaceBecameRawDerived X = new InterfaceBecameRawDerived();
     237                X.method();
     238            }
     239        }");
     240       
     241        # Changed generic super-class
     242        writeFile($Path_v1."/GenericSuperClassChanged.java",
     243        "package $PackageName;
     244        public class GenericSuperClassChanged extends GenericClass1<String> {
     245            public Integer method() { return 0; }
     246        }");
     247        writeFile($Path_v2."/GenericSuperClassChanged.java",
     248        "package $PackageName;
     249        public class GenericSuperClassChanged extends GenericClass1<Integer> {
     250            public Integer method() { return 0; }
     251        }");
     252       
     253        # Extending class with generic parameters
     254        writeFile($Path_v1."/ExtendingClassWithGeneric.java",
     255        "package $PackageName;
     256        public class ExtendingClassWithGeneric {
     257            public void method() { }
     258        }");
     259        writeFile($Path_v2."/ExtendingClassWithGeneric.java",
     260        "package $PackageName;
     261        public class ExtendingClassWithGeneric extends GenericClass2<String>
     262        {
     263        }");
     264       
     265        # Renamed generic parameter
     266        writeFile($Path_v1."/RenamedGenericParameter.java",
     267        "package $PackageName;
     268        public class RenamedGenericParameter<A extends String> {
     269            public void method(A param) { }
     270        }");
     271        writeFile($Path_v2."/RenamedGenericParameter.java",
     272        "package $PackageName;
     273        public class RenamedGenericParameter<B extends String> {
     274            public void method(B param) { }
     275        }");
     276       
     277        # Changed field type by introducing of a generic parameter
     278        writeFile($Path_v1."/ChangedFieldTypeByGenericParam.java",
     279        "package $PackageName;
     280        public class ChangedFieldTypeByGenericParam {
     281            public ChangedFieldTypeByGenericParam(String param) { f=param; }
     282            public void method() { }
     283            public String f;
     284        }");
     285        writeFile($Path_v2."/ChangedFieldTypeByGenericParam.java",
     286        "package $PackageName;
     287        public class ChangedFieldTypeByGenericParam<T> {
     288            public ChangedFieldTypeByGenericParam(T param) { f=param; }
     289            public void method() { }
     290            public T f;
     291        }");
     292       
     293        writeFile($Path_v1."/TestGeneric.java",
     294        "package $PackageName;
     295        public class TestGeneric {
     296            public ChangedFieldTypeByGenericParam get1() { return new ChangedFieldTypeByGenericParam(\"XXX\"); }
     297            public ChangedFieldTypeByGenericParam get2() { return new ChangedFieldTypeByGenericParam(\"XXX\"); }
     298        }");
     299        writeFile($Path_v2."/TestGeneric.java",
     300        "package $PackageName;
     301        public class TestGeneric {
     302            public ChangedFieldTypeByGenericParam<String>  get1() { return new ChangedFieldTypeByGenericParam<String>(\"XXX\"); }
     303            public ChangedFieldTypeByGenericParam<Integer> get2() { return new ChangedFieldTypeByGenericParam<Integer>(0); }
     304        }");
     305       
     306        writeFile($TestsPath."/Test_ChangedFieldTypeByGenericParam.java",
     307        "import $PackageName.*;
     308        public class Test_ChangedFieldTypeByGenericParam
     309        {
     310            public static void main(String[] args)
     311            {
     312                TestGeneric X = new TestGeneric();
     313                ChangedFieldTypeByGenericParam Res1 = X.get1();
     314                ChangedFieldTypeByGenericParam Res2 = X.get2();
     315                Res1.f = Res2.f;
     316            }
     317        }");
     318       
     319        # Changed constructor after generifying
     320        writeFile($Path_v1."/ChangedCtorAfterGenerifying.java",
     321        "package $PackageName;
     322        public class ChangedCtorAfterGenerifying {
     323            public ChangedCtorAfterGenerifying(String param) { }
     324            public String f;
     325        }");
     326        writeFile($Path_v2."/ChangedCtorAfterGenerifying.java",
     327        "package $PackageName;
     328        public class ChangedCtorAfterGenerifying<T> {
     329            public ChangedCtorAfterGenerifying(T param) { }
     330            public T f;
     331        }");
     332       
     333        writeFile($TestsPath."/Test_ChangedCtorAfterGenerifying.java",
     334        "import $PackageName.*;
     335        public class Test_ChangedCtorAfterGenerifying
     336        {
     337            public static void main(String[] args) {
     338                ChangedCtorAfterGenerifying X = new ChangedCtorAfterGenerifying(\"XXX\");
     339            }
     340        }");
     341       
     342        # Array to variable arity
     343        writeFile($Path_v1."/ArrayToVariableArity.java",
     344        "package $PackageName;
     345        public class ArrayToVariableArity {
     346            public void method(Integer x, String[] y) { }
     347        }");
     348        writeFile($Path_v2."/ArrayToVariableArity.java",
     349        "package $PackageName;
     350        public class ArrayToVariableArity {
     351            public void method(Integer x, String... y) { }
     352        }");
     353       
     354        writeFile($TestsPath."/Test_ArrayToVariableArity.java",
     355        "import $PackageName.*;
     356        public class Test_ArrayToVariableArity
     357        {
     358            public static void main(String[] args) {
     359                ArrayToVariableArity X = new ArrayToVariableArity();
     360                X.method(0, new String[]{\"a\", \"b\"});
     361            }
     362        }");
     363       
     364        # Variable arity to array
     365        writeFile($Path_v1."/VariableArityToArray.java",
     366        "package $PackageName;
     367        public class VariableArityToArray {
     368            public void method(Integer x, String... y) { }
     369        }");
     370        writeFile($Path_v2."/VariableArityToArray.java",
     371        "package $PackageName;
     372        public class VariableArityToArray {
     373            public void method(Integer x, String[] y) { }
     374        }");
     375       
     376        writeFile($TestsPath."/Test_VariableArityToArray.java",
     377        "import $PackageName.*;
     378        public class Test_VariableArityToArray
     379        {
     380            public static void main(String[] args) {
     381                VariableArityToArray X = new VariableArityToArray();
     382                X.method(0, \"a\", \"b\");
     383            }
     384        }");
     385       
     386        # Removed_Annotation
     387        writeFile($Path_v1."/RemovedAnnotation.java",
     388        "package $PackageName;
     389        public \@interface RemovedAnnotation {
     390        }");
     391       
     392        writeFile($TestsPath."/Test_RemovedAnnotation.java",
     393        "import $PackageName.*;
     394        public class Test_RemovedAnnotation {
     395            public static void main(String[] args) {
     396                testMethod();
     397            }
     398           
     399            \@RemovedAnnotation
     400            static void testMethod() {
     401            }
     402        }");
     403       
     404        # Beta Annotation
     405        writeFile($Path_v1."/Beta.java",
     406        "package $PackageName;
     407        public \@interface Beta {
     408        }");
     409       
     410        writeFile($Path_v2."/Beta.java",
     411        "package $PackageName;
     412        public \@interface Beta {
     413        }");
     414       
     415        # Removed_Method (Beta method)
     416        writeFile($Path_v1."/RemovedBetaMethod.java",
     417        "package $PackageName;
     418        public class RemovedBetaMethod
     419        {
     420            \@Beta
     421            public Integer someMethod() {
     422                return 0;
     423            }
     424        }");
     425        writeFile($Path_v2."/RemovedBetaMethod.java",
     426        "package $PackageName;
     427        public class RemovedBetaMethod {
     428        }");
     429       
     430        # Removed_Method (from Beta class)
     431        writeFile($Path_v1."/RemovedMethodFromBetaClass.java",
     432        "package $PackageName;
    149433        \@Beta
    150         public Integer someMethod() {
    151             return 0;
    152         }
    153     }");
    154     writeFile($Path_v2."/RemovedBetaMethod.java",
    155     "package $PackageName;
    156     public class RemovedBetaMethod {
    157     }");
    158    
    159     # Removed_Method (from Beta class)
    160     writeFile($Path_v1."/RemovedMethodFromBetaClass.java",
    161     "package $PackageName;
    162     \@Beta
    163     public class RemovedMethodFromBetaClass
    164     {
    165         public Integer someMethod() {
    166             return 0;
    167         }
    168     }");
    169     writeFile($Path_v2."/RemovedMethodFromBetaClass.java",
    170     "package $PackageName;
    171     \@Beta
    172     public class RemovedMethodFromBetaClass {
    173     }");
    174    
    175     # Removed_Class (Beta)
    176     writeFile($Path_v1."/RemovedBetaClass.java",
    177     "package $PackageName;
    178     \@Beta
    179     public class RemovedBetaClass
    180     {
    181         public Integer someMethod() {
    182             return 0;
    183         }
    184     }");
     434        public class RemovedMethodFromBetaClass
     435        {
     436            public Integer someMethod() {
     437                return 0;
     438            }
     439        }");
     440        writeFile($Path_v2."/RemovedMethodFromBetaClass.java",
     441        "package $PackageName;
     442        \@Beta
     443        public class RemovedMethodFromBetaClass {
     444        }");
     445       
     446        # Removed_Class (Beta)
     447        writeFile($Path_v1."/RemovedBetaClass.java",
     448        "package $PackageName;
     449        \@Beta
     450        public class RemovedBetaClass
     451        {
     452            public Integer someMethod() {
     453                return 0;
     454            }
     455        }");
     456    }
    185457   
    186458    # Abstract_Method_Added_Checked_Exception
     
    276548    "package $PackageName;
    277549    public class ChangedMethodReturnFromVoid {
    278         public void changedMethod(Integer param1, String[] param2) { }
     550        public void changedMethod(Integer param1) { }
    279551    }");
    280552    writeFile($Path_v2."/ChangedMethodReturnFromVoid.java",
    281553    "package $PackageName;
    282554    public class ChangedMethodReturnFromVoid {
    283         public Integer changedMethod(Integer param1, String[] param2){
     555        public Integer changedMethod(Integer param1){
    284556            return param1;
     557        }
     558    }");
     559   
     560    writeFile($TestsPath."/Test_ChangedMethodReturnFromVoid.java",
     561    "import $PackageName.*;
     562    public class Test_ChangedMethodReturnFromVoid {
     563        public static void main(String[] args) {
     564            ChangedMethodReturnFromVoid X = new ChangedMethodReturnFromVoid();
     565            X.changedMethod(1);
     566        }
     567    }");
     568   
     569    # Changed_Method_Return
     570    writeFile($Path_v1."/ChangedMethodReturn.java",
     571    "package $PackageName;
     572    public class ChangedMethodReturn {
     573        public Integer changedMethod(Integer param) { return 0; }
     574    }");
     575    writeFile($Path_v2."/ChangedMethodReturn.java",
     576    "package $PackageName;
     577    public class ChangedMethodReturn {
     578        public String changedMethod(Integer param) { return \"XXX\"; }
     579    }");
     580   
     581    writeFile($TestsPath."/Test_ChangedMethodReturn.java",
     582    "import $PackageName.*;
     583    public class Test_ChangedMethodReturn {
     584        public static void main(String[] args) {
     585            ChangedMethodReturn X = new ChangedMethodReturn();
     586            Integer Res = X.changedMethod(0);
    285587        }
    286588    }");
     
    362664    }");
    363665   
    364     writeFile($TestsPath."/Test_RemovedAnnotation.java",
    365     "import $PackageName.*;
    366     public class Test_RemovedAnnotation {
    367         public static void main(String[] args) {
    368             testMethod();
    369         }
    370        
    371         \@RemovedAnnotation
    372         static void testMethod() {
    373         }
    374     }");
    375    
    376666    # Removed_Constant_Field (Interface)
    377667    writeFile($Path_v1."/InterfaceRemovedConstantField.java",
     
    437727    }");
    438728   
     729    writeFile($TestsPath."/Test_ChangedFieldType.java",
     730    "import $PackageName.*;
     731    public class Test_ChangedFieldType {
     732        public static void main(String[] args) {
     733            ChangedFieldType X = new ChangedFieldType();
     734            String R = X.fieldName;
     735        }
     736    }");
     737   
    439738    # Changed_Field_Access
    440739    writeFile($Path_v1."/ChangedFieldAccess.java",
     
    473772    public class NonConstantFieldBecameStatic {
    474773        public static String fieldName;
     774    }");
     775   
     776    writeFile($TestsPath."/Test_NonConstantFieldBecameStatic.java",
     777    "import $PackageName.*;
     778    public class Test_NonConstantFieldBecameStatic {
     779        public static void main(String[] args) {
     780            NonConstantFieldBecameStatic X = new NonConstantFieldBecameStatic();
     781            String R = X.fieldName;
     782        }
    475783    }");
    476784   
     
    535843    public class RemovedMethod {
    536844        public Integer field = 100;
     845    }");
     846   
     847    # Removed protected method from final class
     848    writeFile($Path_v1."/RemovedProtectedMethodFromFinalClass.java",
     849    "package $PackageName;
     850    public final class RemovedProtectedMethodFromFinalClass {
     851        protected void removedMethod(Integer param) { }
     852    }");
     853    writeFile($Path_v2."/RemovedProtectedMethodFromFinalClass.java",
     854    "package $PackageName;
     855    public final class RemovedProtectedMethodFromFinalClass {
    537856    }");
    538857   
     
    586905    }");
    587906   
     907    # Interface_Removed_Abstract_Method (Last)
     908    writeFile($Path_v1."/InterfaceRemovedLastAbstractMethod.java",
     909    "package $PackageName;
     910    public interface InterfaceRemovedLastAbstractMethod {
     911        public void removedMethod(Integer param);
     912    }");
     913    writeFile($Path_v2."/InterfaceRemovedLastAbstractMethod.java",
     914    "package $PackageName;
     915    public interface InterfaceRemovedLastAbstractMethod {
     916    }");
     917   
     918    writeFile($TestsPath."/Test_InterfaceRemovedLastAbstractMethod.java",
     919    "import $PackageName.*;
     920    class InterfaceRemovedLastAbstractMethodDerived implements InterfaceRemovedLastAbstractMethod
     921    {
     922        public void removedMethod(Integer param) { }
     923        public static void main(String[] args) { }
     924    };
     925   
     926    public class Test_InterfaceRemovedLastAbstractMethod
     927    {
     928        public static void main(String[] args)
     929        {
     930            InterfaceRemovedLastAbstractMethod Obj = new InterfaceRemovedLastAbstractMethodDerived();
     931            Obj.removedMethod(0);
     932        }
     933    }");
     934   
    588935    # Interface_Added_Abstract_Method
    589936    writeFile($Path_v1."/InterfaceAddedAbstractMethod.java",
     
    627974    "import $PackageName.*;
    628975    class Class_MethodBecameNonDefault implements MethodBecameNonDefault {
     976        public static void main(String[] args) { }
    629977    };
    630978   
     
    638986    }");
    639987   
    640     # Variable_Arity_To_Array
    641     writeFile($Path_v1."/VariableArityToArray.java",
    642     "package $PackageName;
    643     public class VariableArityToArray {
    644         public void someMethod(Integer x, String... y) { };
    645     }");
    646     writeFile($Path_v2."/VariableArityToArray.java",
    647     "package $PackageName;
    648     public class VariableArityToArray {
    649         public void someMethod(Integer x, String[] y) { };
    650     }");
    651    
    652988    # Class_Became_Interface
    653989    writeFile($Path_v1."/ClassBecameInterface.java",
     
    8791215    writeFile($TestsPath."/Test_RemovedFieldClass.java",
    8801216    "import $PackageName.*;
    881     public class Test_RemovedFieldClass extends RemovedFieldClass
     1217    public class Test_RemovedFieldClass
    8821218    {
    8831219        public static void main(String[] args)
     
    10471383            return param1;
    10481384        };
    1049         public abstract Integer removedMethod(Integer param);
     1385        public abstract void removedMethod(Integer param);
    10501386    }");
    10511387    writeFile($Path_v2."/ClassRemovedAbstractMethod.java",
     
    10571393    }");
    10581394   
     1395    writeFile($TestsPath."/Test_ClassRemovedAbstractMethod.java",
     1396    "import $PackageName.*;
     1397    class ClassRemovedAbstractMethodDerived extends ClassRemovedAbstractMethod
     1398    {
     1399        public void removedMethod(Integer param) { }
     1400        public static void main(String[] args) { }
     1401    };
     1402   
     1403    public class Test_ClassRemovedAbstractMethod
     1404    {
     1405        public static void main(String[] args)
     1406        {
     1407            ClassRemovedAbstractMethod Obj = new ClassRemovedAbstractMethodDerived();
     1408            Obj.removedMethod(0);
     1409        }
     1410    }");
     1411   
    10591412    # Class_Method_Became_Abstract
    10601413    writeFile($Path_v1."/ClassMethodBecameAbstract.java",
     
    11301483   
    11311484    # Static_Method_Became_Final
    1132     writeFile($Path_v1."/StaticMethodBecameFinal.java",
     1485    writeFile($Path_v2."/StaticMethodBecameFinal.java",
    11331486    "package $PackageName;
    11341487    public class StaticMethodBecameFinal {
     
    11371490        };
    11381491    }");
    1139     writeFile($Path_v2."/StaticMethodBecameFinal.java",
     1492    writeFile($Path_v1."/StaticMethodBecameFinal.java",
    11401493    "package $PackageName;
    11411494    public class StaticMethodBecameFinal {
     
    11431496            return param;
    11441497        };
     1498    }");
     1499   
     1500    writeFile($TestsPath."/Test_StaticMethodBecameFinal.java",
     1501    "import $PackageName.*;
     1502    public class Test_StaticMethodBecameFinal
     1503    {
     1504        public static void main(String[] args)
     1505        {
     1506            Integer R = StaticMethodBecameFinal.someMethod(0);
     1507        }
    11451508    }");
    11461509   
     
    13151678            return 0;
    13161679        }
     1680        public Integer someMethod(InterfaceRemovedLastAbstractMethod param) {
     1681            return 0;
     1682        }
     1683       
    13171684    }");
    13181685    writeFile($Path_v2."/Use.java",
     
    13401707        public Integer someMethod(AbstractClassAddedSuperInterfaceWithImplementedMethods param) {
    13411708            return param.method2(100);
     1709        }
     1710        public Integer someMethod(InterfaceRemovedLastAbstractMethod param) {
     1711            return 0;
    13421712        }
    13431713    }");
     
    14031773    my ($TestsPath, $PackageName, $Path_v1, $Path_v2) = @_;
    14041774   
     1775    printMsg("INFO", "Running tests ...");
     1776   
    14051777    # compile with old version of package
    14061778    my $JavacCmd = getCmdPath("javac");
     
    14471819    }
    14481820   
    1449     writeFile("$TestsPath/Journal.txt", $TEST_REPORT);
     1821    my $Journal = $TestsPath."/Journal.txt";
     1822    writeFile($Journal, $TEST_REPORT);
     1823    printMsg("INFO", "See journal with test results: $Journal");
    14501824}
    14511825
Note: See TracChangeset for help on using the changeset viewer.