From 1cd86ff91ecff7901d5984758821b89df1acd3bc Mon Sep 17 00:00:00 2001 From: aclement Date: Fri, 11 Nov 2005 11:23:43 +0000 Subject: tests for pr113447 from Helen Hawkins. --- tests/bugs150/PR113447.java | 40 ------------- tests/bugs150/pr113447/PR113447.java | 42 ++++++++++++++ tests/bugs150/pr113447/PR113447a.java | 65 ++++++++++++++++++++++ tests/bugs150/pr113447/PR113447b.java | 27 +++++++++ tests/bugs150/pr113447/PR113447c.java | 27 +++++++++ tests/bugs150/pr113447/PR113447d.java | 25 +++++++++ tests/bugs150/pr113447/PR113447e.java | 36 ++++++++++++ .../org/aspectj/systemtest/ajc150/Ajc150Tests.java | 29 ++++++++-- tests/src/org/aspectj/systemtest/ajc150/ajc150.xml | 32 ++++++++++- 9 files changed, 278 insertions(+), 45 deletions(-) delete mode 100644 tests/bugs150/PR113447.java create mode 100644 tests/bugs150/pr113447/PR113447.java create mode 100644 tests/bugs150/pr113447/PR113447a.java create mode 100644 tests/bugs150/pr113447/PR113447b.java create mode 100644 tests/bugs150/pr113447/PR113447c.java create mode 100644 tests/bugs150/pr113447/PR113447d.java create mode 100644 tests/bugs150/pr113447/PR113447e.java diff --git a/tests/bugs150/PR113447.java b/tests/bugs150/PR113447.java deleted file mode 100644 index 8fd45ed06..000000000 --- a/tests/bugs150/PR113447.java +++ /dev/null @@ -1,40 +0,0 @@ -public class PR113447 { - - public static void main(String[] args) { - PR113447 me = new PR113447(); - me.method1(); - me.method3(); - } - - public void method1(){} - - public void method3(){} -} - -aspect Super { - - // second method doesn't exist - pointcut pc1(PR113447 s) : - (this(s) && execution(void method1())) - || (this(s) && execution(void method2())); - - before(PR113447 s) : pc1(s) { - } - - // second method does exist - pointcut pc2(PR113447 s) : - (this(s) && execution(void method1())) - || (this(s) && execution(void method3())); - - before(PR113447 s) : pc2(s) { - } - - // second method doesn't exist - pointcut pc3(PR113447 s) : - (args(s) && execution(void method1())) - || (args(s) && execution(void method2())); - - before(PR113447 s) : pc3(s) { - } - -} diff --git a/tests/bugs150/pr113447/PR113447.java b/tests/bugs150/pr113447/PR113447.java new file mode 100644 index 000000000..074f8037f --- /dev/null +++ b/tests/bugs150/pr113447/PR113447.java @@ -0,0 +1,42 @@ +public class PR113447 { + + public static void main(String[] args) { + PR113447 me = new PR113447(); + me.method1(); + me.method3(); + } + + public void method1(){} + + public void method3(){} +} + +aspect Super { + + // second method doesn't exist + pointcut pc1(PR113447 s) : + (this(PR113447) && this(s) && execution(void method1()) && this(PR113447)) + || (this(s) && execution(void method2()) && this(PR113447)); + + before(PR113447 s) : pc1(s) { + } + +/* + // second method does exist + pointcut pc2(PR113447 s) : + (this(s) && execution(void method1())) + || (this(s) && execution(void method3())); + + before(PR113447 s) : pc2(s) { + } + + // second method doesn't exist + pointcut pc3(PR113447 s) : + (args(s) && execution(void method1())) + || (args(s) && execution(void method2())); + + before(PR113447 s) : pc3(s) { + } +*/ + +} diff --git a/tests/bugs150/pr113447/PR113447a.java b/tests/bugs150/pr113447/PR113447a.java new file mode 100644 index 000000000..d720c5244 --- /dev/null +++ b/tests/bugs150/pr113447/PR113447a.java @@ -0,0 +1,65 @@ +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +@interface Annotation{}; + +@Annotation +public class PR113447a { + + public static void main(String[] args) { + PR113447a me = new PR113447a(); + me.method1(); + me.method3(); + me.method4(2); + } + + public void method1(){} + + public void method3(){} + + public void method4(int i){} + public void method5(int i){} +} + +aspect Super { + + // second method doesn't exist + pointcut pc1(Annotation a) : + (@this(a) && execution(void method1())) + || (@this(a) && execution(void method2())); + + before(Annotation a) : pc1(a) {} + + // second method does exist + pointcut pc2(Annotation a) : + (@this(a) && execution(void method1())) + || (@this(a) && execution(void method3())); + + before(Annotation a) : pc2(a) {} + + // second method doesn't exist + pointcut pc3(Annotation a) : + (@target(a) && call(void method1())) + || (@target(a) && call(void method2())); + + before(Annotation a) : pc3(a) { + } + + // second method does exist + pointcut pc4(Annotation a) : + (@target(a) && call(void method1())) + || (@target(a) && call(void method3())); + + before(Annotation a) : pc4(a) { + } + + // @this equivalent of BaseTests.test024 which was affected by + // the fix for the non annotation version + pointcut p(Annotation a) : + @target(a) && (call(void method4(int)) + || call(void method5(int))); + + before(Annotation a) : p(a) {} + after(Annotation a): p(a) {} +} diff --git a/tests/bugs150/pr113447/PR113447b.java b/tests/bugs150/pr113447/PR113447b.java new file mode 100644 index 000000000..baa0abaa6 --- /dev/null +++ b/tests/bugs150/pr113447/PR113447b.java @@ -0,0 +1,27 @@ +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +@interface Annotation{}; + +@Annotation +public class PR113447b { + + public static void main(String[] args) { + PR113447b me = new PR113447b(); + me.method4(1); + } + + public void method4(int i){} + public void method5(int i){} +} + +aspect Super { + + pointcut p(Annotation a) : + @within(a) && (call(void method4(int)) + || call(void method5(int))); + + before(Annotation a) : p(a) {} + +} diff --git a/tests/bugs150/pr113447/PR113447c.java b/tests/bugs150/pr113447/PR113447c.java new file mode 100644 index 000000000..d903dbb29 --- /dev/null +++ b/tests/bugs150/pr113447/PR113447c.java @@ -0,0 +1,27 @@ +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +@interface Annotation{}; + +public class PR113447c { + + @Annotation + public static void main(String[] args) { + PR113447c me = new PR113447c(); + me.method4(1); + } + + public void method4(int i){} + public void method5(int i){} +} + +aspect Super { + + pointcut p(Annotation a) : + @withincode(a) && (call(void method4(int)) + || call(void method5(int))); + + before(Annotation a) : p(a) {} + +} diff --git a/tests/bugs150/pr113447/PR113447d.java b/tests/bugs150/pr113447/PR113447d.java new file mode 100644 index 000000000..bf7520d28 --- /dev/null +++ b/tests/bugs150/pr113447/PR113447d.java @@ -0,0 +1,25 @@ +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +@interface Annotation{}; + +public class PR113447d { + + public static void main(String[] args) { + PR113447d me = new PR113447d(); + me.method4(1); + } + + @Annotation public void method4(int i){} + @Annotation public void method5(int i){} +} + +aspect Super { + + pointcut p(Annotation a) : + @annotation(a) && (call(void method4(int)) + || call(void method5(int))); + + before(Annotation a) : p(a) {} +} diff --git a/tests/bugs150/pr113447/PR113447e.java b/tests/bugs150/pr113447/PR113447e.java new file mode 100644 index 000000000..424089d7c --- /dev/null +++ b/tests/bugs150/pr113447/PR113447e.java @@ -0,0 +1,36 @@ +public class PR113447e { + + public static void main(String[] args) { + PR113447e me = new PR113447e(); + me.method1(1); + me.method3(2); + } + + public void method1(int i){} + + public void method3(int i){} +} + +aspect Super { + + // second method doesn't exist + pointcut pc1(int i) : + (args(i) && call(void method1(int))) + || (args(i) && call(void method2(int))); + + before(int i) : pc1(i) {} + + // second method does exist + pointcut pc2(int i) : + (args(i) && call(void method1(int))) + || (args(i) && call(void method3(int))); + + before(int i) : pc2(i) {} + + // ensure this still works + pointcut pc3(int i) : + args(i) && (call(void method1(int)) || call(void method2(int))); + + before(int i) : pc3(i) {} + after(int i) : pc3(i) {} +} diff --git a/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java b/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java index c2e2114f7..a7993fb86 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java @@ -658,10 +658,6 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase { runTest("weaveinfo message for declare at method on an ITDd method"); } - public void testNoVerifyErrorWithTwoThisPCDs_pr113447() { - runTest("no verify error with two this pcds"); - } - public void testITDCWithNoExplicitConsCall() { runTest("ITDC with no explicit cons call"); } @@ -682,6 +678,31 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase { runTest("pointcut expression containing 'assert'"); } + public void testNoVerifyErrorWithTwoThisPCDs_pr113447() { + runTest("no verify error with two this pcds"); + } + + public void testNoVerifyErrorWithTwoAtThisPCDs_pr113447() { + runTest("no verify error with two at this pcds"); + } + + public void testNoVerifyErrorWithAtWithinPCDs_pr113447() { + runTest("no verify error with at within pcds"); + } + + public void testNoVerifyErrorWithAtWithincodePCDs_pr113447() { + runTest("no verify error with at withincode pcds"); + } + + public void testNoVerifyErrorWithAtAnnotationPCDs_pr113447() { + runTest("no verify error with at annotation pcds"); + } + + public void testNoVerifyErrorWithTwoArgsPCDs_pr113447() { + runTest("no verify error with two args pcds"); + } + + // helper methods..... public SyntheticRepository createRepos(File cpentry) { diff --git a/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml b/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml index 80492b878..e5122ff09 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml +++ b/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml @@ -934,12 +934,42 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3