diff options
author | aclement <aclement> | 2008-12-15 21:28:34 +0000 |
---|---|---|
committer | aclement <aclement> | 2008-12-15 21:28:34 +0000 |
commit | f6c0e441ce6ab3d8bb9724d3595d95cef60e786e (patch) | |
tree | 10b9c80e98661bc4db8cdb92e8079a36e53b825c | |
parent | a2041f02e2d022438f125681339706b97af8e2e7 (diff) | |
download | aspectj-f6c0e441ce6ab3d8bb9724d3595d95cef60e786e.tar.gz aspectj-f6c0e441ce6ab3d8bb9724d3595d95cef60e786e.zip |
252722: test and fix: generated super dispatch methods
-rw-r--r-- | tests/bugs163/pr252722/A.java | 24 | ||||
-rw-r--r-- | tests/bugs163/pr252722/ACode.java | 21 | ||||
-rw-r--r-- | tests/bugs163/pr252722/B.java | 28 | ||||
-rw-r--r-- | tests/bugs163/pr252722/BCode.java | 24 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java | 16 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc163/ajc163.xml | 20 |
6 files changed, 133 insertions, 0 deletions
diff --git a/tests/bugs163/pr252722/A.java b/tests/bugs163/pr252722/A.java new file mode 100644 index 000000000..35ae945d3 --- /dev/null +++ b/tests/bugs163/pr252722/A.java @@ -0,0 +1,24 @@ +import org.aspectj.lang.annotation.*; +import org.aspectj.lang.*; + + +abstract aspect Super { + void foo(String s) {} +} + +@Aspect +public class A extends Super { + + @Around("execution(* m(..))") + public void invoke(ProceedingJoinPoint pjp) { + super.foo("hello"); + } + + + public static void main(String []argv) { + new A().m(); + } + + public void m() {} +} + diff --git a/tests/bugs163/pr252722/ACode.java b/tests/bugs163/pr252722/ACode.java new file mode 100644 index 000000000..672a5b365 --- /dev/null +++ b/tests/bugs163/pr252722/ACode.java @@ -0,0 +1,21 @@ +import org.aspectj.lang.annotation.*; +import org.aspectj.lang.*; + + +abstract aspect Super { + void foo(String s,int i) {} +} + +public aspect ACode extends Super { + + void around(): execution(* m(..)) { + super.foo("hello",7); + } + + public static void main(String []argv) { + ACode.m(); + } + + public static void m() {} +} + diff --git a/tests/bugs163/pr252722/B.java b/tests/bugs163/pr252722/B.java new file mode 100644 index 000000000..23b516fb5 --- /dev/null +++ b/tests/bugs163/pr252722/B.java @@ -0,0 +1,28 @@ +import org.aspectj.lang.annotation.*; +import org.aspectj.lang.*; + +// Now the joinpoint is in a different type, does the super call from advice still work OK? + + +abstract aspect Super { + void foo(String s) {} +} + +@Aspect +public class B extends Super { + + @Around("execution(* m(..))") + public void invoke(ProceedingJoinPoint pjp) { + super.foo("hello"); + } + + public static void main(String []argv) { + new C().m(); + } +} + +class C { + + public void m() {} +} + diff --git a/tests/bugs163/pr252722/BCode.java b/tests/bugs163/pr252722/BCode.java new file mode 100644 index 000000000..1773ac0d9 --- /dev/null +++ b/tests/bugs163/pr252722/BCode.java @@ -0,0 +1,24 @@ +import org.aspectj.lang.annotation.*; +import org.aspectj.lang.*; + + +abstract aspect Super { + void foo(String s) {} +} + +public aspect BCode extends Super { + + void around(): execution(* m(..)) { + super.foo("hello"); + } + + public static void main(String []argv) { + new C().m(); + } +} + +class C { + + public void m() {} +} + diff --git a/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java b/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java index 0ad817a72..a6c3900f4 100644 --- a/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java @@ -31,6 +31,22 @@ public class Ajc163Tests extends org.aspectj.testing.XMLBasedAjcTestCase { // runTest("itd anonymous inner class in wrong package"); // } + public void testExtendingASI_pr252722() { + runTest("extending AbstractSecurityInterceptor"); + } + + public void testExtendingASI_pr252722_2() { + runTest("extending AbstractSecurityInterceptor - 2"); + } + + public void testExtendingASI_pr252722_3() { + runTest("extending AbstractSecurityInterceptor - 3"); + } + + public void testExtendingASI_pr252722_4() { + runTest("extending AbstractSecurityInterceptor - 4"); + } + public void testGetNode_pr258653() { runTest("getNode"); } diff --git a/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml b/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml index 9a3ee182d..cf8c9cf61 100644 --- a/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml +++ b/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml @@ -5,6 +5,26 @@ <ajc-test dir="bugs163/pr258653" title="getNode"> <compile files="staticinit.java" options="-1.5 -emacssym"/> </ajc-test> + + <ajc-test dir="bugs163/pr252722" title="extending AbstractSecurityInterceptor"> + <compile files="A.java" options="-1.5"/> + <run class="A"/> + </ajc-test> + + <ajc-test dir="bugs163/pr252722" title="extending AbstractSecurityInterceptor - 2"> + <compile files="ACode.java" options="-1.5"/> + <run class="ACode"/> + </ajc-test> + + <ajc-test dir="bugs163/pr252722" title="extending AbstractSecurityInterceptor - 3"> + <compile files="B.java" options="-1.5"/> + <run class="B"/> + </ajc-test> + + <ajc-test dir="bugs163/pr252722" title="extending AbstractSecurityInterceptor - 4"> + <compile files="BCode.java" options="-1.5"/> + <run class="BCode"/> + </ajc-test> <ajc-test dir="bugs163/pr154427" title="getMethod returning null"> <compile files="AuthorizationImpl.java Authorization.java AuthorizationAdmin.java CallAndMethodSignatureAspect.java CallTest.java" options=""/> |