diff options
author | Andy Clement <aclement@pivotal.io> | 2015-09-03 14:19:10 -0700 |
---|---|---|
committer | Andy Clement <aclement@pivotal.io> | 2015-09-03 14:19:10 -0700 |
commit | 2233cf023bce0168435795ab5747dae59fbd9a0d (patch) | |
tree | cdaa8d6ef69ef6abd123ab0d70a212d21e993f3c /tests | |
parent | a9ea7010ab7075d934aeb49d48dec33d48b722c4 (diff) | |
download | aspectj-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.aj | 11 | ||||
-rw-r--r-- | tests/bugs187/307147/Test.java | 28 | ||||
-rw-r--r-- | tests/bugs187/307147/TestAspect.aj | 8 | ||||
-rw-r--r-- | tests/bugs187/307147_2/ITDAspect.aj | 10 | ||||
-rw-r--r-- | tests/bugs187/307147_2/Test.java | 16 | ||||
-rw-r--r-- | tests/bugs187/307147_2/TestAspect.aj | 9 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc187/Ajc187Tests.java | 8 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc187/ajc187.xml | 30 |
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> |