aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAndy Clement <aclement@pivotal.io>2015-09-03 14:19:10 -0700
committerAndy Clement <aclement@pivotal.io>2015-09-03 14:19:10 -0700
commit2233cf023bce0168435795ab5747dae59fbd9a0d (patch)
treecdaa8d6ef69ef6abd123ab0d70a212d21e993f3c /tests
parenta9ea7010ab7075d934aeb49d48dec33d48b722c4 (diff)
downloadaspectj-2233cf023bce0168435795ab5747dae59fbd9a0d.tar.gz
aspectj-2233cf023bce0168435795ab5747dae59fbd9a0d.zip
307147: missing joinpoints for itds invoking private methods
Diffstat (limited to 'tests')
-rw-r--r--tests/bugs187/307147/ITDAspect.aj11
-rw-r--r--tests/bugs187/307147/Test.java28
-rw-r--r--tests/bugs187/307147/TestAspect.aj8
-rw-r--r--tests/bugs187/307147_2/ITDAspect.aj10
-rw-r--r--tests/bugs187/307147_2/Test.java16
-rw-r--r--tests/bugs187/307147_2/TestAspect.aj9
-rw-r--r--tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java8
-rw-r--r--tests/src/org/aspectj/systemtest/ajc187/ajc187.xml30
8 files changed, 120 insertions, 0 deletions
diff --git a/tests/bugs187/307147/ITDAspect.aj b/tests/bugs187/307147/ITDAspect.aj
new file mode 100644
index 000000000..5442a5825
--- /dev/null
+++ b/tests/bugs187/307147/ITDAspect.aj
@@ -0,0 +1,11 @@
+package test;
+
+import test.Test;
+
+public privileged aspect ITDAspect {
+ public void Test.itdFunction() {
+ System.out.println("ITD function");
+ privateMethod();
+ publicMethod();
+ }
+}
diff --git a/tests/bugs187/307147/Test.java b/tests/bugs187/307147/Test.java
new file mode 100644
index 000000000..25b4eef4d
--- /dev/null
+++ b/tests/bugs187/307147/Test.java
@@ -0,0 +1,28 @@
+package test;
+
+public class Test {
+
+ public Test() {
+ }
+
+ public static void main(String[] args) {
+ Test t = new Test();
+ t.function();
+ t.itdFunction();
+ }
+
+ public void function() {
+ System.out.println("Normal function");
+ privateMethod();
+ publicMethod();
+ }
+
+ private void privateMethod() {
+ System.out.println("private method");
+ }
+
+ public void publicMethod() {
+ System.out.println("public method");
+ }
+
+}
diff --git a/tests/bugs187/307147/TestAspect.aj b/tests/bugs187/307147/TestAspect.aj
new file mode 100644
index 000000000..cf53868e3
--- /dev/null
+++ b/tests/bugs187/307147/TestAspect.aj
@@ -0,0 +1,8 @@
+package test;
+
+public aspect TestAspect {
+ Object around(): call(* Test.*(..)) {
+ System.out.println("Around " + thisJoinPoint.toString());
+ return proceed();
+ }
+}
diff --git a/tests/bugs187/307147_2/ITDAspect.aj b/tests/bugs187/307147_2/ITDAspect.aj
new file mode 100644
index 000000000..c3e22ee7d
--- /dev/null
+++ b/tests/bugs187/307147_2/ITDAspect.aj
@@ -0,0 +1,10 @@
+package test;
+
+import test.Test;
+
+public privileged aspect ITDAspect {
+ public void Test.itdFunction() {
+ System.out.println("ITD function");
+ privateMethod("Foo");
+ }
+}
diff --git a/tests/bugs187/307147_2/Test.java b/tests/bugs187/307147_2/Test.java
new file mode 100644
index 000000000..fe184dfe5
--- /dev/null
+++ b/tests/bugs187/307147_2/Test.java
@@ -0,0 +1,16 @@
+package test;
+
+public class Test {
+
+ public Test() {
+ }
+
+ public static void main(String[] args) {
+ Test t = new Test();
+ t.itdFunction();
+ }
+
+ private void privateMethod(String xxx) {
+ System.out.println("hello "+xxx);
+ }
+}
diff --git a/tests/bugs187/307147_2/TestAspect.aj b/tests/bugs187/307147_2/TestAspect.aj
new file mode 100644
index 000000000..24cef6c79
--- /dev/null
+++ b/tests/bugs187/307147_2/TestAspect.aj
@@ -0,0 +1,9 @@
+package test;
+
+public aspect TestAspect {
+ Object around(String s): call(* Test.*(..)) && args(s) {
+ System.out.println("Around " + thisJoinPoint.toString());
+ System.out.println("Captured "+s);
+ return proceed(s.toUpperCase());
+ }
+}
diff --git a/tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java b/tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java
index ece3240e0..3fce314bd 100644
--- a/tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java
+++ b/tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java
@@ -24,6 +24,14 @@ import org.aspectj.testing.XMLBasedAjcTestCase;
*/
public class Ajc187Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
+ public void testMissingJoinpoint_307147() throws Exception {
+ runTest("missing joinpoint");
+ }
+
+ public void testMissingJoinpoint_307147_2() throws Exception {
+ runTest("missing joinpoint 2");
+ }
+
public void testInfiniteLoop_475152() throws Exception {
runTest("infinite loop");
}
diff --git a/tests/src/org/aspectj/systemtest/ajc187/ajc187.xml b/tests/src/org/aspectj/systemtest/ajc187/ajc187.xml
index e6db6d5e5..19706f43a 100644
--- a/tests/src/org/aspectj/systemtest/ajc187/ajc187.xml
+++ b/tests/src/org/aspectj/systemtest/ajc187/ajc187.xml
@@ -2,6 +2,36 @@
<suite>
+<ajc-test dir="bugs187/307147" title="missing joinpoint">
+<compile files="Test.java TestAspect.aj ITDAspect.aj" options="-1.8"/>
+<run class="test.Test">
+<stdout>
+<line text="Around call(void test.Test.function())"/>
+<line text="Normal function"/>
+<line text="Around call(void test.Test.privateMethod())"/>
+<line text="private method"/>
+<line text="Around call(void test.Test.publicMethod())"/>
+<line text="public method"/>
+<line text="Around call(void test.Test.itdFunction())"/>
+<line text="ITD function"/>
+<line text="Around call(void test.Test.privateMethod())"/>
+<line text="private method"/>
+<line text="Around call(void test.Test.publicMethod())"/>
+<line text="public method"/>
+</stdout></run>
+</ajc-test>
+
+<ajc-test dir="bugs187/307147_2" title="missing joinpoint 2">
+<compile files="Test.java TestAspect.aj ITDAspect.aj" options="-1.8"/>
+<run class="test.Test">
+<stdout>
+<line text="ITD function"/>
+<line text="Around call(void test.Test.privateMethod(String))"/>
+<line text="Captured Foo"/>
+<line text="hello FOO"/>
+</stdout></run>
+</ajc-test>
+
<ajc-test dir="bugs187/475152" title="infinite loop">
<compile files="AbstractAspect.aj, BaseAspect.aj, TestClass.java, AjTarget.java, TestAspect.aj" options="-1.8"/>
</ajc-test>