diff options
author | acolyer <acolyer> | 2004-08-04 12:04:41 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2004-08-04 12:04:41 +0000 |
commit | 0f211e17cac9b031ab8d9115f9030b3e65d3927a (patch) | |
tree | cabe16f0e367daaa4b28685e09f5b0bcd55bb43d /tests/src/org/aspectj/systemtest/ajc10x | |
parent | 9a051d348a240095e56ead5485c2dba8cf6ad4a7 (diff) | |
download | aspectj-0f211e17cac9b031ab8d9115f9030b3e65d3927a.tar.gz aspectj-0f211e17cac9b031ab8d9115f9030b3e65d3927a.zip |
Spring cleaning in the test suite. Docs for AjcTestCase and XMLBasedAjcTestCase
added in docs dir.
Diffstat (limited to 'tests/src/org/aspectj/systemtest/ajc10x')
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc10x/Ajc10xTests.java | 1165 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc10x/ajc10x-tests.xml | 2006 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc10x/ajc10x.xml | 9 |
3 files changed, 3180 insertions, 0 deletions
diff --git a/tests/src/org/aspectj/systemtest/ajc10x/Ajc10xTests.java b/tests/src/org/aspectj/systemtest/ajc10x/Ajc10xTests.java new file mode 100644 index 000000000..cd63392c8 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc10x/Ajc10xTests.java @@ -0,0 +1,1165 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.ajc10x; + +import java.io.File; +import junit.framework.Test; +import org.aspectj.testing.XMLBasedAjcTestCase; + +public class Ajc10xTests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(Ajc10xTests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/ajc10x/ajc10x.xml"); + } + + + public void test001(){ + runTest("properly make choice between cast and parenthesis in parser"); + } + + public void test002(){ + runTest("field from implemented interface not found in advice"); + } + + public void test003(){ + runTest("make sure advice affects introduced methods and constructors"); + } + + public void test004(){ + runTest("new around construct"); + } + + public void test005(){ + runTest("aspect redefines a parameter"); + } + + public void test006(){ + runTest("introducing extends and implements"); + } + + public void test007(){ + runTest("(related) aspect on interface"); + } + + public void test008(){ + runTest("advice and package visibility"); + } + + public void test009(){ + runTest("advice and package visibility"); + } + + public void test010(){ + runTest("advice on implied empty constructor"); + } + + public void test011(){ + runTest("advice on * *(..) not mapping to initializers"); + } + + public void test012(){ + runTest("three type declarations in the scope of an advice"); + } + + public void test013(){ + runTest("introduction fails on class with an inner class that extends or implements something"); + } + + public void test014(){ + runTest("checks that methods are introduced on the topmost class implemented"); + } + + public void test015(){ + runTest("a couple different returns from around advice"); + } + + public void test016(){ + runTest("member finally advice paired with signature advice"); + } + + public void test017(){ + runTest("aspect of eachobject(instanceof(Interface))"); + } + + public void test018(){ + runTest("final member initialization broken with JDK before 1.1.8"); + } + + public void test019(){ + runTest("same package and var name clash in preprocessed code when aspectOf is used"); + } + + public void test020(){ + runTest("and PR#201 advice on static methods fails javac compile with this"); + } + + public void test021(){ + runTest("non-static advice on inner class defined inside of method body"); + } + + public void test022(){ + runTest("simple single-threaded eachcflow test (includes aspectOf)"); + } + + public void test023(){ + runTest("bad type resolution when var reassigned in same scope"); + } + + public void test024(){ + runTest("generating the right throws clause for call-site advice (and around)"); + } + + public void test025(){ + runTest("advice on calls to static methods using several syntax"); + } + + public void test026(){ + runTest(", PR#249, PR#250 advice on constructor sites"); + } + + public void test027(){ + runTest("test after throwing advice in several ways"); + } + + public void test028(){ + runTest("fancy name patterns for method names"); + } + + public void test029(){ + runTest("calls: calls(...)"); + } + + public void test030(){ + runTest("throws Exception clause is unnecessarily added to Driver.main method"); + } + + public void test031(){ + runTest("javac fails when this is referenced in the static main method"); + } + + public void test032(){ + runTest("and 276 cast error generated by ajc when type not in signature"); + } + + public void test033(){ + runTest("calls to methods to which we don't have source"); + } + + public void test034(){ + runTest("more aspect inheritance"); + } + + public void test035(){ + runTest("around and calls with both calling and called this params"); + } + + public void test036(){ + runTest("compiler crashes with eachobject and named pointcuts with parameters"); + } + + public void test037(){ + runTest("lookup rules for unqualified pointcut names"); + } + + public void test038(){ + runTest("eachcflow only instantiated if the aspect has some advice in it"); + } + + public void test039(){ + runTest("(DESIGN QUESTION) aspect of eachJVM advising its own initializer"); + } + + public void test040(){ + runTest("after returning advice on calls to constructors"); + } + + public void test041(){ + runTest("Does annotating 'new' with a type work as desired?"); + } + + public void test042(){ + runTest("Referring to inner classes as {super}.{inner} confused ajc."); + } + + public void test043(){ + runTest("Advice on advice"); + } + + public void test044(){ + runTest("Introductions on other introductions"); + } + + public void test045(){ + runTest("Putting advice on array constructors."); + } + + public void test046(){ + runTest("call points within block inner classes are doubled"); + } + + public void test047(){ + runTest("Gets and sets with other advice"); + } + + public void test048(){ + runTest("Compiler can compile correct strictfp modifiers"); + } + + public void test049(){ + runTest("basic test of callsto pointcuts"); + } + + public void test050(){ + runTest("package wildcards in packages"); + } + + public void test051(){ + runTest("around advice on calls and receptions with lots of context"); + } + + public void test052(){ + runTest("! modifier and char in pointcut (no longer an error)"); + } + + public void test053(){ + runTest("right number of aspect instances per cflow"); + } + + public void test054(){ + runTest("many this's into around advice on calls"); + } + + public void test055(){ + runTest("Ensures introduction methods can have advice placed on them"); + } + + public void test056(){ + runTest("No boolean appearing in the 'if' clause for around advice with eachJVM()"); + } + + public void test057(){ + runTest("Order of super introductions."); + } + + public void test058(){ + runTest("Ensuring backdoor methods are produced."); + } + + public void test059(){ + runTest("no duplicate advice methods in abstract aspects"); + } + + public void test060(){ + runTest("no duplicate advice methods in abstract aspects extended"); + } + + public void test061(){ + runTest("Putting after-constructor advice on the wrong types implementing the same interface."); + } + + public void test062(){ + runTest("Instantiating non-static inner classes in advice."); + } + + public void test063(){ + runTest("Referring to pointcut in of clauses"); + } + + public void test064(){ + runTest("Confused referring to instance variables and locals"); + } + + public void test065(){ + runTest("Parsing C+ expressions without parens in super introductions."); + } + + public void test066(){ + runTest("Introducing methods on classes that implements inner-interfaces with +implements."); + } + + public void test067(){ + runTest("Methods with the same name are generated when abstract aspects extend another abstract aspect."); + } + + public void test068(){ + runTest("Making sure final variables stay final."); + } + + public void test069(){ + runTest("Problem resolving meta-joinpoint names with around advice on methods called from around advice."); + } + + public void test070(){ + runTest("Make sure that names of lifted local classes are right when referenced in call-site advice"); + } + + public void test071(){ + runTest("matching for throws clause"); + } + + public void test072(){ + runTest("basic test of declare soft"); + } + + public void test073(){ + runTest("advice on calls to constructors of anonymous inners and access to context"); + } + + public void test074(){ + runTest("inner aspects can't access outer pointcuts"); + } + + public void test075(){ + runTest("implements and extends are introduced before methods and fields"); + } + + public void test076(){ + runTest("a static/inner aspect of a inner class of an aspect is pulled to the top level as static"); + } + + public void test077(){ + runTest("Crashes with privileged aspect."); + } + + public void test078(){ + runTest("join points exist in the execution of field initializers"); + } + + public void test079(){ + runTest("privileged aspects"); + } + + public void test080(){ + runTest("advice on field gets in privileged aspects"); + } + + public void test081(){ + runTest("Two anonymous classes in the same scope"); + } + + public void test082(){ + runTest("basic tests for initializer and staticinitializer PCDs"); + } + + public void test083(){ + runTest("introduction of an initializer into a class"); + } + + public void test084(){ + runTest("some method accessibility tests, particularly package-protected and inheritance"); + } + + public void test085(){ + runTest("fairly monotonous (and non-covering) tests for expanded dot patterns"); + } + + public void test086(){ + runTest("field patterns and subtyping"); + } + + public void test087(){ + runTest("Checking formal matching as in Roeder's bug in 0.7b10"); + } + + public void test088(){ + runTest("Introducing synchronized methods on interfaces."); + } + + public void test089(){ + runTest("The pointcut params (..,int..) is not recognizing (Object,int,Object)."); + } + + public void test090(){ + runTest("calls advice on array objects causes error in code generation"); + } + + public void test091(){ + runTest("join points in field initializers aren't showing up."); + } + + public void test092(){ + runTest("Handlers problem"); + } + + public void test093(){ + runTest("work nicely with inner class method look-up rules and call-site advice"); + } + + public void test094(){ + runTest("strictfp modifier allowed on advice"); + } + + public void test095(){ + runTest("No argthis was being created for calls advice."); + } + + public void test096(){ + runTest("Ensuring no advice with instanceof(..) is run on static methods."); + } + + public void test097(){ + runTest("Null pointer on gets advice showing the case causing the error"); + } + + public void test098(){ + runTest("try to make sure that dynamic JoinPoint objects aren't generated when used inside of if (false) { ... }"); + } + + public void test099(){ + runTest("within and withincode (doesn't all work due to local class name issues)"); + } + + public void test100(){ + runTest("around advice on calls within inner classes (including protected method calls)"); + } + + public void test101(){ + runTest("around advice on calls within inner classes (including protected method calls)"); + } + + public void test102(){ + runTest("Arguments to runNext should be final when needed"); + } + + public void test103(){ + runTest("Method introductions"); + } + + public void test104(){ + runTest("Putting an introduced method on each interface"); + } + + public void test105(){ + runTest("Extending interfaces"); + } + + public void test106(){ + runTest("Introducing private methods on interfaces"); + } + + public void test107(){ + runTest("Issuing errors for assigning variables thisJoinPoint -- not assigning thisJoinPoint."); + } + + public void test108(){ + runTest("Static references inside of introduced bodies get bound correctly."); + } + + public void test109(){ + runTest("cflow and object creations [of eachcflow]"); + } + + public void test110(){ + runTest("Doesn't import MightHaveAspect when compiling with more than 1 file. [eachobject]"); + } + + public void test111(){ + runTest("test binding to formals in calls to constructors (binding to null) (eachobject !!! now misnamed)"); + } + + public void test112(){ + runTest("After advice isn't being woven into after throwing advice"); + } + + public void test113(){ + runTest("Throwing an EmptyStackException."); + } + + public void test114(){ + runTest("check that MightHaveAspect interface is created correctly for an aspect in deep package"); + } + + public void test115(){ + runTest("Defines clfow$ajc0 more once. [eachcflow]"); + } + + public void test116(){ + runTest("Various calls, receptions, and callsto tests [callsto]"); + } + + public void test117(){ + runTest("Was throwing exception, now just an error. [eachobject]"); + } + + public void test118(){ + runTest("different version of aspect inheritance, particularly empty pointcuts and abstract cflows [eachcflow]"); + } + + public void test119(){ + runTest("set advice on member initing throwing exception [eachobject]"); + } + + public void test120(){ + runTest("Testing class names with same name's with difference case as package. [eachobject]"); + } + + public void test121(){ + runTest("Null pointer on gets advice with coverage [painful]"); + } + + public void test122(){ + runTest("Basic test for cflow pointcuts [eachcflow]"); + } + + public void test123(){ + runTest("Crashing when looking up the type of array members."); + } + + public void test124(){ + runTest("PostfixExprs to various synthetic things are fixed correctly [eachobject]"); + } + + public void test125(){ + runTest("Dave Binkley's problem with eachcflowroot. [eachcflow]"); + } + + public void test126(){ + runTest("advice on an inherited method"); + } + + public void test127(){ + runTest(", PR#115 checks the ordering of catch clauses"); + } + + public void test128(){ + runTest("various declared exception permutations"); + } + + public void test129(){ + runTest("ordering of advice kinds as well as cflow and dominates"); + } + + public void test130(){ + runTest("advice on default constructor for a class only referenced via reflection"); + } + + public void test131(){ + runTest("calling and called this params in calls points"); + } + + public void test132(){ + runTest("primitive parameters coercable to Object just like return values are"); + } + + public void test133(){ + runTest("join points in static/dynamic initializers aren't showing up."); + } + + public void test134(){ + runTest("Gets and sets on a number of variables (field access ???)"); + } + + public void test135(){ + runTest("Joinpoints are showing up on intermediate call sites"); + } + + public void test136(){ + runTest("Reception based on strictfp modifier"); + } + + public void test137(){ + runTest("Subclasses that do not redefine a method are not being handled correctly"); + } + + public void test138(){ + runTest("making sure that super calls are bound to the right methods"); + } + + public void test139(){ + runTest("inheritance, around advice and abstract pointcuts [eachobject] (still)"); + } + + public void test140(){ + runTest("Priviledged aspect methods are missing for privates. [eachobject]"); + } + + public void test141(){ + runTest("exceptions thrown and caught in advice, particularly try+proceed"); + } + + public void test142(){ + runTest("Not and And operators in pointcuts not working"); + } + + public void test143(){ + runTest("Member initializers should run before the current class constructor"); + } + + public void test144(){ + runTest("Coverage tests for Member initializers should run before the current class constructor and after super"); + } + + public void test145(){ + runTest("thisJoinPoint{Static} not visible in if() pcd of named pointcut"); + } + + public void test146(){ + runTest("pcd if() expression visibility at compile-time (minimal operation)"); + } + + public void test147(){ + runTest("pcd if() NPE in compiler when unwinding assignment in pcd if(expr)"); + } + + public void test148(){ + runTest("pcd if() dup methods produced when pointcut after advice etc (javac)"); + } + + public void test149(){ + runTest("pcd if() variants: [anonymous, named] x [execution, call, callTyped, get, set, initializations] x [before, after, around]"); + } + +// moved to ajcTestsFailing.xml +// public void test150(){ +// runTest("advice on advice in usejavac mode"); +// } + + public void test151(){ + runTest("initialization order with this"); + } + + public void test152(){ + runTest("!within and !this handling for callee-side call points"); + } + + public void test153(){ + runTest("private inner interfaces and bytecode visibility"); + } + + public void test154(){ + runTest("elaborated into testing of around on all join points"); + } + + public void test155(){ + runTest("type name hygiene when code comes from aspects in different packages"); + } + + public void test156(){ + runTest("cflowbelow dependencies (from Chris Dutchyn)"); + } + + public void test157(){ + runTest("Compiler incorrectly flagging *1 (non-alphabetic start to signature pattern)"); + } + + public void test158(){ + runTest("Unable to bind privately-introduced field name from introduced method in the same aspect"); + } + + public void test159(){ + runTest("anonymous inner class with aspect"); + } + + public void test160(){ + runTest("Arguments are not being passed in to calls advice"); + } + + public void test161(){ + runTest("interfaces as mixins with introduction"); + } + + public void test162(){ + runTest("functional modifiers work correctly with introduced members"); + } + + public void test163(){ + runTest("ExceptionInInitializerError accessing cflow in aspect initialization - before variants"); + } + + public void test164(){ + runTest("NoClassDefFoundError accessing cflow in aspect initialization - after variants"); + } + + public void test165(){ + runTest("InternalCompilerError in JpPlan when args alone"); + } + + public void test166(){ + runTest("compile error using pcd if() with advice on introduced methods."); + } + + public void test167(){ + runTest("compile errors boolean using cflow and unimplemented method using around advice on methods introduced by interface"); + } + + public void test168(){ + runTest("aspect as member of interface"); + } + + public void test169(){ + runTest("missing method name to synthetic invocation"); + } + + public void test170(){ + runTest("protected subclass impl of superclass method with default access and variants"); + } + + public void test171(){ + runTest("Exception planning advice"); + } + + public void test172(){ + runTest("unreproduced bug with advice - probably UTR"); + } + + public void test173(){ + runTest("introduced inner interfaces accessible inside aspect"); + } + + public void test174(){ + runTest("validate (enclosing) join point and source locations"); + } + + public void test175(){ + runTest("advice formals are just like method formals"); + } + + public void test176(){ + runTest("advice formals produce errors just like method formals"); + } + + public void test177(){ + runTest("advice throws clauses must be compatible with joinpoints they apply to"); + } + + public void test178(){ + runTest("potential method conflicts with introductions and interfaces and PR#561"); + } + + public void test179(){ + runTest("illegal method conflicts with introductions and interfaces and PR#561"); + } + + public void test180(){ + runTest("AspectOf available for different aspect types"); + } + + public void test181(){ + runTest("access to all members of class and inner class from privileged aspect"); + } + + public void test182(){ + runTest("cflow alone with around produces compiler bcg StackOverflowError"); + } + + public void test183(){ + runTest("get/set join points run for complex assignment operators (+=, etc.) (working)"); + } + + public void test184(){ + runTest("this available in introduced field initializers"); + } + + public void test185(){ + runTest("Introduced type unavailable to cast expressions in introduced methods"); + } + + public void test186(){ + runTest("Introduced type unavailable to qualified new expressions in introduced methods"); + } + + public void test187(){ + runTest("Introduced type unavailable to cast expressions in introduced field initializers"); + } + + public void test188(){ + runTest("Aspect type unavailable to qualified new expressions in body of introduced methods"); + } + + public void test189(){ + runTest("Introduced type unavailable to qualified new expressions in introduced field initializers"); + } + + public void test190(){ + runTest("variable slots and finally/catch causing verify errors"); + } + + public void test191(){ + runTest("after advice on static method with pcd if() using result"); + } + + public void test192(){ + runTest("after advice on static method with pcd if() using result through pointcut"); + } + + public void test193(){ + runTest("AbstractMethodError for introduced methods (order 1)"); + } + + public void test194(){ + runTest("AbstractMethodError for introduced methods (order 2)"); + } + + public void test195(){ + runTest("AbstractMethodError for introduced methods (order 3)"); + } + + public void test196(){ + runTest("AbstractMethodError for introduced methods (order 4)"); + } + + public void test197(){ + runTest("AbstractMethodError for introduced methods (order 5)"); + } + + public void test198(){ + runTest("declare error and abstract pointcuts"); + } + + public void test199(){ + runTest("Exercise runtime classes (optionally in 1.1 VM)"); + } + + public void test200(){ + runTest("VerifyError after around advice falls off end of tryCatch"); + } + + public void test201(){ + runTest("Named within pointcuts failing"); + } + + public void test202(){ + runTest("aspect with private abstract pointcut"); + } + + public void test203(){ + runTest("concrete aspect unable to access abstract package-private pointcut in parent for overriding"); + } + + public void test204(){ + runTest("inner, outer, and outside-package subaspects of an aspect with abstract protected-, public-, and default-access pointcuts"); + } + + public void test205(){ + runTest("inner subaspects of an aspect with private pointcut"); + } + + public void test206(){ + runTest("outer subaspects of an aspect with private pointcut"); + } + + public void test207(){ + runTest("abstract aspect used statically should not cause instantiation of advice or pointcut"); + } + + public void test208(){ + runTest("private inner interface accessible in scope when declared on outer class"); + } + + public void test209(){ + runTest("accessing protected superclass members in and outside CCC from body of method introduction"); + } + + public void test210(){ + runTest("accessing private superclass members from body of method introduction"); + } + + public void test211(){ + runTest("simple test for around and casting"); + } + + public void test212(){ + runTest("aroundInner 1 - around advice inner Thread subclass running proceed but not writing field"); + } + + public void test213(){ + runTest("aroundInner 2 - around advice inner Runnable running proceed and writing method-final proxy"); + } + + public void test214(){ + runTest("aroundInner 3 - around advice inner class running proceed and writing field"); + } + + public void test215(){ + runTest("aroundInner 4 - around advice inner Thread subclass running proceed and writing field"); + } + + public void test216(){ + runTest("aroundInner 5 - around advice inner Runnable (subinterface) running proceed and writing field introduced on subinterface"); + } + + public void test217(){ + runTest("Named local class closing over proceed invocation"); + } + + public void test218(){ + runTest("beautiful recursive computation of factorial with around is now supported"); + } + + public void test219(){ + runTest("multi-dispatch not used for named pcd references"); + } + + public void test220(){ + runTest("multi-dispatch implemented through around + args"); + } + + public void test221(){ + runTest("unrecognized aspect should not net Cloneable and Serializable warnings"); + } + + public void test222(){ + runTest("unreachable code generated by around advice on the execution of void methods"); + } + + public void test223(){ + runTest("Overriding method implementations using introduction on interfaces"); + } + + public void test224(){ + runTest("more coverage for around and concrete methods on interfaces"); + } + + public void test225(){ + runTest("invalid number and type of proceed arguments"); + } + + public void test226(){ + runTest("after returning advice order"); + } + + public void test227(){ + runTest("after returning advice param"); + } + + public void test228(){ + runTest("! and declaring types with callee-side call join points"); + } + + public void test229(){ + runTest(". Binding the wrong arguments in withincode(..)."); + } + + public void test230(){ + runTest(". Matching arguments in cflow correctly."); + } + + public void test231(){ + runTest(". Binding variables with numbers in their name with pertarget(..)'s."); + } + + public void test232(){ + runTest("second arg in formal on shared joinpoint with pcd if() causes verify error ??"); + } + + public void test233(){ + runTest("access to private members from privileged aspect"); + } + + public void test234(){ + runTest("inner classes of privileged aspects cannot see target class private members"); + } + + public void test235(){ + runTest("aspects should get package access outside the file"); + } + + public void test236(){ + runTest("subclass advice not run for join points selected by superclass cflow-based pointcuts"); + } + + public void test237(){ + runTest("more issues with abstract aspects and cflow pointcuts"); + } + + public void test238(){ + runTest("compile fails for aspect derived from percflow base aspect unless pointcut excludes base aspect and subaspects"); + } + + public void test239(){ + runTest("pertarget stack overflow getting name of anonymous (Interface) class"); + } + + public void test240(){ + runTest("pertarget stack overflow getting name of anonymous (Object) class"); + } + + public void test241(){ + runTest("pertarget runtime stack overflow (getting name of anonymous (Object) class?)"); + } + + public void test242(){ + runTest("subaspect method declaration on superaspect inner interface (names)"); + } + + public void test243(){ + runTest("subaspect method declaration on superaspect inner interface (access)"); + } + + public void test244(){ + runTest("subaspect method declaration on superaspect inner interface (types)"); + } + + public void test245(){ + runTest("around AST type XXX"); + } + + public void test246(){ + runTest("around all execution with double assignment in initializer (simple)"); + } + + public void test247(){ + runTest("around all execution with double assignment in initializer (coverage)"); + } + + public void test248(){ + runTest("changing this in around's proceed reported by Rich Price"); + } + + public void test249(){ + runTest("default package for aspect introductions is not the current package"); + } + + public void test250(){ + runTest("anon class written to wrong directory"); + } + + public void test251(){ + runTest("unqualified transitive pointcut references not resolved"); + } + + public void test252(){ + runTest("unqualified transitive pointcut references not resolved - 2"); + } + + public void test253(){ + runTest("direct use outside aspect of defined abstract pointcut"); + } + + public void test254(){ + runTest("direct use outside aspect of undefined abstract pointcut"); + } + + public void test255(){ + runTest("indirect use outside aspect of undefined abstract pointcut"); + } + + public void test256(){ + runTest("simple call join point tests for JoinPoint SourceLocation context"); + } + + public void test257(){ + runTest("!target with second advice on casted call"); + } + + public void test258(){ + runTest("name binding in around cflow"); + } + + public void test259(){ + runTest("name binding in around cflow - 2"); + } + + public void test260(){ + runTest("around name-binding in cflows using factorial"); + } + + public void test261(){ + runTest("replacing this or target in around advice"); + } + + public void test262(){ + runTest("after returning from initialization and after executing constructor"); + } + + public void test263(){ + runTest("after returning from initialization causes ExceptionInInitializer in aspect"); + } + + public void test264(){ + runTest("name binding in before cflow containing cflowbelow"); + } + + public void test265(){ + runTest("file order in type searching"); + } + + public void test266(){ + runTest("simple declare warning (NPE)"); + } + + public void test267(){ + runTest("ajc dies on cflow into field init anon class see knownbugs.txt"); + } + + public void test268(){ + runTest("Incrementing interface-introduced field"); + } + + public void test269(){ + runTest("The dynamic type, not the static one, should be used in if pcds"); + } + + public void test270(){ + runTest("bad interaction with after returning, around and void methods (from Rich Price)"); + } + + public void test271(){ + runTest("type pattern matching for inner classes (from Ken Horn)"); + } + + public void test272(){ + runTest("static initializer member name"); + } + + public void test273(){ + runTest("cflow pcd syntax error"); + } + + public void test274(){ + runTest("binding args with indeterminate prefix and suffix"); + } + + public void test275(){ + runTest("check arg types with indeterminate prefix and suffix"); + } + + public void test276(){ + runTest("testing and binding args with single indeterminate prefix and suffix"); + } + + public void test277(){ + runTest("binding handler args with indeterminate prefix and suffix"); + } + + public void test278(){ + runTest("Compiling java.lang.Object with ajc yields non-verifying bytecode"); + } + + public void test279(){ + runTest("method-local class defined in around return statement"); + } + + public void test280(){ + runTest("CE expected for assignment to arg in if pcd"); + } + + public void test281(){ + runTest("advising field get/sets when accessing via super"); + } + + public void test282(){ + runTest("accessing private members in outer types"); + } + + public void test283(){ + runTest("can't apply around advice to the execution of around advice"); + } + + public void test284(){ + runTest("incompatible advice throws clause are a compile-time error"); + } + +} + diff --git a/tests/src/org/aspectj/systemtest/ajc10x/ajc10x-tests.xml b/tests/src/org/aspectj/systemtest/ajc10x/ajc10x-tests.xml new file mode 100644 index 000000000..9e04c610e --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc10x/ajc10x-tests.xml @@ -0,0 +1,2006 @@ +<!-- AspectJ v1.0.x Tests --> + + + <ajc-test dir="new" + title="properly make choice between cast and parenthesis in parser" + keywords="from-resolved_10x"> + <compile files="JoinPointFields.java"/> + <run class="JoinPointFields"/> + </ajc-test> + + <ajc-test dir="new" pr="96" + title="field from implemented interface not found in advice" + keywords="from-resolved_10x"> + <compile files="FieldFromImplementsNotFound.java"/> + <run class="FieldFromImplementsNotFound"/> + </ajc-test> + + <ajc-test dir="new" + title="make sure advice affects introduced methods and constructors" + keywords="from-resolved_10x"> + <compile files="AdviceOnIntroduced.java"/> + <run class="AdviceOnIntroduced"/> + </ajc-test> + + <ajc-test dir="new" title="new around construct" + keywords="from-resolved_10x"> + <compile files="AroundAdvice.java"/> + <run class="AroundAdvice"/> + </ajc-test> + + <ajc-test dir="new" pr="65" title="aspect redefines a parameter" + keywords="from-resolved_10x"> + <compile files="AspectRedefinesParam.java"/> + <run class="AspectRedefinesParam"/> + </ajc-test> + + <ajc-test dir="new" title="introducing extends and implements" + keywords="from-resolved_10x"> + <compile files="HierarchyIntroductions.java"/> + <run class="HierarchyIntroductions"/> + </ajc-test> + + <ajc-test dir="new" pr="104" title="(related) aspect on interface" + keywords="from-resolved_10x"> + <compile files="AspectOnInterface.java"/> + <run class="AspectOnInterface"/> + </ajc-test> + + <ajc-test dir="new" pr="106" title="advice and package visibility" + keywords="from-resolved_10x"> + <compile + files="packagevisibility/PackagesAndAdvice.java,packagevisibility/testPackage/Class1.java,packagevisibility/testPackage/Class2.java" + options="-Xlint:ignore"/> + <run class="packagevisibility.PackagesAndAdvice"/> + </ajc-test> + + <ajc-test dir="new" pr="106" title="advice and package visibility" + keywords="from-resolved_10x"> + <compile + files="packagevisibility/PackagesAndAdviceCf.java,packagevisibility/testPackage/Class1.java,packagevisibility/testPackage/Class2.java" + options="-Xlint:error"> + <message kind="error" line="29"/> + </compile> + </ajc-test> + + <ajc-test dir="new" title="advice on implied empty constructor" + keywords="from-resolved_10x"> + <compile files="AdviceOnEmptyConstructor.java"/> + <run class="AdviceOnEmptyConstructor"/> + </ajc-test> + + <ajc-test dir="new" title="advice on * *(..) not mapping to initializers" + keywords="from-resolved_10x"> + <compile files="InitializerAdvice.java"/> + <run class="InitializerAdvice"/> + </ajc-test> + + <ajc-test dir="new" + title="three type declarations in the scope of an advice" + keywords="from-resolved_10x"> + <compile files="TypeDeclInAdvice.java"/> + <run class="TypeDeclInAdvice"/> + </ajc-test> + + <ajc-test dir="new" pr="129" + title="introduction fails on class with an inner class that extends or implements something" + keywords="from-resolved_10x"> + <compile files="IntroductionFailsWithInnerClass.java"/> + <run class="IntroductionFailsWithInnerClass"/> + </ajc-test> + + <ajc-test dir="new" pr="126" + title="checks that methods are introduced on the topmost class implemented" + keywords="from-resolved_10x"> + <compile files="TopmostImplements.java"/> + <run class="TopmostImplements"/> + </ajc-test> + + <ajc-test dir="new/arndAdvRet" pr="140" + title="a couple different returns from around advice" + keywords="from-resolved_10x"> + <compile files="Driver.java"/> + <run class="Driver"/> + </ajc-test> + + <ajc-test dir="new" + title="member finally advice paired with signature advice" + keywords="from-resolved_10x"> + <compile files="TryErrors.java"/> + <run class="TryErrors"/> + </ajc-test> + + <ajc-test dir="new" title="aspect of eachobject(instanceof(Interface))" + keywords="from-resolved_10x"> + <compile files="AspectOfInterface.java"/> + <run class="AspectOfInterface"/> + </ajc-test> + + <ajc-test dir="new/finalMemInit" pr="162" + title="final member initialization broken with JDK before 1.1.8" + keywords="from-resolved_10x"> + <compile files="Driver.java"/> + <run class="Driver"/> + </ajc-test> + + <ajc-test dir="new/packageNameClash" pr="205" + title="same package and var name clash in preprocessed code when aspectOf is used" + keywords="from-resolved_10x"> + <compile files="otherpkg/Driver.java,pkg/Aspect1.java,pkg/Class1.java"/> + <run class="otherpkg.Driver"/> + </ajc-test> + + <ajc-test dir="new/adviceOnStaticMeth" pr="221" + title="and PR#201 advice on static methods fails javac compile with this" + keywords="from-resolved_10x"> + <compile files="Driver.java"/> + <run class="Driver"/> + </ajc-test> + + <ajc-test dir="new" + title="non-static advice on inner class defined inside of method body" + keywords="from-resolved_10x"> + <compile files="MethodInner.java"/> + <run class="MethodInner"/> + </ajc-test> + + <ajc-test dir="new" + title="simple single-threaded eachcflow test (includes aspectOf)" + keywords="from-resolved_10x"> + <compile files="Client.java"/> + <run class="Client"/> + </ajc-test> + + <ajc-test dir="new/scopeTypingBug" pr="191" + title="bad type resolution when var reassigned in same scope" + keywords="from-resolved_10x"> + <compile files="Driver.java"/> + <run class="Driver"/> + </ajc-test> + + <ajc-test dir="new" pr="242" + title="generating the right throws clause for call-site advice (and around)" + keywords="from-resolved_10x"> + <compile files="ComputedThrows.java"/> + <run class="ComputedThrows"/> + </ajc-test> + + <ajc-test dir="new" pr="246" + title="advice on calls to static methods using several syntax" + keywords="from-resolved_10x"> + <compile files="StaticCalls.java"/> + <run class="StaticCalls"/> + </ajc-test> + + <ajc-test dir="new" pr="248" + title=", PR#249, PR#250 advice on constructor sites" + keywords="from-resolved_10x"> + <compile files="NewSiteAdvice.java"/> + <run class="NewSiteAdvice"/> + </ajc-test> + + <ajc-test dir="new" title="test after throwing advice in several ways" + keywords="from-resolved_10x"> + <compile files="AfterThrowing.java"/> + <run class="AfterThrowing"/> + </ajc-test> + + <ajc-test dir="new" title="fancy name patterns for method names" + keywords="from-resolved_10x"> + <compile files="WildNames.java"/> + <run class="WildNames"/> + </ajc-test> + + <ajc-test dir="design/calls" title="calls: calls(...)" + keywords="from-resolved_10x"> + <compile files="Simple.java" options="-Xlint:ignore"/> + <run class="Simple"/> + </ajc-test> + + <ajc-test dir="new/extraThrows" pr="259" + title="throws Exception clause is unnecessarily added to Driver.main method" + keywords="from-resolved_10x"> + <compile files="Driver.java"/> + <run class="Driver"/> + </ajc-test> + + <ajc-test dir="new/thisUsedInMain" pr="262" + title="javac fails when this is referenced in the static main method" + keywords="from-resolved_10x"> + <compile files="Driver.java"/> + <run class="Driver"/> + </ajc-test> + + <ajc-test dir="new/badCast" pr="275" + title="and 276 cast error generated by ajc when type not in signature" + keywords="from-resolved_10x"> + <compile files="Driver.java"/> + <run class="Driver"/> + </ajc-test> + + <ajc-test dir="new" pr="285" + title="calls to methods to which we don't have source" + keywords="from-resolved_10x"> + <compile files="ExternalCalls.java"/> + <run class="ExternalCalls"/> + </ajc-test> + + <ajc-test dir="new/beforeNotRun" pr="265" title="more aspect inheritance" + keywords="from-resolved_10x"> + <compile files="Driver.java"/> + <run class="Driver"/> + </ajc-test> + + <ajc-test dir="new" pr="310" + title="around and calls with both calling and called this params" + keywords="from-resolved_10x"> + <compile files="AroundAndCalls.java"/> + <run class="AroundAndCalls"/> + </ajc-test> + + <ajc-test dir="new/pointcutParameter" pr="290" + title="compiler crashes with eachobject and named pointcuts with parameters" + keywords="from-resolved_10x"> + <compile files="Driver.java"/> + <run class="Driver"/> + </ajc-test> + + <ajc-test dir="new/unqualifiedPointcutName" pr="304" + title="lookup rules for unqualified pointcut names" + keywords="from-resolved_10x"> + <compile files="Driver.java"/> + <run class="Driver"/> + </ajc-test> + + <ajc-test dir="new" pr="321" + title="eachcflow only instantiated if the aspect has some advice in it" + keywords="from-resolved_10x"> + <compile files="CFlowNoAdvice.java"/> + <run class="CFlowNoAdvice"/> + </ajc-test> + + <ajc-test dir="new" pr="309" + title="(DESIGN QUESTION) aspect of eachJVM advising its own initializer" + keywords="from-resolved_10x"> + <compile files="EachJVMOnSelf.java"/> + <run class="EachJVMOnSelf"/> + </ajc-test> + + <ajc-test dir="new" pr="302" + title="after returning advice on calls to constructors" + keywords="from-resolved_10x"> + <compile files="AfterConstructorCalls.java"/> + <run class="AfterConstructorCalls"/> + </ajc-test> + + <ajc-test dir="new" + title="Does annotating 'new' with a type work as desired?" + keywords="from-resolved_10x"> + <compile files="ConstructorSignatures.java"/> + <run class="ConstructorSignatures"/> + </ajc-test> + + <ajc-test dir="new" + title="Referring to inner classes as {super}.{inner} confused ajc." + keywords="from-resolved_10x"> + <compile files="InnerClassNaming.java"/> + <run class="InnerClassNaming"/> + </ajc-test> + + <ajc-test dir="new" title="Advice on advice" keywords="from-resolved_10x"> + <compile files="AdviceOnAdvice.java"/> + <run class="AdviceOnAdvice"/> + </ajc-test> + + <ajc-test dir="new" title="Introductions on other introductions" + keywords="from-resolved_10x"> + <compile files="IntroOnIntro.java"/> + <run class="IntroOnIntro"/> + </ajc-test> + + <ajc-test dir="new" title="Putting advice on array constructors." + keywords="from-resolved_10x"> + <compile files="Orleans.java"/> + <run class="Orleans"/> + </ajc-test> + + <ajc-test dir="new" + title="call points within block inner classes are doubled" + keywords="from-resolved_10x"> + <compile files="DoubledCalls.java"/> + <run class="DoubledCalls"/> + </ajc-test> + + <ajc-test dir="new" title="Gets and sets with other advice" + keywords="from-resolved_10x"> + <compile files="Counting3.java"/> + <run class="Counting3"/> + </ajc-test> + + <ajc-test dir="new" title="Compiler can compile correct strictfp modifiers" + keywords="from-resolved_10x"> + <compile files="StrictFpCompile.java"/> + <run class="StrictFpCompile"/> + </ajc-test> + + <ajc-test dir="new" title="basic test of callsto pointcuts" + keywords="from-resolved_10x"> + <compile files="CallsTo.java"/> + <run class="CallsTo"/> + </ajc-test> + + <ajc-test dir="new" title="package wildcards in packages" + keywords="from-resolved_10x"> + <compile files="pack/PackageWildcards.java"/> + <run class="pack.PackageWildcards"/> + </ajc-test> + + <ajc-test dir="new" + title="around advice on calls and receptions with lots of context" + keywords="from-resolved_10x"> + <compile files="AroundCalls.java"/> + <run class="AroundCalls"/> + </ajc-test> + + <ajc-test dir="new" pr="208" + title="! modifier and char in pointcut (no longer an error)" + keywords="from-resolved_10x"> + <compile files="NotCharInPointcut.java"/> + <run class="NotCharInPointcut"/> + </ajc-test> + + <ajc-test dir="new" pr="308" + title="right number of aspect instances per cflow" + keywords="from-resolved_10x"> + <compile files="CFlowObjects.java"/> + <run class="CFlowObjects"/> + </ajc-test> + + <ajc-test dir="new" pr="310" title="many this's into around advice on calls" + keywords="from-resolved_10x"> + <compile files="AroundCallsArgs.java"/> + <run class="AroundCallsArgs"/> + </ajc-test> + + <ajc-test dir="new" + title="Ensures introduction methods can have advice placed on them" + keywords="from-resolved_10x"> + <compile files="Dominates.java"/> + <run class="Dominates"/> + </ajc-test> + + <ajc-test dir="new" pr="355" + title="No boolean appearing in the 'if' clause for around advice with eachJVM()" + keywords="from-resolved_10x"> + <compile files="PR355.java"/> + <run class="PR355"/> + </ajc-test> + + <ajc-test dir="new" title="Order of super introductions." + keywords="from-resolved_10x"> + <compile files="OrderOfExtendsPlusAndImplementsPlus.java"/> + <run class="OrderOfExtendsPlusAndImplementsPlus"/> + </ajc-test> + + <ajc-test dir="new" title="Ensuring backdoor methods are produced." + keywords="from-resolved_10x"> + <compile files="BackdoorMethods.java"/> + <run class="BackdoorMethods"/> + </ajc-test> + + <ajc-test dir="new" + title="no duplicate advice methods in abstract aspects" + keywords="from-resolved_10x"> + <compile + files="GeneratingDuplicateNamedAdviceMethodsInAbstractAspects.java"/> + <run class="GeneratingDuplicateNamedAdviceMethodsInAbstractAspects"/> + </ajc-test> + + <ajc-test dir="new" + title="no duplicate advice methods in abstract aspects extended" + keywords="from-resolved_10x"> + <compile + files="GeneratingDuplicateNamedAdviceMethodsInAbstractAspectsWithExtendedAspect.java"/> + <run class="GeneratingDuplicateNamedAdviceMethodsInAbstractAspectsWithExtendedAspect" + /> + </ajc-test> + + <ajc-test dir="new" + title="Putting after-constructor advice on the wrong types implementing the same interface." + keywords="from-resolved_10x"> + <compile files="AfterAdviceOnConstructorsOnTheWrongType.java"/> + <run class="AfterAdviceOnConstructorsOnTheWrongType"/> + </ajc-test> + + <ajc-test dir="new" + title="Instantiating non-static inner classes in advice." + keywords="from-resolved_10x"> + <compile files="NonstaticInnerClassesInAspects.java"/> + <run class="NonstaticInnerClassesInAspects"/> + </ajc-test> + + <ajc-test dir="new" pr="316" title="Referring to pointcut in of clauses" + keywords="from-resolved_10x"> + <compile files="ReferringToPointcutsInAspect_PR316.java"/> + <run class="ReferringToPointcutsInAspect_PR316"/> + </ajc-test> + + <ajc-test dir="new" pr="191" + title="Confused referring to instance variables and locals" + keywords="from-resolved_10x"> + <compile files="ScopesAndFields_PR191.java"/> + <run class="ScopesAndFields_PR191"/> + </ajc-test> + + <ajc-test dir="new" + title="Parsing C+ expressions without parens in super introductions." + keywords="from-resolved_10x"> + <compile files="ParsingSubtypesIntroductions.java"/> + <run class="ParsingSubtypesIntroductions"/> + </ajc-test> + + <ajc-test dir="new" + title="Introducing methods on classes that implements inner-interfaces with +implements." + keywords="from-resolved_10x"> + <compile files="IntroducingMethodsOnPlusImplementedInterfaces.java" options="-Xlint:ignore"/> + <run class="IntroducingMethodsOnPlusImplementedInterfaces"/> + </ajc-test> + + <ajc-test dir="new" pr="464" + title="Methods with the same name are generated when abstract aspects extend another abstract aspect." + keywords="from-resolved_10x"> + <compile + files="AbstractAspectsExtendingAbstractAspectsGeneratesMethodsWithTheSameName_PR464.java"/> + <run class="AbstractAspectsExtendingAbstractAspectsGeneratesMethodsWithTheSameName_PR464" + /> + </ajc-test> + + <ajc-test dir="new" title="Making sure final variables stay final." + keywords="from-resolved_10x"> + <compile files="RemovingFinals.java"/> + <run class="RemovingFinals"/> + </ajc-test> + + <ajc-test dir="new" + title="Problem resolving meta-joinpoint names with around advice on methods called from around advice." + keywords="from-resolved_10x"> + <compile files="AroundAdviceOnMethodsCalledInAroundAdvice.java"/> + <run class="AroundAdviceOnMethodsCalledInAroundAdvice"/> + </ajc-test> + + <ajc-test dir="new" + title="Make sure that names of lifted local classes are right when referenced in call-site advice" + keywords="from-resolved_10x"> + <compile files="CallsAndLocalClasses.java"/> + <run class="CallsAndLocalClasses"/> + </ajc-test> + + <ajc-test dir="new" title="matching for throws clause" + keywords="from-resolved_10x"> + <compile files="ThrowsMatching.java"/> + <run class="ThrowsMatching"/> + </ajc-test> + + <ajc-test dir="new" title="basic test of declare soft" + keywords="from-resolved_10x"> + <compile files="DeclareSoft.java"/> + <run class="DeclareSoft"/> + </ajc-test> + + <ajc-test dir="new" + title="advice on calls to constructors of anonymous inners and access to context" + keywords="from-resolved_10x"> + <compile files="NewAnonymous.java"/> + <run class="NewAnonymous"/> + </ajc-test> + + <ajc-test dir="new/innerAspectAccess" pr="211" + title="inner aspects can't access outer pointcuts" + keywords="from-resolved_10x"> + <compile files="Driver.java"/> + <run class="Driver"/> + </ajc-test> + + <ajc-test dir="new" + title="implements and extends are introduced before methods and fields" + keywords="from-resolved_10x"> + <compile files="IntroOrder.java"/> + <run class="IntroOrder"/> + </ajc-test> + + <ajc-test dir="new" + title="a static/inner aspect of a inner class of an aspect is pulled to the top level as static" + keywords="from-resolved_10x"> + <compile files="StaticInnerAspect.java"/> + <run class="StaticInnerAspect"/> + </ajc-test> + + <ajc-test dir="new" title="Crashes with privileged aspect." + keywords="from-resolved_10x"> + <compile files="Privileged.java"/> + <run class="Privileged"/> + </ajc-test> + + <ajc-test dir="new" + title="join points exist in the execution of field initializers" + keywords="from-resolved_10x"> + <compile files="FieldInitializerJoinPoints.java"/> + <run class="FieldInitializerJoinPoints"/> + </ajc-test> + + <ajc-test dir="new/privilegedAspects" title="privileged aspects" + keywords="from-resolved_10x"> + <compile + files="main/Main.java,fish/PrivateClass.java,fish/B.java,fowl/C.java,fowl/D.java"/> + <run class="main.Main"/> + </ajc-test> + + <ajc-test dir="new" title="advice on field gets in privileged aspects" + keywords="from-resolved_10x"> + <compile files="AdviceOnPrivileged.java"/> + <run class="AdviceOnPrivileged"/> + </ajc-test> + + <ajc-test dir="new" title="Two anonymous classes in the same scope" + keywords="from-resolved_10x"> + <compile files="TwoAnonymous.java"/> + <run class="TwoAnonymous"/> + </ajc-test> + + <ajc-test dir="new" + title="basic tests for initializer and staticinitializer PCDs" + keywords="from-resolved_10x"> + <compile files="InitializerTest.java"/> + <run class="InitializerTest"/> + </ajc-test> + + <ajc-test dir="new" pr="98" + title="introduction of an initializer into a class" + keywords="from-resolved_10x"> + <compile files="IntroductionOfInitializer.java"/> + <run class="IntroductionOfInitializer"/> + </ajc-test> + + <ajc-test dir="new/access" + title="some method accessibility tests, particularly package-protected and inheritance" + keywords="from-resolved_10x"> + <compile files="Test1.java,pc/C.java,psub/SubC.java,psub/A.java"/> + <run class="Test1"/> + </ajc-test> + + <ajc-test dir="new" + title="fairly monotonous (and non-covering) tests for expanded dot patterns" + keywords="from-resolved_10x"> + <compile files="ExpandedDotDotPattern.java"/> + <run class="ExpandedDotDotPattern"/> + </ajc-test> + + <ajc-test dir="new" title="field patterns and subtyping" + keywords="from-resolved_10x"> + <compile files="FieldPatterns.java"/> + <run class="FieldPatterns"/> + </ajc-test> + + <ajc-test dir="new" + title="Checking formal matching as in Roeder's bug in 0.7b10" + keywords="from-resolved_10x"> + <compile files="FormalMatching.java"/> + <run class="FormalMatching"/> + </ajc-test> + + <ajc-test dir="new" title="Introducing synchronized methods on interfaces." + keywords="from-resolved_10x"> + <compile files="SynchronizedMethodsOnInterfaces.java"/> + <run class="SynchronizedMethodsOnInterfaces"/> + </ajc-test> + + <ajc-test dir="new" + title="The pointcut params (..,int..) is not recognizing (Object,int,Object)." + keywords="from-resolved_10x"> + <compile files="Params.java"/> + <run class="Params"/> + </ajc-test> + + <ajc-test dir="new" + title="calls advice on array objects causes error in code generation" + keywords="from-resolved_10x"> + <compile files="CallsToArray.java"/> + <run class="CallsToArray"/> + </ajc-test> + + <ajc-test dir="new" + title="join points in field initializers aren't showing up." + keywords="from-resolved_10x"> + <compile files="NonexistentFieldInitializers.java"/> + <run class="NonexistentFieldInitializers"/> + </ajc-test> + + <ajc-test dir="new" pr="318" title="Handlers problem" + keywords="from-resolved_10x"> + <compile files="PR318.java"/> + <run class="PR318"/> + </ajc-test> + + <ajc-test dir="new" + title="work nicely with inner class method look-up rules and call-site advice" + keywords="from-resolved_10x"> + <compile files="InnerMethods.java"/> + <run class="InnerMethods"/> + </ajc-test> + + <ajc-test dir="new" title="strictfp modifier allowed on advice" + keywords="from-resolved_10x"> + <compile files="StrictFPAdvice.java"/> + <run class="StrictFPAdvice"/> + </ajc-test> + + <ajc-test dir="new" pr="415" + title="No argthis was being created for calls advice." + keywords="from-resolved_10x"> + <compile files="PR415.java"/> + <run class="PR415"/> + </ajc-test> + + <ajc-test dir="new" + title="Ensuring no advice with instanceof(..) is run on static methods." + keywords="from-resolved_10x"> + <compile files="StaticMethodsShouldNotReceiveInstanceofAdvice.java"/> + <run class="StaticMethodsShouldNotReceiveInstanceofAdvice"/> + </ajc-test> + + <ajc-test dir="new" + title="Null pointer on gets advice showing the case causing the error" + keywords="from-resolved_10x"> + <compile files="NullPointerOnGetsSimple.java"/> + <run class="NullPointerOnGetsSimple"/> + </ajc-test> + + <ajc-test dir="new" + title="try to make sure that dynamic JoinPoint objects aren't generated when used inside of if (false) { ... }" + keywords="from-resolved_10x"> + <compile files="IfdefsAndAdvice.java"/> + <run class="IfdefsAndAdvice"/> + </ajc-test> + + <ajc-test dir="new" + title="within and withincode (doesn't all work due to local class name issues)" + keywords="from-resolved_10x"> + <compile files="WithinInners.java"/> + <run class="WithinInners"/> + </ajc-test> + + <ajc-test dir="new" + title="around advice on calls within inner classes (including protected method calls)" + keywords="from-resolved_10x"> + <compile files="AroundInnerCalls13.java" options="-1.3"/> + <run class="AroundInnerCalls13"/> + </ajc-test> + + <ajc-test dir="new" + title="around advice on calls within inner classes (including protected method calls)" + keywords="from-resolved_10x"> + <compile files="AroundInnerCalls.java" options="-1.4"/> + <run class="AroundInnerCalls"/> + </ajc-test> + + <ajc-test dir="new" title="Arguments to runNext should be final when needed" + keywords="from-resolved_10x"> + <compile files="Finals.java"/> + <run class="Finals"/> + </ajc-test> + + <ajc-test dir="new" title="Method introductions" + keywords="from-resolved_10x"> + <compile files="MethodIntroductions.java"/> + <run class="MethodIntroductions"/> + </ajc-test> + + <ajc-test dir="new" title="Putting an introduced method on each interface" + keywords="from-resolved_10x"> + <compile files="IntroducedMethodsOnEachInterface.java"/> + <run class="IntroducedMethodsOnEachInterface"/> + </ajc-test> + + <ajc-test dir="new" title="Extending interfaces" + keywords="from-resolved_10x"> + <compile files="BindingInterfaces.java"/> + <run class="BindingInterfaces"/> + </ajc-test> + + <ajc-test dir="new" title="Introducing private methods on interfaces" + keywords="from-resolved_10x"> + <compile files="IntroducingPrivateMethodsOnInterfaces.java"/> + <run class="IntroducingPrivateMethodsOnInterfaces"/> + </ajc-test> + + <ajc-test dir="new" + title="Issuing errors for assigning variables thisJoinPoint -- not assigning thisJoinPoint." + keywords="from-resolved_10x"> + <compile files="ThisJoinPointAssignments.java"/> + <run class="ThisJoinPointAssignments"/> + </ajc-test> + + <ajc-test dir="new" + title="Static references inside of introduced bodies get bound correctly." + keywords="from-resolved_10x"> + <compile files="StaticIntroducedReferences.java"/> + <run class="StaticIntroducedReferences"/> + </ajc-test> + + <ajc-test dir="new/cflowObjectCreations" pr="307" + title="cflow and object creations [of eachcflow]" + keywords="from-resolved_10x"> + <compile files="Driver.java"/> + <run class="Driver"/> + </ajc-test> + + <ajc-test dir="new/twofiles" + title="Doesn't import MightHaveAspect when compiling with more than 1 file. [eachobject]" + keywords="from-resolved_10x"> + <compile files="TheObject.java,TheAspect.java"/> + <run class="TheObject"/> + </ajc-test> + + <ajc-test dir="new" pr="436" + title="test binding to formals in calls to constructors (binding to null) (eachobject !!! now misnamed)" + keywords="from-resolved_10x"> + <compile files="BindingThisInsteadOfFormal.java"/> + <run class="BindingThisInsteadOfFormal"/> + </ajc-test> + + <ajc-test dir="new" + title="After advice isn't being woven into after throwing advice" + keywords="from-resolved_10x"> + <compile files="AfterThrowingNotWoven.java"/> + <run class="AfterThrowingNotWoven"/> + </ajc-test> + + <ajc-test dir="new" title="Throwing an EmptyStackException." + keywords="from-resolved_10x"> + <compile files="EmptyStack.java"/> + <run class="EmptyStack"/> + </ajc-test> + + <ajc-test dir="new/perThis" + title="check that MightHaveAspect interface is created correctly for an aspect in deep package" + keywords="from-resolved_10x"> + <compile files="p/EachObjectTarget.java,the/deep/pkg/EachObjectInDeepPackage.java"/> + <run class="p.EachObjectTarget"/> + </ajc-test> + + <ajc-test dir="new" title="Defines clfow$ajc0 more once. [eachcflow]" + keywords="from-resolved_10x"> + <compile files="Binkley.java"/> + <run class="Binkley"/> + </ajc-test> + + <ajc-test dir="new" + title="Various calls, receptions, and callsto tests [callsto]" + keywords="from-resolved_10x"> + <compile files="CallsReceptionsCallsto.java"/> + <run class="CallsReceptionsCallsto"/> + </ajc-test> + + <ajc-test dir="new" pr="320" + title="Was throwing exception, now just an error. [eachobject]" + keywords="from-resolved_10x"> + <compile files="PR320.java"/> + <run class="PR320"/> + </ajc-test> + + <ajc-test dir="new" + title="different version of aspect inheritance, particularly empty pointcuts and abstract cflows [eachcflow]" + keywords="from-resolved_10x,fail-unimplemented"> + <compile files="AspectInheritance.java"/> + <run class="AspectInheritance"/> + </ajc-test> + + <ajc-test dir="new" pr="339" + title="set advice on member initing throwing exception [eachobject]" + keywords="from-resolved_10x"> + <compile files="PR339.java"/> + <run class="PR339"/> + </ajc-test> + + <ajc-test dir="new" pr="417" + title="Testing class names with same name's with difference case as package. [eachobject]" + keywords="from-resolved_10x"> + <compile files="test/TraceAspect.java,test/Test.java"/> + <run class="test.Test"/> + </ajc-test> + + <ajc-test dir="new" + title="Null pointer on gets advice with coverage [painful]" + keywords="from-resolved_10x"> + <compile files="NullPointerOnGets.java"/> + <run class="NullPointerOnGets"/> + </ajc-test> + + <ajc-test dir="new" title="Basic test for cflow pointcuts [eachcflow]" + keywords="from-resolved_10x"> + <compile files="CFlowPoints.java"/> + <run class="CFlowPoints"/> + </ajc-test> + + <ajc-test dir="new" + title="Crashing when looking up the type of array members." + keywords="from-resolved_10x"> + <compile files="ArrayCasts.java"/> + <run class="ArrayCasts"/> + </ajc-test> + + <ajc-test dir="new" + title="PostfixExprs to various synthetic things are fixed correctly [eachobject]" + keywords="from-resolved_10x"> + <compile files="Fixes.java"/> + <run class="Fixes"/> + </ajc-test> + + <ajc-test dir="new" + title="Dave Binkley's problem with eachcflowroot. [eachcflow]" + keywords="from-resolved_10x"> + <compile files="Binkley2.java"/> + <run class="Binkley2"/> + </ajc-test> + + <ajc-test dir="new" pr="105" title="advice on an inherited method" + keywords="from-resolved_10x"> + <compile files="AdviceOnInheritedMethod.java"/> + <run class="AdviceOnInheritedMethod"/> + </ajc-test> + + <ajc-test dir="new" pr="114" + title=", PR#115 checks the ordering of catch clauses" + keywords="from-resolved_10x"> + <compile files="OrderOfCatches.java"/> + <run class="OrderOfCatches"/> + </ajc-test> + + <ajc-test dir="new" title="various declared exception permutations" + keywords="from-resolved_10x"> + <compile files="DeclaredExcs.java"/> + <run class="DeclaredExcs"/> + </ajc-test> + + <ajc-test dir="new" + title="ordering of advice kinds as well as cflow and dominates" + keywords="from-resolved_10x"> + <compile files="AdviceOrdering.java"/> + <run class="AdviceOrdering"/> + </ajc-test> + + <ajc-test dir="new" pr="241" + title="advice on default constructor for a class only referenced via reflection" + keywords="from-resolved_10x"> + <compile files="OddConstructors.java"/> + <run class="OddConstructors"/> + </ajc-test> + + <ajc-test dir="new" pr="289" + title="calling and called this params in calls points" + keywords="from-resolved_10x"> + <compile files="CallsParams.java"/> + <run class="CallsParams"/> + </ajc-test> + + <ajc-test dir="new" pr="322" + title="primitive parameters coercable to Object just like return values are" + keywords="from-resolved_10x"> + <compile files="ObjectForInt.java"/> + <run class="ObjectForInt"/> + </ajc-test> + + <ajc-test dir="new" + title="join points in static/dynamic initializers aren't showing up." + keywords="from-resolved_10x"> + <compile files="NonexistentInitializers.java"/> + <run class="NonexistentInitializers"/> + </ajc-test> + + <ajc-test dir="new" + title="Gets and sets on a number of variables (field access ???)" + keywords="from-resolved_10x"> + <compile files="Gets.java"/> + <run class="Gets"/> + </ajc-test> + + <ajc-test dir="new" + title="Joinpoints are showing up on intermediate call sites" + keywords="from-resolved_10x"> + <compile files="Counting1.java"/> + <run class="Counting1"/> + </ajc-test> + + <ajc-test dir="new" title="Reception based on strictfp modifier" + keywords="from-resolved_10x"> + <compile files="StrictFpReceptions.java"/> + <run class="StrictFpReceptions"/> + </ajc-test> + + <ajc-test dir="new" pr="353" + title="Subclasses that do not redefine a method are not being handled correctly" + keywords="from-resolved_10x"> + <compile files="PR353b.java"/> + <run class="PR353b"/> + </ajc-test> + + <ajc-test dir="new" + title="making sure that super calls are bound to the right methods" + keywords="from-resolved_10x"> + <compile files="SupersAndInterfaces.java"/> + <run class="SupersAndInterfaces"/> + </ajc-test> + + <ajc-test dir="new" pr="317" + title="inheritance, around advice and abstract pointcuts [eachobject] (still)" + keywords="from-resolved_10x"> + <compile files="OverridingPointcuts.java"/> + <run class="OverridingPointcuts"/> + </ajc-test> + + <ajc-test dir="new/foemmel" + title="Priviledged aspect methods are missing for privates. [eachobject]" + keywords="from-resolved_10x"> + <compile files="TheAspect.java,TheObject.java"> + </compile> + <run class="TheObject"/> + </ajc-test> + + <ajc-test dir="new" + title="exceptions thrown and caught in advice, particularly try+proceed" + keywords="from-resolved_10x"> + <compile files="TryAndProceed.java"/> + <run class="TryAndProceed"/> + </ajc-test> + + <ajc-test dir="new" title="Not and And operators in pointcuts not working" + keywords="from-resolved_10x"> + <compile files="NotAndPointcut.java"/> + <run class="NotAndPointcut"/> + </ajc-test> + + <ajc-test dir="new" + title="Member initializers should run before the current class constructor" + keywords="from-resolved_10x"> + <compile files="MemberInitializationsAfterExplicitConstructorCalls.java"/> + <run class="MemberInitializationsAfterExplicitConstructorCalls"/> + </ajc-test> + + <ajc-test dir="new" + title="Coverage tests for Member initializers should run before the current class constructor and after super" + keywords="from-resolved_10x"> + <compile + files="MemberInitializationsAfterExplicitConstructorCallsCoverage.java"/> + <run class="MemberInitializationsAfterExplicitConstructorCallsCoverage"/> + </ajc-test> + + <ajc-test dir="new" + title="thisJoinPoint{Static} not visible in if() pcd of named pointcut" + keywords="from-resolved_10x"> + <compile files="IfPCDExprJoinPointVisibleCE.java"/> + <run class="IfPCDExprJoinPointVisibleCE"/> + </ajc-test> + + <ajc-test dir="new" + title="pcd if() expression visibility at compile-time (minimal operation)" + keywords="from-resolved_10x"> + <compile files="IfPCDExprVisibility.java" options="-Xlint:ignore"/> + <run class="IfPCDExprVisibility"/> + </ajc-test> + + <ajc-test dir="new" + title="pcd if() NPE in compiler when unwinding assignment in pcd if(expr)" + keywords="from-resolved_10x"> + <compile files="IfPCDExprAssignUnparseFailure.java"/> + <run class="IfPCDExprAssignUnparseFailure"/> + </ajc-test> + + <ajc-test dir="new" + title="pcd if() dup methods produced when pointcut after advice etc (javac)" + keywords="from-resolved_10x"> + <compile files="IfPCDDupMethod.java"/> + <run class="IfPCDDupMethod"/> + </ajc-test> + + <ajc-test dir="new" + title="pcd if() variants: [anonymous, named] x [execution, call, callTyped, get, set, initializations] x [before, after, around]" + keywords="from-resolved_10x"> + <compile files="IfPCDAdviceMethods.java"/> + <run class="IfPCDAdviceMethods"/> + </ajc-test> + + <ajc-test dir="new" pr="476" title="initialization order with this" + keywords="from-resolved_10x"> + <compile files="InitializationOrder.java"/> + <run class="InitializationOrder"/> + </ajc-test> + + <ajc-test dir="new" pr="496" + title="!within and !this handling for callee-side call points" + keywords="from-resolved_10x"> + <compile files="NotThis.java"/> + <run class="NotThis"/> + </ajc-test> + + <ajc-test dir="new/innerInterfaces" pr="494" + title="private inner interfaces and bytecode visibility" + keywords="from-resolved_10x"> + <compile files="p/Driver.java,p/InnerTest.java,other/Test.java"/> + <run class="p.Driver"/> + </ajc-test> + + <!-- This has a complicated set of expected join points. + This test should be borken up into more manageable chunks + and more carefully analyzed for correctness in the future. + --> + <ajc-test dir="new" pr="490" + title="elaborated into testing of around on all join points" + keywords="from-resolved_10x"> + <compile files="AroundAll.java"/> + <run class="AroundAll"/> + </ajc-test> + + <ajc-test dir="new" + title="type name hygiene when code comes from aspects in different packages" + keywords="from-resolved_10x"> + <compile + files="typeNameConflicts/Driver.java,typeNameConflicts/p1/C.java,typeNameConflicts/aspects/A.java"/> + <run class="typeNameConflicts.Driver"/> + </ajc-test> + + <ajc-test dir="new" title="cflowbelow dependencies (from Chris Dutchyn)" + keywords="from-resolved_10x"> + <compile files="CflowBelowTest.java"/> + <run class="CflowBelowTest"/> + </ajc-test> + + <ajc-test dir="new" pr="493" + title="Compiler incorrectly flagging *1 (non-alphabetic start to signature pattern)" + keywords="from-resolved_10x"> + <compile files="NonAlphaSignaturePatternCE.java"/> + <run class="NonAlphaSignaturePatternCE"/> + </ajc-test> + + <ajc-test dir="new" + title="Unable to bind privately-introduced field name from introduced method in the same aspect" + keywords="from-resolved_10x"> + <compile files="IntroducedFieldsNotBinding.java"/> + <run class="IntroducedFieldsNotBinding"/> + </ajc-test> + + <ajc-test dir="new/anonInnerClass" pr="297" + title="anonymous inner class with aspect" keywords="from-resolved_10x"> + <compile files="Driver.java"/> + <run class="Driver"/> + </ajc-test> + + <ajc-test dir="new" pr="335" + title="Arguments are not being passed in to calls advice" + keywords="from-resolved_10x"> + <compile files="PR335.java"/> + <run class="PR335"/> + </ajc-test> + + <ajc-test dir="design/intro" title="interfaces as mixins with introduction" + keywords="from-resolved_10x"> + <compile files="Interfaces.java"/> + <run class="Interfaces"/> + </ajc-test> + + <ajc-test dir="new" + title="functional modifiers work correctly with introduced members" + keywords="from-resolved_10x"> + <compile files="IntroducedModifiers.java"/> + <run class="IntroducedModifiers"/> + </ajc-test> + + <ajc-test dir="new" + title="ExceptionInInitializerError accessing cflow in aspect initialization - before variants" + keywords="from-resolved_10x"> + <compile files="CflowInitInAspectVariantsBefore.java"/> + <run class="CflowInitInAspectVariantsBefore"/> + </ajc-test> + + <ajc-test dir="new" + title="NoClassDefFoundError accessing cflow in aspect initialization - after variants" + keywords="from-resolved_10x"> + <compile files="CflowInitInAspectVariantsAfter.java"/> + <run class="CflowInitInAspectVariantsAfter"/> + </ajc-test> + + <ajc-test dir="new" title="InternalCompilerError in JpPlan when args alone" + keywords="from-resolved_10x"> + <compile files="ArgsAlone.java"/> + <run class="ArgsAlone"/> + </ajc-test> + + <ajc-test dir="new" pr="527" + title="compile error using pcd if() with advice on introduced methods." + keywords="from-resolved_10x"> + <compile files="PR527.java"/> + <run class="PR527"/> + </ajc-test> + + <ajc-test dir="new" pr="528" + title="compile errors boolean using cflow and unimplemented method using around advice on methods introduced by interface" + keywords="from-resolved_10x"> + <compile files="PR528.java"/> + <run class="PR528"/> + </ajc-test> + + <ajc-test dir="new" pr="534" title="aspect as member of interface" + keywords="from-resolved_10x"> + <compile files="AspectInInterfaceCP.java"/> + <run class="AspectInInterfaceCP"/> + </ajc-test> + + <ajc-test dir="new" pr="535" + title="missing method name to synthetic invocation" + keywords="from-resolved_10x,new-messages-vary"> + <compile files="PR535.java"/> + <run class="PR535"/> + </ajc-test> + + <ajc-test dir="new" pr="536" + title="protected subclass impl of superclass method with default access and variants" + keywords="from-resolved_10x"> + <compile files="RestrictingVisibilityCP.java"/> + <run class="RestrictingVisibilityCP"/> + </ajc-test> + + <ajc-test dir="new" pr="519" title="Exception planning advice" + keywords="from-resolved_10x"> + <compile files="PR519.java" options="-Xlint:ignore"/> + <run class="PR519"/> + </ajc-test> + + <ajc-test dir="new" pr="521" + title="unreproduced bug with advice - probably UTR" + keywords="from-resolved_10x"> + <compile files="PR520.java"/> + <run class="PR520"/> + </ajc-test> + + <ajc-test dir="new" pr="494" + title="introduced inner interfaces accessible inside aspect" + keywords="from-resolved_10x"> + <compile files="IntroduceInnerInterfaceCP.java"/> + <run class="IntroduceInnerInterfaceCP"/> + </ajc-test> + + <ajc-test dir="new" pr="525" + title="validate (enclosing) join point and source locations" + keywords="from-resolved_10x"> + <compile files="NegativeSourceLocation.java" options="-Xlint:ignore"/> + <run class="NegativeSourceLocation"/> + </ajc-test> + + <ajc-test dir="new" pr="544" + title="advice formals are just like method formals" + keywords="from-resolved_10x"> + <compile files="AdviceFormalsCp.java"/> + <run class="AdviceFormalsCp"/> + </ajc-test> + + <ajc-test dir="new" pr="544" + title="advice formals produce errors just like method formals" + keywords="from-resolved_10x"> + <compile files="AdviceFormalsCf.java"> + <message kind="error" line="28"/> + <message kind="error" line="29"/> + <message kind="error" line="36"/> + <message kind="error" line="37"/> + </compile> + </ajc-test> + + <ajc-test dir="new" + title="advice throws clauses must be compatible with joinpoints they apply to" + keywords="from-resolved_10x"> + <compile files="AdviceThrowsCp.java"/> + <run class="AdviceThrowsCp"/> + </ajc-test> + + <ajc-test dir="new" pr="570" + title="potential method conflicts with introductions and interfaces and PR#561" + keywords="from-resolved_10x"> + <compile files="MethodConflictsCP.java"/> + <run class="MethodConflictsCP"/> + </ajc-test> + + <ajc-test dir="new" pr="570" + title="illegal method conflicts with introductions and interfaces and PR#561" + keywords="from-resolved_10x"> + <compile files="MethodConflictsCF.java"> + <message kind="error" line="8"/> + <message kind="error" line="20"/> + <message kind="error" line="28"/> + </compile> + </ajc-test> + + <ajc-test dir="new" title="AspectOf available for different aspect types" + keywords="from-resolved_10x"> + <compile files="AspectOf.java"/> + <run class="AspectOf"/> + </ajc-test> + + <ajc-test dir="new/privilegedAspects" pr="35593" + title="access to all members of class and inner class from privileged aspect" + keywords="from-resolved_10x"> + <compile + files="driver/PrivilegedAspect.java,util/Util.java,pack/DefaultTarget.java,pack/PublicTarget.java"/> + <run class="driver.PrivilegedAspect"/> + </ajc-test> + + <ajc-test dir="new" + title="cflow alone with around produces compiler bcg StackOverflowError" + keywords="from-resolved_10x"> + <compile files="CflowAlone.java"/> + <run class="CflowAlone"/> + </ajc-test> + + <ajc-test dir="new" + title="get/set join points run for complex assignment operators (+=, etc.) (working)" + keywords="from-resolved_10x"> + <compile files="AssignOps.java"/> + <run class="AssignOps"/> + </ajc-test> + + <ajc-test dir="new/introTypeMissing" + title="this available in introduced field initializers" + keywords="from-resolved_10x"> + <compile files="ThisInIntroFieldInit.java"/> + <run class="ThisInIntroFieldInit"/> + </ajc-test> + + <ajc-test dir="new/introTypeMissing" + title="Introduced type unavailable to cast expressions in introduced methods" + keywords="from-resolved_10x"> + <compile files="Cast.java,TargetClass.java,Util.java"/> + <run class="Cast"/> + </ajc-test> + + <ajc-test dir="new/introTypeMissing" + title="Introduced type unavailable to qualified new expressions in introduced methods" + keywords="from-resolved_10x"> + <compile files="Inner.java,TargetClass.java,Util.java"/> + <run class="Inner"/> + </ajc-test> + + <ajc-test dir="new/introTypeMissing" + title="Introduced type unavailable to cast expressions in introduced field initializers" + keywords="from-resolved_10x"> + <compile files="CastInFieldInit.java,TargetClass.java,Util.java"/> + <run class="CastInFieldInit"/> + </ajc-test> + + <ajc-test dir="new/introTypeMissing" + title="Aspect type unavailable to qualified new expressions in body of introduced methods" + keywords="from-resolved_10x"> + <compile files="AspectInIntroducedMethod.java"/> + <run class="AspectInIntroducedMethod"/> + </ajc-test> + + + <ajc-test dir="new/introTypeMissing" + title="Introduced type unavailable to qualified new expressions in introduced field initializers" + keywords="from-resolved_10x"> + <compile files="InnerInFieldInit.java,TargetClass.java,Util.java"/> + <run class="InnerInFieldInit"/> + </ajc-test> + + <ajc-test dir="new" pr="595" + title="variable slots and finally/catch causing verify errors" + keywords="from-resolved_10final,from-resolved_10x"> + <compile files="AfterFinally.java"/> + <run class="AfterFinally"/> + </ajc-test> + + + <ajc-test dir="new" pr="590" + title="after advice on static method with pcd if() using result" + keywords="from-resolved_10x"> + <compile files="PR590.java"> + <message kind="error" line="20"/> + <message kind="error" line="23"/> + </compile> + </ajc-test> + + <ajc-test dir="new" pr="590" + title="after advice on static method with pcd if() using result through pointcut" + keywords="from-resolved_10x"> + <compile files="PR590a.java" options="-Xlint:ignore"> + <message kind="error" line="29"/> + <message kind="error" line="31"/> + </compile> + </ajc-test> + + <ajc-test dir="new/PR600" pr="600" + title="AbstractMethodError for introduced methods (order 1)" + keywords="from-resolved_10x"> + <compile files="Main.java,My_error.java,A.java,B.java,C.java"/> + <run class="Main"/> + </ajc-test> + + <ajc-test dir="new/PR600" pr="600" + title="AbstractMethodError for introduced methods (order 2)" + keywords="from-resolved_10x"> + <compile files="Main.java,My_error.java,C.java,A.java,B.java"/> + <run class="Main"/> + </ajc-test> + + <ajc-test dir="new/PR600" pr="600" + title="AbstractMethodError for introduced methods (order 3)" + keywords="from-resolved_10x"> + <compile files="My_error.java,A.java,B.java,C.java,Main.java"/> + <run class="Main"/> + </ajc-test> + + <ajc-test dir="new/PR600" pr="600" + title="AbstractMethodError for introduced methods (order 4)" + keywords="from-resolved_10x"> + <compile files="A.java,B.java,C.java,Main.java,My_error.java"/> + <run class="Main"/> + </ajc-test> + + <ajc-test dir="new/PR600" pr="600" + title="AbstractMethodError for introduced methods (order 5)" + keywords="from-resolved_10x"> + <compile files="A.java,B.java,Main.java,C.java,My_error.java"/> + <run class="Main"/> + </ajc-test> + + <ajc-test dir="new" title="declare error and abstract pointcuts" + keywords="from-resolved_10x"> + <compile files="AbstractDeclare.java"> + <message kind="error" line="3"/> + <message kind="error" line="4"/> + </compile> + </ajc-test> + + <ajc-test dir="new/runtime" + title="Exercise runtime classes (optionally in 1.1 VM)" + keywords="from-resolved_10x"> + <compile files="AllRuntime.java,TesterDriver.java"/> + <run class="TesterDriver"/> + </ajc-test> + + <ajc-test dir="new" + title="VerifyError after around advice falls off end of tryCatch" + keywords="from-resolved_10x"> + <compile files="TryOffEnd.java"> + <message kind="warning" line="13"/> + <message kind="warning" line="21"/> + </compile> + <run class="TryOffEnd"/> + </ajc-test> + + <ajc-test dir="new" pr="635" title="Named within pointcuts failing" + keywords="from-resolved_10x"> + <compile files="NamedWithinPointcuts.java"/> + <run class="NamedWithinPointcuts"/> + </ajc-test> + + <ajc-test dir="new/subaspects" pr="647" + title="aspect with private abstract pointcut" + keywords="from-resolved_10x,fail-unimplemented"> + <compile files="PrivatePointcutCE.java"> + <message kind="error" line="5"/> + </compile> + </ajc-test> + + <ajc-test dir="new/subaspects" pr="647" + title="concrete aspect unable to access abstract package-private pointcut in parent for overriding" + keywords="from-resolved_10x" + comment="XXX getting error - confirm line numbers"> + <compile files="parent/ParentCE.java,child/ChildCE.java"> + <message kind="error" file="child/ChildCE.java" line="21"/> + <message kind="error" file="child/ChildCE.java" line="31"/> + <message kind="error" file="parent/ParentCE.java" line="8"/> + <message kind="error" file="parent/ParentCE.java" line="10"/> + <message kind="error" file="parent/ParentCE.java" line="12"/> + <message kind="error" file="parent/ParentCE.java" line="22"/> + </compile> + </ajc-test> + + <ajc-test dir="new/subaspects" pr="647" + title="inner, outer, and outside-package subaspects of an aspect with abstract protected-, public-, and default-access pointcuts" + keywords="from-resolved_10x"> + <compile + files="parent/SubAspectVisibility.java,parent/ForeignChildHelper.java,child/ForeignChildAspect.java"/> + <run class="parent.SubAspectVisibility"/> + </ajc-test> + + <ajc-test dir="new/subaspects" pr="647" + title="inner subaspects of an aspect with private pointcut" + keywords="from-resolved_10x"> + <compile files="parent/PrivatePointcut.java"/> + <run class="parent.PrivatePointcut"/> + </ajc-test> + + <ajc-test dir="new/subaspects" pr="647" + title="outer subaspects of an aspect with private pointcut" + keywords="from-resolved_10x"> + <compile files="parent/PrivatePointcutOuterClass.java"/> + <run class="parent.PrivatePointcutOuterClass"/> + </ajc-test> + + <ajc-test dir="new/subaspects" pr="647" + title="abstract aspect used statically should not cause instantiation of advice or pointcut" + keywords="from-resolved_10x"> + <compile files="AbstractAspectUsedStatically.java"/> + <run class="AbstractAspectUsedStatically"/> + </ajc-test> + + <ajc-test dir="new" + title="private inner interface accessible in scope when declared on outer class" + keywords="from-resolved_10x"> + <compile files="DeclareAccess.java"/> + <run class="DeclareAccess"/> + </ajc-test> + + <ajc-test dir="new" + title="accessing protected superclass members in and outside CCC from body of method introduction" + keywords="from-resolved_10x"> + <compile files="SuperInIntroduction.java"/> + <run class="SuperInIntroduction"/> + </ajc-test> + + <ajc-test dir="new" + title="accessing private superclass members from body of method introduction" + keywords="from-resolved_10x"> + <compile files="SuperInIntroductionCE.java"> + <message kind="error" line="25"/> + <message kind="error" line="26"/> + </compile> + </ajc-test> + + <ajc-test dir="new" title="simple test for around and casting" + keywords="from-resolved_10x"> + <compile files="AroundCasting.java"/> + <run class="AroundCasting"/> + </ajc-test> + + <ajc-test dir="new/aroundinner" pr="620" + title="aroundInner 1 - around advice inner Thread subclass running proceed but not writing field" + keywords="from-resolved_10x"> + <compile files="ThreadNoField.java,Common.java"/> + <run class="ThreadNoField"/> + </ajc-test> + + <ajc-test dir="new/aroundinner" pr="620" + title="aroundInner 2 - around advice inner Runnable running proceed and writing method-final proxy" + keywords="from-resolved_10x"> + <compile files="Proxy.java,Common.java"/> + <run class="Proxy"/> + </ajc-test> + + <ajc-test dir="new/aroundinner" pr="620" + title="aroundInner 3 - around advice inner class running proceed and writing field" + keywords="from-resolved_10x"> + <compile files="Minimal.java,Common.java"/> + <run class="Minimal"/> + </ajc-test> + + <ajc-test dir="new/aroundinner" pr="620" + title="aroundInner 4 - around advice inner Thread subclass running proceed and writing field" + keywords="from-resolved_10x"> + <compile files="ThreadSub.java,Common.java"/> + <run class="ThreadSub"/> + </ajc-test> + + <ajc-test dir="new/aroundinner" pr="620" + title="aroundInner 5 - around advice inner Runnable (subinterface) running proceed and writing field introduced on subinterface" + keywords="from-resolved_10x"> + <compile files="RunnableSub.java,Common.java"/> + <run class="RunnableSub"/> + </ajc-test> + + <ajc-test dir="new" pr="636" + title="Named local class closing over proceed invocation" + keywords="from-resolved_10x"> + <compile files="LocalClassClosingOverProceed.java"/> + <run class="LocalClassClosingOverProceed"/> + </ajc-test> + + <ajc-test dir="new" + title="beautiful recursive computation of factorial with around is now supported" + keywords="from-resolved_10x"> + <compile files="CircularAdvice.java"/> + <run class="CircularAdvice"/> + </ajc-test> + + <ajc-test dir="new" pr="632" + title="multi-dispatch not used for named pcd references" + keywords="from-resolved_10x"> + <compile files="MultiDispatchCf.java"> + <message kind="error" line="54"/> + <message kind="error" line="57"/> + <message kind="error" line="60"/> + <message kind="error" line="71"/> + </compile> + </ajc-test> + + <ajc-test dir="new" pr="632" + title="multi-dispatch implemented through around + args" + keywords="from-resolved_10x"> + <compile files="MultiDispatchCp.java"/> + <run class="MultiDispatchCp"/> + </ajc-test> + + <ajc-test dir="new" + title="unrecognized aspect should not net Cloneable and Serializable warnings" + keywords="from-resolved_10x"> + <compile files="UnrecognizedAspectCE.java"> + <message kind="error" line="3"/> + </compile> + </ajc-test> + + <ajc-test dir="new" + title="unreachable code generated by around advice on the execution of void methods" + keywords="from-resolved_10x"> + <compile files="AroundVoid.java"/> + <run class="AroundVoid"/> + </ajc-test> + + <ajc-test dir="new" pr="654" + title="Overriding method implementations using introduction on interfaces" + keywords="from-resolved_10x,fail-unimplemented"> + <compile files="IntroductionsOverriding.java" options="-Xlint:ignore" /> + <run class="IntroductionsOverriding"/> + </ajc-test> + + <ajc-test dir="new" pr="654" + title="more coverage for around and concrete methods on interfaces" + keywords="from-resolved_10x"> + <compile files="MultiAndAround.java" options="-Xlint:ignore"/> + <run class="MultiAndAround"/> + </ajc-test> + + <ajc-test dir="new" title="invalid number and type of proceed arguments" + keywords="from-resolved_10x"> + <compile files="InvalidProceedArgsCE.java"> + <message kind="error" line="10"/> + <message kind="error" line="15"/> + <message kind="error" line="17"/> + <message kind="error" line="20"/> + <message kind="error" line="22"/> + <message kind="error" line="27"/> + <message kind="error" line="29"/> + <message kind="error" line="31"/> + <message kind="error" line="37"/> + <message kind="error" line="39"/> + <message kind="error" line="43"/> + <message kind="error" line="46"/> + </compile> + </ajc-test> + + <ajc-test dir="new" pr="694" title="after returning advice order" + keywords="from-resolved_10x"> + <compile files="Cricket.java"/> + <run class="Cricket"/> + </ajc-test> + + <ajc-test dir="new" pr="694" title="after returning advice param" + keywords="from-resolved_10x"> + <compile files="AfterReturningParam.java"/> + <run class="AfterReturningParam"/> + </ajc-test> + + <ajc-test dir="new" pr="695" + title="! and declaring types with callee-side call join points" + keywords="from-resolved_10x"> + <compile files="NotAndDeclaringTypes.java" options="-Xlint:ignore"/> + <run class="NotAndDeclaringTypes"/> + </ajc-test> + + <ajc-test dir="new" pr="479" + title=". Binding the wrong arguments in withincode(..)." + keywords="from-resolved_10x"> + <compile files="BindingArgumentsInWithincode.java"/> + <run class="BindingArgumentsInWithincode"/> + </ajc-test> + + <ajc-test dir="new" pr="479" + title=". Matching arguments in cflow correctly." + keywords="from-resolved_10x"> + <compile files="MatchingArgumentsInCflow.java"/> + <run class="MatchingArgumentsInCflow"/> + </ajc-test> + + <ajc-test dir="new" pr="480" + title=". Binding variables with numbers in their name with pertarget(..)'s." + keywords="from-resolved_10x"> + <compile files="PerTargetAndVariablesWithNumbersInTheirNames.java"/> + <run class="PerTargetAndVariablesWithNumbersInTheirNames"/> + </ajc-test> + + + <ajc-test dir="new" pr="554" + title="second arg in formal on shared joinpoint with pcd if() causes verify error ??" + keywords="from-resolved_10rc3"> + <compile files="PR554.java"/> + <run class="PR554"/> + </ajc-test> + + <ajc-test dir="new/privilegedAspects" pr="555" + title="access to private members from privileged aspect" + keywords="from-resolved_10rc3"> + <compile + files="driver/PR555.java,util/Util.java,pack/DefaultTarget.java"/> + <run class="driver.PR555"/> + </ajc-test> + + <ajc-test dir="new" pr="555" + title="inner classes of privileged aspects cannot see target class private members" + keywords="from-resolved_10rc3"> + <compile files="InnerClassInPrivilegedAspect.java"/> + <run class="InnerClassInPrivilegedAspect"/> + </ajc-test> + + <ajc-test dir="new/packageAccessPR556" pr="556" + title="aspects should get package access outside the file" + keywords="from-resolved_10rc3"> + <compile files="base1/p/C1.java,base2/p/C2.java"/> + <run class="p.C1"/> + </ajc-test> + + <ajc-test dir="new" pr="559" + title="subclass advice not run for join points selected by superclass cflow-based pointcuts" + keywords="from-resolved_10rc3"> + <compile files="PR559.java"/> + <run class="PR559"/> + </ajc-test> + + <ajc-test dir="new" pr="559" + title="more issues with abstract aspects and cflow pointcuts" + keywords="from-resolved_10rc3,fail-unimplemented"> + <compile files="AbstractCflows.java"/> + <run class="AbstractCflows"/> + </ajc-test> + + <ajc-test dir="new" pr="560" + title="compile fails for aspect derived from percflow base aspect unless pointcut excludes base aspect and subaspects" + keywords="from-resolved_10rc3"> + <compile files="PR560.java"/> + <run class="PR560"/> + </ajc-test> + + + <ajc-test dir="new" pr="573" + title="pertarget stack overflow getting name of anonymous (Interface) class" + keywords="from-resolved_10rc3"> + <compile files="PR573.java"/> + <run class="PR573"/> + </ajc-test> + + <ajc-test dir="new" pr="573" + title="pertarget stack overflow getting name of anonymous (Object) class" + keywords="from-resolved_10rc3"> + <compile files="PR573_1.java"/> + <run class="PR573_1"/> + </ajc-test> + + <ajc-test dir="new" pr="573" + title="pertarget runtime stack overflow (getting name of anonymous (Object) class?)" + keywords="from-resolved_10rc3"> + <compile files="PR573_2.java"/> + <run class="PR573_2"/> + </ajc-test> + + <ajc-test dir="new" pr="685" + title="subaspect method declaration on superaspect inner interface (names)" + keywords="from-resolved_104"> + <compile files="InnerInterfaceNames.java"/> + <run class="InnerInterfaceNames"/> + </ajc-test> + + <ajc-test dir="new" pr="685" + title="subaspect method declaration on superaspect inner interface (access)" + keywords="from-resolved_104"> + <compile files="InnerInterfaceAccess.java"/> + <run class="InnerInterfaceAccess"/> + </ajc-test> + + <ajc-test dir="new" pr="685" + title="subaspect method declaration on superaspect inner interface (types)" + keywords="from-resolved_104"> + <compile files="InnerInterfaceTypes.java,InnerInterfaceTypesHelper.java"/> + <run class="InnerInterfaceTypes"/> + </ajc-test> + + <ajc-test dir="new" pr="691" title="around AST type XXX" + keywords="from-resolved_104"> + <compile files="PR691.java"/> + <run class="PR691"/> + </ajc-test> + + <ajc-test dir="new" pr="687" + title="around all execution with double assignment in initializer (simple)" + keywords="from-resolved_104"> + <compile files="AroundDoubleAssignment.java"/> + <run class="AroundDoubleAssignment"/> + </ajc-test> + + <ajc-test dir="new" pr="687" + title="around all execution with double assignment in initializer (coverage)" + keywords="from-resolved_104"> + <compile files="AroundDoubleAssignmentC.java"/> + <run class="AroundDoubleAssignmentC"/> + </ajc-test> + + <ajc-test dir="new" + title="changing this in around's proceed reported by Rich Price" + keywords="from-resolved_104"> + <compile files="AroundChangeThis.java" options="-1.4"/> + <run class="AroundChangeThis"/> + </ajc-test> + + <ajc-test dir="new" pr="548" + title="default package for aspect introductions is not the current package" + keywords="from-resolved_10rc3,from-resolved_104"> + <compile + files="introductionPackage/two/C.java,introductionPackage/one/C.java,introductionPackage/one/Aspect.java,introductionPackage/one/TestAspect.java"/> + <run class="one.TestAspect"/> + </ajc-test> + + <ajc-test dir="new/PR569" pr="569" + title="anon class written to wrong directory" + keywords="from-resolved_104,from-resolved_104"> + <compile files="a/IntroAnon.java,a/MyInterface.java,b/Dest.java"/> + <run class="a.IntroAnon"/> + </ajc-test> + + <ajc-test dir="new" pr="603" + title="unqualified transitive pointcut references not resolved" + keywords="from-resolved_104"> + <compile files="PointcutQualification.java"/> + <run class="PointcutQualification"/> + </ajc-test> + + <ajc-test dir="new" pr="603" + title="unqualified transitive pointcut references not resolved - 2" + keywords="from-resolved_104"> + <compile files="PointcutQualification2.java"/> + <run class="PointcutQualification2"/> + </ajc-test> + + <ajc-test dir="new" pr="619" + title="direct use outside aspect of defined abstract pointcut" + keywords="from-resolved_104"> + <compile files="AbstractPointcutAccess.java"/> + <run class="AbstractPointcutAccess"/> + </ajc-test> + + <ajc-test dir="new" pr="619" + title="direct use outside aspect of undefined abstract pointcut" + keywords="from-resolved_104"> + <compile files="AbstractPointcutAccessCE.java"> + <message kind="error" line="9"/> + </compile> + </ajc-test> + + <ajc-test dir="new" pr="619" + title="indirect use outside aspect of undefined abstract pointcut" + keywords="from-resolved_104"> + <compile files="AbstractPointcutIndirectCE.java"> + <message kind="error" line="9"/> + <message kind="error" line="5"/> + </compile> + </ajc-test> + + <ajc-test dir="new" pr="658" + title="simple call join point tests for JoinPoint SourceLocation context" + keywords="from-resolved_104"> + <compile files="SourceLocationCall.java"/> + <run class="SourceLocationCall"/> + </ajc-test> + + <ajc-test dir="new" pr="661" + title="!target with second advice on casted call" + keywords="from-resolved_104"> + <compile files="CallNotTarget.java"/> + <run class="CallNotTarget"/> + </ajc-test> + + <ajc-test dir="new" pr="666" title="name binding in around cflow" + keywords="from-resolved_104"> + <compile files="AroundCall.java"/> + <run class="AroundCall"/> + </ajc-test> + + <ajc-test dir="new" pr="660" title="name binding in around cflow - 2" + keywords="from-resolved_104"> + <compile files="ArgsInCflow2.java"/> + <run class="ArgsInCflow2"/> + </ajc-test> + + <ajc-test dir="new" pr="677" + title="around name-binding in cflows using factorial" + keywords="from-resolved_104"> + <compile files="FactorialCflow.java"/> + <run class="FactorialCflow"/> + </ajc-test> + + <ajc-test dir="new" title="replacing this or target in around advice" + keywords="from-resolved_104"> + <compile files="TargetObjectReplacement.java"/> + <run class="TargetObjectReplacement"/> + </ajc-test> + + <ajc-test dir="new" + title="after returning from initialization and after executing constructor" + keywords="from-resolved_104"> + <compile files="ConstructorExecInit.java"/> + <run class="ConstructorExecInit"/> + </ajc-test> + + <ajc-test dir="new" + title="after returning from initialization causes ExceptionInInitializer in aspect"> + <compile files="ConstructorExecInitFails.java"/> + <run class="ConstructorExecInitFails"/> + </ajc-test> + + <ajc-test dir="new" pr="659" + title="name binding in before cflow containing cflowbelow" + keywords="from-resolved_104"> + <compile files="ArgsInCflow.java" options="!eclipse"> + <message kind="error" line="29"/> + <message kind="error" line="32"/> + </compile> + </ajc-test> + + + <ajc-test dir="new/pr728" pr="728" title="file order in type searching" + keywords="from-resolved_105"> + <compile files="AnotherClass.java,Interface.java"/> + <run class="AnotherClass"/> + </ajc-test> + + + <ajc-test dir="new" title="simple declare warning (NPE)" + keywords="from-resolved_105"> + <compile files="DeclareWarningMain.java"> + <message kind="warning" line="5"/> + </compile> + <run class="DeclareWarningMain"/> + </ajc-test> + + <ajc-test dir="new" pr="755" + title="ajc dies on cflow into field init anon class see knownbugs.txt" + keywords="from-resolved_105"> + <compile files="CflowOfFieldInitAnonMethods.java" options="!eclipse"> + </compile> + <run class="CflowOfFieldInitAnonMethods" options="!eclipse"/> + </ajc-test> + + + <ajc-test dir="new" pr="757" title="Incrementing interface-introduced field" + keywords="from-resolved_105"> + <compile files="IntroducedFieldInc.java"/> + <run class="IntroducedFieldInc"/> + </ajc-test> + + <ajc-test dir="new" + title="The dynamic type, not the static one, should be used in if pcds" + keywords="from-resolved_105"> + <compile files="StaticTypeInIf.java"/> + <run class="StaticTypeInIf"/> + </ajc-test> + + <ajc-test dir="new" + title="bad interaction with after returning, around and void methods (from Rich Price)" + keywords="from-resolved_105"> + <compile files="AfterReturningResult.java"/> + <run class="AfterReturningResult"/> + </ajc-test> + + <ajc-test dir="new" + title="type pattern matching for inner classes (from Ken Horn)" + keywords="from-resolved_105"> + <compile files="TypePat.java"/> + <run class="test.TypePat"/> + </ajc-test> + + <ajc-test dir="new" pr="771" title="static initializer member name" + keywords="from-resolved_105"> + <compile files="StaticInitName.java"/> + <run class="StaticInitName"/> + </ajc-test> + + <ajc-test dir="new" pr="770" title="cflow pcd syntax error" + keywords="from-resolved_105"> + <compile files="IllegalCflowCE.java"> + <message kind="error" line="4"/> + </compile> + </ajc-test> + + <ajc-test dir="new" pr="764" + title="binding args with indeterminate prefix and suffix" + keywords="from-resolved_105"> + <compile files="IndeterminateArgs.java"/> + <run class="IndeterminateArgs"/> + </ajc-test> + + <ajc-test dir="new" pr="764" + title="check arg types with indeterminate prefix and suffix" + keywords="from-resolved_105"> + <compile files="IndeterminateArgType.java"/> + <run class="IndeterminateArgType"/> + </ajc-test> + + <ajc-test dir="new" pr="764" + title="testing and binding args with single indeterminate prefix and suffix" + keywords="from-resolved_105"> + <compile files="IndeterminateArg.java"/> + <run class="IndeterminateArg"/> + </ajc-test> + + <ajc-test dir="new" pr="764" + title="binding handler args with indeterminate prefix and suffix" + keywords="from-resolved_105"> + <compile files="IndeterminateHandlerArg.java"/> + <run class="IndeterminateHandlerArg"/> + </ajc-test> + + + <ajc-test dir="new/nolang" pr="762" + title="Compiling java.lang.Object with ajc yields non-verifying bytecode" + keywords="from-resolved_105" + comment="XXX weak/bad test"> + <compile files="java/lang/Object.java,java/lang/String.java"> + </compile> + </ajc-test> + + <ajc-test dir="new" + title="method-local class defined in around return statement" + keywords="from-resolved_105"> + <compile files="MethodLocalAroundReturns.java"/> + <run class="MethodLocalAroundReturns"/> + </ajc-test> + + <ajc-test dir="new" title="CE expected for assignment to arg in if pcd" + keywords="from-resolved_105"> + <compile files="IfPCDAssignmentCE.java"> + <message kind="error" line="16"/> + <message kind="error" line="20"/> + </compile> + </ajc-test> + + <ajc-test dir="new" title="advising field get/sets when accessing via super" + keywords="from-resolved_105"> + <compile files="SuperField.java"/> + <run class="SuperField"/> + </ajc-test> + + <ajc-test dir="new" title="accessing private members in outer types" + keywords="from-resolved_105"> + <compile files="FieldInnerAccess.java"/> + <run class="FieldInnerAccess"/> + </ajc-test> + + <ajc-test dir="new" pr="29934" + title="can't apply around advice to the execution of around advice" + keywords="from-resolved_10x"> + <compile files="CflowCycles.java"/> + <run class="CflowCycles"/> + </ajc-test> + + <ajc-test dir="new" + title="incompatible advice throws clause are a compile-time error" + keywords="from-resolved_10x"> + <compile files="AdviceThrowsCf.java"> + <message kind="error" line="13"/> + <message kind="error" line="28"/> + <message kind="error" line="47"/> + <message kind="error" line="48"/> + <message kind="error" line="50"/> + + <message kind="error" line="70"/> + <message kind="error" line="74"/> + <message kind="error" line="76"/> + <message kind="error" line="78"/> + + <message kind="error" line="85"/> + </compile> + </ajc-test> + diff --git a/tests/src/org/aspectj/systemtest/ajc10x/ajc10x.xml b/tests/src/org/aspectj/systemtest/ajc10x/ajc10x.xml new file mode 100644 index 000000000..90198331d --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc10x/ajc10x.xml @@ -0,0 +1,9 @@ +<!DOCTYPE suite SYSTEM "../tests/ajcTestSuite.dtd"[ +<!ENTITY tests SYSTEM "../tests/src/org/aspectj/systemtest/ajc10x/ajc10x-tests.xml"> +]> + +<!-- AspectJ v1.0.x Tests --> + +<suite> +&tests; +</suite>
\ No newline at end of file |