summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAndy Clement <aclement@pivotal.io>2016-12-02 10:32:17 -0800
committerAndy Clement <aclement@pivotal.io>2016-12-02 10:32:17 -0800
commitd10618d25a9e995ffeb8080b3b9468ad241a163c (patch)
treee6d7392533635926c055048deb040e778fe92e20 /tests
parentb6f2b6337fbaf95b78c20862cd90f0e027509531 (diff)
downloadaspectj-paramAnnotationBinding.tar.gz
aspectj-paramAnnotationBinding.zip
259416: preliminary workparamAnnotationBinding
Diffstat (limited to 'tests')
-rw-r--r--tests/bugs1810/259416/Caveats0
-rw-r--r--tests/bugs1810/259416/ColouredAnnotation.classbin0 -> 315 bytes
-rw-r--r--tests/bugs1810/259416/ColouredAnnotation.java6
-rw-r--r--tests/bugs1810/259416/Creating0
-rw-r--r--tests/bugs1810/259416/Downloading0
-rw-r--r--tests/bugs1810/259416/Filler.java5
-rw-r--r--tests/bugs1810/259416/RGB.classbin0 -> 898 bytes
-rw-r--r--tests/bugs1810/259416/RGB.java3
-rw-r--r--tests/bugs1810/259416/Tapping0
-rw-r--r--tests/bugs1810/259416/Test1.java13
-rw-r--r--tests/bugs1810/259416/Test2.java13
-rw-r--r--tests/bugs1810/259416/Test3.java13
-rw-r--r--tests/bugs1810/259416/Test4.java13
-rw-r--r--tests/src/org/aspectj/systemtest/ajc1810/Ajc1810Tests.java36
-rw-r--r--tests/src/org/aspectj/systemtest/ajc1810/ajc1810.xml45
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
new file mode 100644
index 000000000..ff8b19572
--- /dev/null
+++ b/tests/bugs1810/259416/ColouredAnnotation.class
Binary files differ
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
new file mode 100644
index 000000000..737e3b6bb
--- /dev/null
+++ b/tests/bugs1810/259416/RGB.class
Binary files differ
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">