aboutsummaryrefslogtreecommitdiffstats
path: root/tests/base/test123
diff options
context:
space:
mode:
authorwisberg <wisberg>2002-12-16 18:51:06 +0000
committerwisberg <wisberg>2002-12-16 18:51:06 +0000
commit144143c2970a1e874d74cdbd0f8c622d4282a3c3 (patch)
treeb12383d3d9e76c7e1f25f7fbec83051ef17f81fb /tests/base/test123
parentfafae443719b26159ab2d7dac1c9b46b5e00b671 (diff)
downloadaspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.tar.gz
aspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.zip
initial version
Diffstat (limited to 'tests/base/test123')
-rw-r--r--tests/base/test123/Driver.java48
-rw-r--r--tests/base/test123/Readme.txt5
2 files changed, 53 insertions, 0 deletions
diff --git a/tests/base/test123/Driver.java b/tests/base/test123/Driver.java
new file mode 100644
index 000000000..41d099c07
--- /dev/null
+++ b/tests/base/test123/Driver.java
@@ -0,0 +1,48 @@
+import org.aspectj.testing.Tester;
+
+public class Driver {
+ public static void main(String[] args) { test(); }
+
+ public static void test() {
+ C1 c1 = new C1(333);
+ Tester.checkEqual(c1.afterAdvises, 0, "C1(int)");
+ c1 = new C1("asdfasdf");
+ Tester.checkEqual(c1.afterAdvises, 1, "C1(String)");
+ C2 c2 = new C2(333);
+ Tester.checkEqual(c2.afterAdvises, 0, "C2(int) -> C1(String)");
+ c2 = new C2("foo");
+ Tester.checkEqual(c2.afterAdvises, 1, "C2(String) -> C1(int)");
+ c2 = new C2("foo", 42);
+ Tester.checkEqual(c2.afterAdvises, 1, "C2(String,int) -> C1(String)");
+ }
+}
+
+class C1 {
+ public int afterAdvises = 0;
+
+ C1() { }
+ C1(int i) { }
+ C1(String s) { }
+}
+
+class C2 extends C1 {
+
+ C2(int i) {
+ super("asdf");
+ }
+
+ C2(String s) {
+ super(42);
+ }
+
+ C2(String s, int i) {
+ super(s);
+ }
+}
+
+aspect A {
+ after(/*C1 c1*/) returning(C1 c1): /*target(c1) && */
+ call(new(String, ..)) {
+ c1.afterAdvises += 1;
+ }
+}
diff --git a/tests/base/test123/Readme.txt b/tests/base/test123/Readme.txt
new file mode 100644
index 000000000..0de4cc836
--- /dev/null
+++ b/tests/base/test123/Readme.txt
@@ -0,0 +1,5 @@
+Mode: VM Run
+Title: Crossing super calls in constructors.
+
+This tests how crossing super calls work with reception
+advice in constructors.