summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authoraclement <aclement>2010-11-27 06:23:20 +0000
committeraclement <aclement>2010-11-27 06:23:20 +0000
commit03de7d656faafc1ac55d9994b9e311c860d97a52 (patch)
tree6696b7e8ae038a8b1f294b475437115992b6dd6b /tests
parentf55ef741d7246cfac8f5c02754c0e4c9698fd310 (diff)
downloadaspectj-03de7d656faafc1ac55d9994b9e311c860d97a52.tar.gz
aspectj-03de7d656faafc1ac55d9994b9e311c860d97a52.zip
annotation removal - extra checks
Diffstat (limited to 'tests')
-rw-r--r--tests/features1611/declareMinus/Unsupported.java24
-rw-r--r--tests/features1611/declareMinus/WithValues.java22
-rw-r--r--tests/src/org/aspectj/systemtest/ajc1611/NewFeatures.java8
-rw-r--r--tests/src/org/aspectj/systemtest/ajc1611/newfeatures-tests.xml16
4 files changed, 70 insertions, 0 deletions
diff --git a/tests/features1611/declareMinus/Unsupported.java b/tests/features1611/declareMinus/Unsupported.java
new file mode 100644
index 000000000..4275b5aec
--- /dev/null
+++ b/tests/features1611/declareMinus/Unsupported.java
@@ -0,0 +1,24 @@
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface Anno {
+ String foo();
+}
+
+@Anno(foo="anc")
+aspect X {
+
+ //declare @method: int i: -@Anno;
+ declare @method: int i(..): -@Anno;
+ declare @type: X: -@Anno;
+ declare @field: int i: -@Anno(foo="abc");
+
+ public static void main(String[] args) throws Exception {
+ if (X.class.getDeclaredField("i").getAnnotation(Anno.class)==null) {
+ System.out.println("not there");
+ } else {
+ System.out.println("failed");
+ }
+ }
+} \ No newline at end of file
diff --git a/tests/features1611/declareMinus/WithValues.java b/tests/features1611/declareMinus/WithValues.java
new file mode 100644
index 000000000..a756c2e23
--- /dev/null
+++ b/tests/features1611/declareMinus/WithValues.java
@@ -0,0 +1,22 @@
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface Anno {
+ String foo();
+}
+
+public aspect WithValues {
+ @Anno(foo="anc")
+ int i;
+
+ declare @field: int i: -@Anno;
+
+ public static void main(String[] args) throws Exception {
+ if (WithValues.class.getDeclaredField("i").getAnnotation(Anno.class)==null) {
+ System.out.println("not there");
+ } else {
+ System.out.println("failed");
+ }
+ }
+} \ No newline at end of file
diff --git a/tests/src/org/aspectj/systemtest/ajc1611/NewFeatures.java b/tests/src/org/aspectj/systemtest/ajc1611/NewFeatures.java
index 5fd491f61..3df8d1a00 100644
--- a/tests/src/org/aspectj/systemtest/ajc1611/NewFeatures.java
+++ b/tests/src/org/aspectj/systemtest/ajc1611/NewFeatures.java
@@ -54,6 +54,14 @@ public class NewFeatures extends org.aspectj.testing.XMLBasedAjcTestCase {
runTest("declare minus - multifiles - 3");
}
+ public void testDeclareMinusWithValues() {
+ runTest("declare minus - with values");
+ }
+
+ public void testDeclareMinusUnsupported() {
+ runTest("declare minus - unsupported");
+ }
+
public void testBinaryWeaving() {
runTest("binary weaving");
}
diff --git a/tests/src/org/aspectj/systemtest/ajc1611/newfeatures-tests.xml b/tests/src/org/aspectj/systemtest/ajc1611/newfeatures-tests.xml
index d8bae42fb..ff56008a8 100644
--- a/tests/src/org/aspectj/systemtest/ajc1611/newfeatures-tests.xml
+++ b/tests/src/org/aspectj/systemtest/ajc1611/newfeatures-tests.xml
@@ -104,6 +104,22 @@
</stdout></run>
</ajc-test>
+ <ajc-test dir="features1611/declareMinus" title="declare minus - with values">
+ <compile files="WithValues.java" options="-1.5"/>
+ <run class="WithValues">
+ <stdout>
+ <line text="not there"/>
+ </stdout></run>
+ </ajc-test>
+
+ <ajc-test dir="features1611/declareMinus" title="declare minus - unsupported">
+ <compile files="Unsupported.java" options="-1.5">
+ <message kind="error" line="13" text="Annotation removal only supported for declare @field (compiler limitation)"/>
+ <message kind="error" line="14" text="Annotation removal only supported for declare @field (compiler limitation)"/>
+ <message kind="error" line="15" text="Annotation removal does not allow values to be specified for the annotation (compiler limitation)"/>
+ </compile>
+ </ajc-test>
+
<ajc-test dir="features1611/declareMinus" title="binary weaving">
<compile files="aspectjtest/AnnotationA.java aspectjtest/AnnotationB.java aspectjtest/MyEntity.java aspectjtest/HelloTest.java" outjar="code.jar" options="-1.5"/>
<compile files="aspectjtest/ExampleItd.aj" inpath="code.jar" options="-1.5 -showWeaveInfo">