diff options
author | Andy Clement <aclement@pivotal.io> | 2016-12-02 10:32:17 -0800 |
---|---|---|
committer | Andy Clement <aclement@pivotal.io> | 2016-12-02 10:32:17 -0800 |
commit | d10618d25a9e995ffeb8080b3b9468ad241a163c (patch) | |
tree | e6d7392533635926c055048deb040e778fe92e20 /tests | |
parent | b6f2b6337fbaf95b78c20862cd90f0e027509531 (diff) | |
download | aspectj-paramAnnotationBinding.tar.gz aspectj-paramAnnotationBinding.zip |
259416: preliminary workparamAnnotationBinding
Diffstat (limited to 'tests')
-rw-r--r-- | tests/bugs1810/259416/Caveats | 0 | ||||
-rw-r--r-- | tests/bugs1810/259416/ColouredAnnotation.class | bin | 0 -> 315 bytes | |||
-rw-r--r-- | tests/bugs1810/259416/ColouredAnnotation.java | 6 | ||||
-rw-r--r-- | tests/bugs1810/259416/Creating | 0 | ||||
-rw-r--r-- | tests/bugs1810/259416/Downloading | 0 | ||||
-rw-r--r-- | tests/bugs1810/259416/Filler.java | 5 | ||||
-rw-r--r-- | tests/bugs1810/259416/RGB.class | bin | 0 -> 898 bytes | |||
-rw-r--r-- | tests/bugs1810/259416/RGB.java | 3 | ||||
-rw-r--r-- | tests/bugs1810/259416/Tapping | 0 | ||||
-rw-r--r-- | tests/bugs1810/259416/Test1.java | 13 | ||||
-rw-r--r-- | tests/bugs1810/259416/Test2.java | 13 | ||||
-rw-r--r-- | tests/bugs1810/259416/Test3.java | 13 | ||||
-rw-r--r-- | tests/bugs1810/259416/Test4.java | 13 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc1810/Ajc1810Tests.java | 36 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc1810/ajc1810.xml | 45 |
15 files changed, 147 insertions, 0 deletions
diff --git a/tests/bugs1810/259416/Caveats b/tests/bugs1810/259416/Caveats new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/bugs1810/259416/Caveats diff --git a/tests/bugs1810/259416/ColouredAnnotation.class b/tests/bugs1810/259416/ColouredAnnotation.class Binary files differnew file mode 100644 index 000000000..ff8b19572 --- /dev/null +++ b/tests/bugs1810/259416/ColouredAnnotation.class diff --git a/tests/bugs1810/259416/ColouredAnnotation.java b/tests/bugs1810/259416/ColouredAnnotation.java new file mode 100644 index 000000000..1886a2f03 --- /dev/null +++ b/tests/bugs1810/259416/ColouredAnnotation.java @@ -0,0 +1,6 @@ +import java.lang.annotation.*; + +@Retention(RetentionPolicy.RUNTIME) +public @interface ColouredAnnotation { + RGB value(); +} diff --git a/tests/bugs1810/259416/Creating b/tests/bugs1810/259416/Creating new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/bugs1810/259416/Creating diff --git a/tests/bugs1810/259416/Downloading b/tests/bugs1810/259416/Downloading new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/bugs1810/259416/Downloading diff --git a/tests/bugs1810/259416/Filler.java b/tests/bugs1810/259416/Filler.java new file mode 100644 index 000000000..dc5592b41 --- /dev/null +++ b/tests/bugs1810/259416/Filler.java @@ -0,0 +1,5 @@ +import java.lang.annotation.*; + +@Retention(RetentionPolicy.RUNTIME) +public @interface Filler { +} diff --git a/tests/bugs1810/259416/RGB.class b/tests/bugs1810/259416/RGB.class Binary files differnew file mode 100644 index 000000000..737e3b6bb --- /dev/null +++ b/tests/bugs1810/259416/RGB.class diff --git a/tests/bugs1810/259416/RGB.java b/tests/bugs1810/259416/RGB.java new file mode 100644 index 000000000..04d4e9474 --- /dev/null +++ b/tests/bugs1810/259416/RGB.java @@ -0,0 +1,3 @@ +public enum RGB { + RED, GREEN, BLUE; +} diff --git a/tests/bugs1810/259416/Tapping b/tests/bugs1810/259416/Tapping new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/bugs1810/259416/Tapping diff --git a/tests/bugs1810/259416/Test1.java b/tests/bugs1810/259416/Test1.java new file mode 100644 index 000000000..e4961f039 --- /dev/null +++ b/tests/bugs1810/259416/Test1.java @@ -0,0 +1,13 @@ +public class Test1 { + public static void main(String[] argv) { + coloured("abc"); + } + public static void coloured(@ColouredAnnotation(RGB.RED) String param1) {} +} + +aspect X { + // execution(@ColouredAnnotation * colouredMethod(..)) && @annotation(ColouredAnnotation(colour)); + before(ColouredAnnotation ca): execution(* *(@ColouredAnnotation (*))) && @args(ca (*)) { + System.out.println("Annotation from parameter on method "+thisJoinPoint+" is "+ca); + } +} diff --git a/tests/bugs1810/259416/Test2.java b/tests/bugs1810/259416/Test2.java new file mode 100644 index 000000000..a2a026dbc --- /dev/null +++ b/tests/bugs1810/259416/Test2.java @@ -0,0 +1,13 @@ +public class Test2 { + public static void main(String[] argv) { + coloured("abc"); + } + public static void coloured(@ColouredAnnotation(RGB.GREEN) String param1) {} +} + +aspect X { + // execution(@ColouredAnnotation * colouredMethod(..)) && @annotation(ColouredAnnotation(colour)); + before(ColouredAnnotation ca): execution(* *(..)) && @args(ca (*)) { + System.out.println("Annotation from parameter on method "+thisJoinPoint+" is "+ca); + } +} diff --git a/tests/bugs1810/259416/Test3.java b/tests/bugs1810/259416/Test3.java new file mode 100644 index 000000000..49744de78 --- /dev/null +++ b/tests/bugs1810/259416/Test3.java @@ -0,0 +1,13 @@ +public class Test3 { + public static void main(String[] argv) { + coloured(1,"abc"); + } + public static void coloured(int param1, @ColouredAnnotation(RGB.RED) String param2) {} +} + +aspect X { + // execution(@ColouredAnnotation * colouredMethod(..)) && @annotation(ColouredAnnotation(colour)); + before(ColouredAnnotation ca): execution(* *(..)) && @args(*, ca (*)) { + System.out.println("Annotation from parameter on method "+thisJoinPoint+" is "+ca); + } +} diff --git a/tests/bugs1810/259416/Test4.java b/tests/bugs1810/259416/Test4.java new file mode 100644 index 000000000..92324f883 --- /dev/null +++ b/tests/bugs1810/259416/Test4.java @@ -0,0 +1,13 @@ +public class Test4 { + public static void main(String[] argv) { + coloured(1,"abc"); + } + public static void coloured(int param1, @Filler @ColouredAnnotation(RGB.GREEN) String param2) {} +} + +aspect X { + // execution(@ColouredAnnotation * colouredMethod(..)) && @annotation(ColouredAnnotation(colour)); + before(ColouredAnnotation ca): execution(* *(..)) && @args(*, ca (*)) { + System.out.println("Annotation from parameter on method "+thisJoinPoint+" is "+ca); + } +} diff --git a/tests/src/org/aspectj/systemtest/ajc1810/Ajc1810Tests.java b/tests/src/org/aspectj/systemtest/ajc1810/Ajc1810Tests.java index 3cae1378c..36232a91d 100644 --- a/tests/src/org/aspectj/systemtest/ajc1810/Ajc1810Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc1810/Ajc1810Tests.java @@ -24,6 +24,42 @@ import junit.framework.Test; */ public class Ajc1810Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + // Basic with execution(* *(@Foo (*))) && @args(ca (*)) + public void testParamAnnoBinding_259416_1() { + runTest("param anno binding"); + } + + // Basic with execution(* *(..)) && args(ca (*)) + public void testParamAnnoBinding_259416_2() { + runTest("param anno binding 2"); + } + + // Basic with execution(* *(..)) && args(*,ca (*)) + public void testParamAnnoBinding_259416_3() { + runTest("param anno binding 3"); + } + + // Basic with execution(* *(..)) && args(*,ca (*)) where target has two parameter annotations and we match the 2nd one + public void testParamAnnoBinding_259416_4() { + runTest("param anno binding 4"); + } + + // execution(* *(..)) && args(f *,ca (*)) + + // args(ca1 (*),ca2 (*)) + + // args(ca(*)) + + // args(ca1 (f)) + + // args(ca1 ba1 (*)) + + // args(ca1 ba1 (f1 f2)) + + // args(ca1 (*), .., ca2 (*)) + + + public void testBinding_500035() { runTest("ataspectj binding"); } diff --git a/tests/src/org/aspectj/systemtest/ajc1810/ajc1810.xml b/tests/src/org/aspectj/systemtest/ajc1810/ajc1810.xml index 7485c1c20..75edcbc5e 100644 --- a/tests/src/org/aspectj/systemtest/ajc1810/ajc1810.xml +++ b/tests/src/org/aspectj/systemtest/ajc1810/ajc1810.xml @@ -2,6 +2,51 @@ <suite> + <ajc-test dir="bugs1810/259416" title="param anno binding"> + <compile options="-1.8 -showWeaveInfo" files="RGB.java ColouredAnnotation.java Test1.java"> + <message kind="weave" text="Join point 'method-execution(void Test1.coloured(java.lang.String))' in Type 'Test1' (Test1.java:5) advised by before advice from 'X' (Test1.java:10)"/> + </compile> + <run class="Test1"> + <stdout> + <line text="Annotation from parameter on method execution(void Test1.coloured(String)) is @ColouredAnnotation(value=RED)"/> + </stdout> + </run> + </ajc-test> + + <ajc-test dir="bugs1810/259416" title="param anno binding 2"> + <compile options="-1.8 -showWeaveInfo" files="RGB.java ColouredAnnotation.java Test2.java"> + <message kind="weave" text="Join point 'method-execution(void Test2.coloured(java.lang.String))' in Type 'Test2' (Test2.java:5) advised by before advice from 'X' (Test2.java:10)"/> + </compile> + <run class="Test2"> + <stdout> + <line text="Annotation from parameter on method execution(void Test2.coloured(String)) is @ColouredAnnotation(value=GREEN)"/> + </stdout> + </run> + </ajc-test> + + <ajc-test dir="bugs1810/259416" title="param anno binding 3"> + <compile options="-1.8 -showWeaveInfo" files="RGB.java ColouredAnnotation.java Test3.java"> + <message kind="weave" text="Join point 'method-execution(void Test3.coloured(int, java.lang.String))' in Type 'Test3' (Test3.java:5) advised by before advice from 'X' (Test3.java:10)"/> + </compile> + <run class="Test3"> + <stdout> + <line text="Annotation from parameter on method execution(void Test3.coloured(int, String)) is @ColouredAnnotation(value=RED)"/> + </stdout> + </run> + </ajc-test> + + <ajc-test dir="bugs1810/259416" title="param anno binding 4"> + <compile options="-1.8 -showWeaveInfo" files="RGB.java ColouredAnnotation.java Test4.java Filler.java"> + <message kind="weave" text="Join point 'method-execution(void Test4.coloured(int, java.lang.String))' in Type 'Test4' (Test4.java:5) advised by before advice from 'X' (Test4.java:10)"/> + </compile> + <run class="Test4"> + <stdout> + <line text="Annotation from parameter on method execution(void Test4.coloured(int, String)) is @ColouredAnnotation(value=GREEN)"/> + </stdout> + </run> + </ajc-test> + + <ajc-test dir="bugs1810/500035" title="ataspectj binding"> <compile options="-1.8" files="Code.java"/> <run class="Code"> |