summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/multiIncremental/Annos/base/src/Anno.java5
-rw-r--r--tests/multiIncremental/Annos/base/src/Child.java3
-rw-r--r--tests/multiIncremental/Annos/base/src/Parent.java4
-rw-r--r--tests/multiIncremental/Annos/base/src/X.java3
-rw-r--r--tests/multiIncremental/Annos/inc1/src/Parent.java4
-rw-r--r--tests/multiIncremental/Annos/inc2/src/Parent.java4
-rw-r--r--tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java20
7 files changed, 43 insertions, 0 deletions
diff --git a/tests/multiIncremental/Annos/base/src/Anno.java b/tests/multiIncremental/Annos/base/src/Anno.java
new file mode 100644
index 000000000..a722beb0f
--- /dev/null
+++ b/tests/multiIncremental/Annos/base/src/Anno.java
@@ -0,0 +1,5 @@
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Inherited
+@interface Anno {}
diff --git a/tests/multiIncremental/Annos/base/src/Child.java b/tests/multiIncremental/Annos/base/src/Child.java
new file mode 100644
index 000000000..b599988d8
--- /dev/null
+++ b/tests/multiIncremental/Annos/base/src/Child.java
@@ -0,0 +1,3 @@
+public class Child extends Parent {
+ public void bar() {}
+}
diff --git a/tests/multiIncremental/Annos/base/src/Parent.java b/tests/multiIncremental/Annos/base/src/Parent.java
new file mode 100644
index 000000000..b5f050b84
--- /dev/null
+++ b/tests/multiIncremental/Annos/base/src/Parent.java
@@ -0,0 +1,4 @@
+@Anno
+public class Parent {
+ public void foo() { }
+}
diff --git a/tests/multiIncremental/Annos/base/src/X.java b/tests/multiIncremental/Annos/base/src/X.java
new file mode 100644
index 000000000..4e8e5e83b
--- /dev/null
+++ b/tests/multiIncremental/Annos/base/src/X.java
@@ -0,0 +1,3 @@
+aspect X {
+ before(): execution(* (@Anno *).*(..)) {}
+}
diff --git a/tests/multiIncremental/Annos/inc1/src/Parent.java b/tests/multiIncremental/Annos/inc1/src/Parent.java
new file mode 100644
index 000000000..51b4f3bd0
--- /dev/null
+++ b/tests/multiIncremental/Annos/inc1/src/Parent.java
@@ -0,0 +1,4 @@
+//@Anno
+public class Parent {
+ public void foo() { }
+}
diff --git a/tests/multiIncremental/Annos/inc2/src/Parent.java b/tests/multiIncremental/Annos/inc2/src/Parent.java
new file mode 100644
index 000000000..b5f050b84
--- /dev/null
+++ b/tests/multiIncremental/Annos/inc2/src/Parent.java
@@ -0,0 +1,4 @@
+@Anno
+public class Parent {
+ public void foo() { }
+}
diff --git a/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java b/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java
index b22ae0f6c..d3a939b56 100644
--- a/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java
+++ b/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java
@@ -123,6 +123,26 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa
}
}
+ public void testIncrementalAndAnnotations() {
+ initialiseProject("Annos");
+ build("Annos");
+ checkWasFullBuild();
+ checkCompileWeaveCount("Annos", 4, 4);
+ assertEquals("Should be 3 relationships ", 3, AsmManager.getDefault().getRelationshipMap().getEntries().size());
+
+ alter("Annos", "inc1"); // Comment out the annotation on Parent
+ build("Annos");
+ checkWasntFullBuild();
+ assertEquals("Should be no relationships ", 0, AsmManager.getDefault().getRelationshipMap().getEntries().size());
+ checkCompileWeaveCount("Annos", 3, 3);
+
+ alter("Annos", "inc2"); // Add the annotation back onto Parent
+ build("Annos");
+ checkWasntFullBuild();
+ assertEquals("Should be 3 relationships ", 3, AsmManager.getDefault().getRelationshipMap().getEntries().size());
+ checkCompileWeaveCount("Annos", 3, 3);
+ }
+
public void testIncrementalItdsWithMultipleAspects_pr173729() {
initialiseProject("PR173729");
build("PR173729");