diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/bugs1612/pr354470/Code.java | 48 | ||||
-rw-r--r-- | tests/bugs1612/pr354470/Code2.java | 39 | ||||
-rw-r--r-- | tests/bugs1612/pr354470/Code3.java | 41 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc1612/Ajc1612Tests.java | 12 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc1612/ajc1612.xml | 28 |
5 files changed, 168 insertions, 0 deletions
diff --git a/tests/bugs1612/pr354470/Code.java b/tests/bugs1612/pr354470/Code.java new file mode 100644 index 000000000..044966200 --- /dev/null +++ b/tests/bugs1612/pr354470/Code.java @@ -0,0 +1,48 @@ +import org.aspectj.lang.annotation.*; +import java.lang.annotation.*; +import java.lang.reflect.*; + +@Aspect("perthis(transactional())") +public class Code { + @Pointcut("execution(@Transactional * * (..))") + public void transactional() { } + + public static void main(String[] args) { + print(AAA.class); + print(BBB.class); + print(CCC.class); + } + + public static void print(Class clazz) { + System.out.println(clazz.getName()); + Class[] ifs = clazz.getInterfaces(); + if (ifs!=null) { + for (int i=0;i<ifs.length;i++) { + System.out.println(ifs[i]); + } + } + Field[] fs = clazz.getDeclaredFields(); + if (fs!=null) { + for (int i=0;i<fs.length;i++) { + System.out.println(fs[i]); + } + } + } +} + +class AAA { + public void m() { } +} + +class BBB { + public void m() { } +} + +class CCC { + @Transactional + public void m() { } +} + + +@Retention(RetentionPolicy.RUNTIME) @interface Transactional {} + diff --git a/tests/bugs1612/pr354470/Code2.java b/tests/bugs1612/pr354470/Code2.java new file mode 100644 index 000000000..1cc1ea49b --- /dev/null +++ b/tests/bugs1612/pr354470/Code2.java @@ -0,0 +1,39 @@ +import org.aspectj.lang.annotation.*; +import java.lang.annotation.*; +import java.lang.reflect.*; +import org.aspectj.lang.*; + +@Aspect("perthis(transactional())") +public class Code2 { + @Pointcut("execution(@Transactional * * (..))") + public void transactional() { } + + @Before("execution(* *(..))") + public void m(JoinPoint.StaticPart thisJoinPointStaticPart) { + System.out.println(thisJoinPointStaticPart); + } + + public static void main(String[] args) { + new AAA().m(); + new BBB().m(); + new CCC().m(); + } + +} + +class AAA { + public void m() { } +} + +class BBB { + public void m() { } +} + +class CCC { + @Transactional + public void m() { } +} + + +@Retention(RetentionPolicy.RUNTIME) @interface Transactional {} + diff --git a/tests/bugs1612/pr354470/Code3.java b/tests/bugs1612/pr354470/Code3.java new file mode 100644 index 000000000..7199b68e1 --- /dev/null +++ b/tests/bugs1612/pr354470/Code3.java @@ -0,0 +1,41 @@ +import org.aspectj.lang.annotation.*; +import java.lang.annotation.*; +import java.lang.reflect.*; +import org.aspectj.lang.*; + +@Aspect("perthis(transactional())") +public class Code3 { + @Pointcut("execution(@Transactional * * (..))") + public void transactional() { } + + @Before("execution(* *(..))") + public void m(JoinPoint.StaticPart thisJoinPointStaticPart) { + System.out.println(thisJoinPointStaticPart); + } + + public static void main(String[] args) { + new AAA().m(); + new BBB().m(); + new CCC().m(); + } + +} + +aspect XXX { + @Transactional public void CCC.m() {} +} + +class AAA { + public void m() { } +} + +class BBB { + public void m() { } +} + +class CCC { +} + + +@Retention(RetentionPolicy.RUNTIME) @interface Transactional {} + diff --git a/tests/src/org/aspectj/systemtest/ajc1612/Ajc1612Tests.java b/tests/src/org/aspectj/systemtest/ajc1612/Ajc1612Tests.java index 27f6c58ae..43c638702 100644 --- a/tests/src/org/aspectj/systemtest/ajc1612/Ajc1612Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc1612/Ajc1612Tests.java @@ -35,6 +35,18 @@ public class Ajc1612Tests extends org.aspectj.testing.XMLBasedAjcTestCase { // runTest("itd split compilation"); // } + public void testPervasivePerthis_354470() throws Exception { + runTest("perthis too pervasive"); + } + + public void testPervasivePerthis_354470_2() throws Exception { + runTest("perthis too pervasive 2"); + } + + public void testPervasivePerthis_354470_3() throws Exception { + runTest("perthis too pervasive 3"); + } + public void testNotEqualWithAnnotationValues_357013() throws Exception { runTest("annotation values not equal"); } diff --git a/tests/src/org/aspectj/systemtest/ajc1612/ajc1612.xml b/tests/src/org/aspectj/systemtest/ajc1612/ajc1612.xml index b54f5e855..f37b8834e 100644 --- a/tests/src/org/aspectj/systemtest/ajc1612/ajc1612.xml +++ b/tests/src/org/aspectj/systemtest/ajc1612/ajc1612.xml @@ -2,6 +2,34 @@ <suite> +<ajc-test dir="bugs1612/pr354470" title="perthis too pervasive"> +<compile files="Code.java" options="-1.5"/> +<run class="Code"> +<stdout> + <line text="AAA"/> + <line text="BBB"/> + <line text="CCC"/> + <line text="interface Code$ajcMightHaveAspect"/> + <line text="private transient Code CCC.ajc$Code$perObjectField"/> +</stdout></run> +</ajc-test> + +<ajc-test dir="bugs1612/pr354470" title="perthis too pervasive 2"> +<compile files="Code2.java" options="-1.5"/> +<run class="Code2"> +<stdout> + <line text="execution(void CCC.m())"/> +</stdout></run> +</ajc-test> + +<ajc-test dir="bugs1612/pr354470" title="perthis too pervasive 3"> +<compile files="Code3.java" options="-1.5"/> +<run class="Code3"> +<stdout> + <line text="execution(void CCC.m())"/> +</stdout></run> +</ajc-test> + <ajc-test dir="bugs1612/prx" title="class reference in annotation value"> <compile files="C.java" options="-1.5 -showWeaveInfo"> <message kind="weave" text="Join point 'field-get(int C.i)' in Type 'C' (C.java:17) advised by before advice from 'X' (C.java:22)"/> |