diff options
author | Andy Clement <andrew.clement@gmail.com> | 2013-06-13 12:29:45 -0700 |
---|---|---|
committer | Andy Clement <andrew.clement@gmail.com> | 2013-06-13 12:29:45 -0700 |
commit | 5b0b6b07d2b581cddd1bac4a2a6b12cd4ac02b07 (patch) | |
tree | d70190d982a521f6392c71946c7a92e466e81b93 /tests/src/org | |
parent | 31d8e259e5cd8b1b4810d69bbf4b9ea45ae4a4c8 (diff) | |
download | aspectj-5b0b6b07d2b581cddd1bac4a2a6b12cd4ac02b07.tar.gz aspectj-5b0b6b07d2b581cddd1bac4a2a6b12cd4ac02b07.zip |
Preserve ordering of declare annotation when removing and adding annotations
Issue: 407739
Diffstat (limited to 'tests/src/org')
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc173/Ajc173Tests.java | 197 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc173/ajc173.xml | 22 |
2 files changed, 35 insertions, 184 deletions
diff --git a/tests/src/org/aspectj/systemtest/ajc173/Ajc173Tests.java b/tests/src/org/aspectj/systemtest/ajc173/Ajc173Tests.java index de3437baf..774cb84e6 100644 --- a/tests/src/org/aspectj/systemtest/ajc173/Ajc173Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc173/Ajc173Tests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2012 Contributors + * Copyright (c) 2013 Contributors * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -24,6 +24,18 @@ import org.aspectj.testing.XMLBasedAjcTestCase; */ public class Ajc173Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + public void testAddRemoveAnnos_407739() throws Exception { + runTest("add remove annos"); + } + +// public void testOrdering_407966() throws Exception { +// runTest("ordering"); +// } +// +// public void testInnerInterfaceMixin_408014() throws Exception { +// runTest("inner interface mixin"); +// } + public void testClassAnnoValue_405016_1() throws Exception { // test that class literals allowed runTest("class anno value 1"); @@ -57,189 +69,6 @@ public class Ajc173Tests extends org.aspectj.testing.XMLBasedAjcTestCase { assertEquals(1,ags.length); assertEquals("LFoo;",ags[0].getTypeSignature()); } - - // still broken! -// public void testDeclareAnnoOnItd2() throws Exception { -// runTest("declare anno on itd 2"); -// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(),"C"); -// Method m = getMethodStartsWith(jc, "getName"); -// assertNotNull(m); -// AnnotationGen[] ags = m.getAnnotations(); -// for (int i=0;i<ags.length;i++) { -// System.out.println(ags[i]); -// } -// assertEquals(1,ags.length); -// assertEquals("LFoo;",ags[0].getTypeSignature()); -// } - -// // if the test is failing because the classes won't run, remove the run blocks from the ajc172.xml entry and re-run to check signatures. -// public void testSignatures_pr394535() throws Exception { -// runTest("signatures"); -// -// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(),"Bug2$ClassA2"); // the working one -// String sss = jc.getSignatureAttribute().getSignature(); -// assertEquals("<T::LBug2$Interface12;:LBug2$Interface22;>Ljava/lang/Object;Ljava/io/Serializable;", sss); -// -// jc = getClassFrom(ajc.getSandboxDirectory(),"Bug$ClassA"); -// sss = jc.getSignatureAttribute().getSignature(); -// assertEquals("<T::LBug$Interface1;:LBug$Interface2;>Ljava/lang/Object;Ljava/io/Serializable;", sss); -// } -// -// // extends -// public void testPSignatures_pr399590() throws Exception { -// runTest("p signatures 1"); -// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(),"Cage"); -// String sss = jc.getSignatureAttribute().getSignature(); -// assertEquals("<T:LAnimal<+LCage<TT;>;>;>LBar;", sss); -// jc = getClassFrom(ajc.getSandboxDirectory(),"Cage2"); -// sss = jc.getSignatureAttribute().getSignature(); -// assertEquals("<T:LAnimal2<+LCage2<TT;>;>;>LBar2;Ljava/io/Serializable;", sss); -// } -// -// // extends two classes -// public void testPSignatures_pr399590_2() throws Exception { -// runTest("p signatures 2"); -// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(),"Cage"); -// String sss = jc.getSignatureAttribute().getSignature(); -// assertEquals("<T:LAnimal<+LCage<TT;LIntf;>;LIntf;>;Q:Ljava/lang/Object;>LBar;", sss); -// jc = getClassFrom(ajc.getSandboxDirectory(),"Cage2"); -// sss = jc.getSignatureAttribute().getSignature(); -// assertEquals("<T:LAnimal2<+LCage2<TT;LIntf2;>;LIntf2;>;Q:Ljava/lang/Object;>LBar2;Ljava/io/Serializable;", sss); -// } -// -// // super -// public void testPSignatures_pr399590_3() throws Exception { -// runTest("p signatures 3"); -// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(),"Cage"); -// String sss = jc.getSignatureAttribute().getSignature(); -// assertEquals("<T:LAnimal<-LXXX<TT;>;>;>LBar;", sss); -// jc = getClassFrom(ajc.getSandboxDirectory(),"Cage2"); -// sss = jc.getSignatureAttribute().getSignature(); -// assertEquals("<T:LAnimal2<-LXXX2<TT;>;>;>LBar2;Ljava/io/Serializable;", sss); -// } -// -// // super -// public void testPSignatures_pr399590_4() throws Exception { -// runTest("p signatures 4"); -// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(),"Cage"); -// String sss = jc.getSignatureAttribute().getSignature(); -// assertEquals("<T:LAnimal<-LXXX<TT;>;LYYY;>;>LBar;", sss); -// jc = getClassFrom(ajc.getSandboxDirectory(),"Cage2"); -// sss = jc.getSignatureAttribute().getSignature(); -// assertEquals("<T:LAnimal2<-LXXX2<TT;>;LYYY2;>;>LBar2;Ljava/io/Serializable;", sss); -// } -// -// // unbound -// public void testPSignatures_pr399590_5() throws Exception { -// runTest("p signatures 5"); -// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(),"Cage"); -// String sss = jc.getSignatureAttribute().getSignature(); -// assertEquals("<T:LAnimal<*>;>LBar;", sss); -// jc = getClassFrom(ajc.getSandboxDirectory(),"Cage2"); -// sss = jc.getSignatureAttribute().getSignature(); -// assertEquals("<T:LAnimal2<*>;>LBar2;Ljava/io/Serializable;", sss); -// } -// -// public void testIfPointcutNames_pr398246() throws Exception { -// runTest("if pointcut names"); -// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(), "X"); -// Method m = getMethodStartsWith(jc, "ajc$if"); -// assertEquals("ajc$if$andy", m.getName()); -// } -// -// public void testIfPointcutNames_pr398246_2() throws Exception { -// runTest("if pointcut names 2"); -// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(), "X"); -// Method m = getMethodStartsWith(jc, "ajc$if"); -// assertEquals("ajc$if$fred", m.getName()); -// } -// -// // fully qualified annotation name is used -// public void testIfPointcutNames_pr398246_3() throws Exception { -// runTest("if pointcut names 3"); -// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(), "X"); -// Method m = getMethodStartsWith(jc, "ajc$if"); -// assertEquals("ajc$if$barney", m.getName()); -// } -// -// // compiling a class later than the initial build - does it pick up the -// // right if clause name? -// public void testIfPointcutNames_pr398246_4() throws Exception { -// runTest("if pointcut names 4"); -// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(), "X"); -// Method m = getMethodStartsWith(jc, "ajc$if"); -// assertEquals("ajc$if$sid", m.getName()); -// } -// -// // new style generated names -// public void testIfPointcutNames_pr398246_5() throws Exception { -// runTest("if pointcut names 5"); -// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(), "X"); -// Method m = getMethodStartsWith(jc, "ajc$if"); -// assertEquals("ajc$if$ac0cb804", m.getName()); -// -// jc = getClassFrom(ajc.getSandboxDirectory(), "X2"); -// m = getMethodStartsWith(jc, "ajc$if"); -// assertEquals("ajc$if$ac0cb804", m.getName()); -// } -// -// // new style generated names - multiple ifs in one pointcut -// public void testIfPointcutNames_pr398246_6() throws Exception { -// runTest("if pointcut names 6"); -// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(), "X"); -// Method m = getMethodStartsWith(jc, "ajc$if",1); -// assertEquals("ajc$if$aac93da8", m.getName()); -// m = getMethodStartsWith(jc, "ajc$if",2); -// assertEquals("ajc$if$1$ae5e778a", m.getName()); -// } -// -// // new style generated names - multiple ifs in one advice -// public void testIfPointcutNames_pr398246_7() throws Exception { -// runTest("if pointcut names 7"); -// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(), "X"); -// Method m = getMethodStartsWith(jc, "ajc$if",1); -// assertEquals("ajc$if$1$ac0607c", m.getName()); -// m = getMethodStartsWith(jc, "ajc$if",2); -// assertEquals("ajc$if$1$1$4d4baf36", m.getName()); -// } -// -// public void testOptionalAspects_pr398588() { -// runTest("optional aspects"); -// } -// -// public void testInconsistentClassFile_pr389750() { -// runTest("inconsistent class file"); -// } -// -// public void testInconsistentClassFile_pr389750_2() { -// runTest("inconsistent class file 2"); -// } -// -// public void testInconsistentClassFile_pr389750_3() { -// runTest("inconsistent class file 3"); -// } -// -// public void testInconsistentClassFile_pr389750_4() { -// runTest("inconsistent class file 4"); -// } -// -// public void testAnnotationValueError_pr389752_1() { -// runTest("annotation value error 1"); -// } -// -// public void testAnnotationValueError_pr389752_2() { -// runTest("annotation value error 2"); -// } -// -// // this needs some cleverness to fix... the annotation value is parsed as a -// // string and then not checked -// // to see if the user is accidentally supplying, for example, an enum value. -// // Due to the use of strings, it -// // is hard to check. The verification code might go here: -// // WildAnnotationTypePattern, line 205 (the string case) -// // public void testAnnotationValueError_pr389752_3() { -// // runTest("annotation value error 3"); -// // } // --- diff --git a/tests/src/org/aspectj/systemtest/ajc173/ajc173.xml b/tests/src/org/aspectj/systemtest/ajc173/ajc173.xml index bcbfa7b96..f882d71c7 100644 --- a/tests/src/org/aspectj/systemtest/ajc173/ajc173.xml +++ b/tests/src/org/aspectj/systemtest/ajc173/ajc173.xml @@ -2,6 +2,28 @@ <suite> + <ajc-test dir="bugs173/pr407739" title="add remove annos"> + <compile files="MyAnnotation.java Hello.java Aspect.java" options="-1.5 -showWeaveInfo"> + <message kind="weave" text="'private String dummy [RuntimeVisibleAnnotations]' of type 'Hello' (Hello.java) has had @MyAnnotation field annotation removed by 'Aspect' (Aspect.java:3)"/> + <message kind="weave" text="'private String dummy [RuntimeVisibleAnnotations]' of type 'Hello' (Hello.java) is annotated with @MyAnnotation(dummy2 = "korte") field annotation from 'Aspect' (Aspect.java:4)"/> + </compile> + <run class="Hello"> + <stdout> + <line text="@MyAnnotation(dummy2=korte, dummy1=)"/> + </stdout> + </run> + </ajc-test> + + <ajc-test dir="bugs173/pr408014" title="inner interface mixin"> + <compile files="IdentifiableMixin.java" options="-1.5 -showWeaveInfo"> + </compile> + </ajc-test> + + <ajc-test dir="bugs173/pr407966" title="ordering"> + <compile files="Aspect.aj Use.java Def.java" options="-1.5 -showWeaveInfo"> + </compile> + </ajc-test> + <ajc-test dir="bugs173/pr407494" title="inner names"> <compile files="A.java" options="-1.5 -showWeaveInfo"> <message kind="weave" text="Join point 'staticinitialization(void a.b.c.A$B.<clinit>())' in Type 'a.b.c.A$B' (A.java:4) advised by before advice from 'a.b.c.X' (A.java:13)"/> |