diff options
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"); |